diff --git a/404.html b/404.html index 4cdf54fd..6205f751 100644 --- a/404.html +++ b/404.html @@ -1,16 +1,13 @@ - + - -React Map GL - - + +react-map-gl + + -
-
- - +
\ No newline at end of file diff --git a/assets/css/styles.0a7fd3ef.css b/assets/css/styles.0a7fd3ef.css deleted file mode 100644 index f6cbce78..00000000 --- a/assets/css/styles.0a7fd3ef.css +++ /dev/null @@ -1 +0,0 @@ -.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.avatar__photo,.card,.text--truncate{overflow:hidden}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.hitPath_ieM4,.hitTitle_vyVt,.mapboxgl-ctrl-geocoder--input,.text--truncate{text-overflow:ellipsis;white-space:nowrap}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:transparent;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:rgba(0,0,0,.05);--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 rgba(0,0,0,.1);--ifm-global-shadow-md:0 5px 40px rgba(0,0,0,.2);--ifm-global-shadow-tl:0 12px 28px 0 rgba(0,0,0,.2),0 2px 4px 0 rgba(0,0,0,.1);--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:transparent;--ifm-table-stripe-background:rgba(0,0,0,.03);--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#00ade6;--ifm-color-primary-dark:#009ccf;--ifm-color-primary-darker:#0093c4;--ifm-color-primary-darkest:#0079a1;--ifm-color-primary-light:#00befd;--ifm-color-primary-lighter:#0ac2ff;--ifm-color-primary-lightest:#2ccbff;--ifm-color-white:#fff;--ifm-color-gray-200:#f7fafc;--ifm-color-gray-300:#ecf2f7;--ifm-color-gray-400:#e1e8f0;--ifm-color-gray-500:#cad5e0;--ifm-color-gray-600:#9eaec0;--ifm-color-gray-700:#6f8196;--ifm-color-gray-800:#485668;--ifm-color-gray-900:#2b3848;--ifm-color-black:#19202c --code-font-size:95%;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:transparent;--docusaurus-collapse-button-bg-hover:rgba(0,0,0,.1);--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:transparent}*,.mapboxgl-ctrl-geocoder,.mapboxgl-ctrl-geocoder *,.mapboxgl-ctrl-geocoder :after,.mapboxgl-ctrl-geocoder :before{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none,.tabItem_LNqP{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid rgba(0,0,0,.1);border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:transparent;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul,.tabList__CuJ{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:rgba(53,120,229,.15);--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:rgba(235,237,240,.15);--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:rgba(0,164,0,.15);--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:rgba(84,199,236,.15);--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:rgba(255,186,0,.15);--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:rgba(250,56,62,.15);--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{-moz-column-gap:var(--ifm-avatar-intro-margin);column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after,.searchBarContainer_NW3z.searchIndexLoading_EJ1f .searchBarLoadingRing_YnHq{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs__link:-moz-any-link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs__link:any-link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:transparent;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;pointer-events:none;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor transparent;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.collapsibleContent_i85q>:last-child,.footer__items,.searchResultItem_U687>h2,.tabItem_Ymn6>:last-child{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.navbar-sidebar,.navbar-sidebar__backdrop{top:0;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;opacity:0;bottom:0;left:0;visibility:hidden}.menu__link{color:var(--ifm-menu-color);flex:1}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.mapboxgl-map:hover .mapboxgl-popup-track-pointer,.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}#nprogress,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:hsla(0,0%,100%,.1);--ifm-navbar-search-input-placeholder-color:hsla(0,0%,100%,.5);color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:hsla(0,0%,100%,.05);--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer,.mapboxgl-map.mouse-pointer .mapboxgl-canvas-container.mapboxgl-interactive,.pills__item,.tabs__item{cursor:pointer}.navbar__search-input::-moz-placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);position:fixed;transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:rgba(0,0,0,.6);position:fixed;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{-moz-column-gap:var(--ifm-pagination-page-spacing);column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto;padding-left:0}.tabs__item{border-bottom:3px solid transparent;border-radius:var(--ifm-global-radius);display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:hsla(0,0%,100%,.05);--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:hsla(0,0%,100%,.1);--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:hsla(0,0%,100%,.07);--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}main .container{min-height:calc(100vh - var(--ifm-navbar-height))}.markdown,.navbar__search,main .container{position:relative}.menu__link{line-height:1.5}.menu__list{padding-bottom:.5rem}.docusaurus-highlight-code-line{background-color:rgba(0,0,0,.1);display:block;margin:0 calc(var(--pre-padding)*-1);padding:0 var(--pre-padding)}html[data-theme=dark] .docusaurus-highlight-code-line{background-color:rgba(0,0,0,.3)}.tooltip{background:rgba(0,0,0,.8);color:#fff;font-size:12px;line-height:16px;max-width:300px;padding:4px;pointer-events:none;position:absolute;z-index:9}.control-panel,.control-panel .input input:disabled{background:#fff}.control-panel{box-shadow:0 0 4px rgba(0,0,0,.15);cursor:auto;font-size:14px;line-height:18px;margin:24px;outline:0;padding:12px 24px;position:absolute;right:0;top:0;width:284px}.control-panel h3{font-size:1.2em;font-weight:500;margin:8px 0}.control-panel a,.tags_jXut{display:inline}.control-panel p{margin-bottom:16px}.control-panel .legend{display:inline-block;height:12px;width:12px}.control-panel hr{margin:12px -24px}.control-panel .source-link{margin-top:8px;text-align:right}.control-panel .source-link a{color:#486865;font-size:11px;font-weight:700}.control-panel .input{display:flex;position:relative;width:100%}.control-panel .input>*{vertical-align:middle;white-space:nowrap}.control-panel .input label{color:#486865;margin-bottom:4px;margin-right:10%;text-transform:uppercase;width:50%}.control-panel .input a,.control-panel .input input{display:inline-block;font-size:.9em;height:20px;line-height:1.833;padding:0 4px;width:40%}.control-panel .input input[type=checkbox],.control-panel .input input[type=color],.control-panel .input input[type=radio]{width:20%}.control-panel .input input{border:1px solid #ccc}.control-panel .input input[type=checkbox],.img_ev3q{height:auto}.control-panel .input .tooltip{left:50%;opacity:0;pointer-events:none;top:24px;transition:opacity .2s}.control-panel .input:hover .tooltip,.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mapboxgl-map{-webkit-tap-highlight-color:rgb(0 0 0/0);font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative}.mapboxgl-canvas{left:0;position:absolute;top:0}.mapboxgl-map:-webkit-full-screen{height:100%;width:100%}.mapboxgl-canary{background-color:salmon}.mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass{cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.mapboxgl-canvas-container.mapboxgl-interactive:active,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active{cursor:grabbing}.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page,.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page .mapboxgl-canvas,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-canvas-container.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:pinch-zoom}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:none}.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-top-left,.mapboxgl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.mapboxgl-ctrl-top-left{left:0;top:0}.mapboxgl-ctrl-top-right{right:0;top:0}.mapboxgl-ctrl-bottom-left{bottom:0;left:0}.mapboxgl-ctrl-bottom-right{bottom:0;right:0}.mapboxgl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{float:left;margin:10px 0 0 10px}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{float:right;margin:10px 10px 0 0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl{float:left;margin:0 0 10px 10px}.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl{float:right;margin:0 10px 10px 0}.mapboxgl-ctrl-group{background:#fff;border-radius:4px}.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px rgba(0,0,0,.1)}.mapboxgl-ctrl-group button{background-color:transparent;border:0;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:0;overflow:hidden;padding:0;width:29px}.mapboxgl-ctrl-group button+button{border-top:1px solid #ddd}.mapboxgl-ctrl button .mapboxgl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}.mapboxgl-ctrl-attrib-button:focus,.mapboxgl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl button:disabled,.toggleButtonDisabled_aARS{cursor:not-allowed}.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon{opacity:.25}.mapboxgl-ctrl-group button:first-child{border-radius:4px 4px 0 0}.mapboxgl-ctrl-group button:last-child{border-radius:0 0 4px 4px}.mapboxgl-ctrl-group button:only-child{border-radius:inherit}.mapboxgl-ctrl button:not(:disabled):hover,.mapboxgl-popup-close-button:hover{background-color:rgb(0 0 0/5%)}.mapboxgl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8h-8z'/%3E%3Cpath d='m10.5 16 4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath d='m14 5 1 1-9 9-1-1 9-9z' fill='red'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon{animation:2s linear infinite c}a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='a' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 0 1 3.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='b' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 0 0-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 0 0 4.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 0 1-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 0 1 .3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 0 1-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='c'%3E%3Crect width='100%25' height='100%25' fill='%23fff'/%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/mask%3E%3Cg opacity='.3' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23c)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23b' mask='url(%23c)'/%3E%3C/g%3E%3Cg opacity='.9' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.mapboxgl-ctrl-logo.mapboxgl-compact{width:23px}.mapboxgl-ctrl.mapboxgl-ctrl-attrib{background-color:hsla(0,0%,100%,.5);margin:0;padding:0 5px}.mapboxgl-ctrl-attrib a{color:rgba(0,0,0,.75);text-decoration:none}.content_knG7 a,.mapboxgl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.mapboxgl-ctrl-attrib .mapbox-improve-map{font-weight:700;margin-left:2px}.mapboxgl-attrib-empty,.mapboxgl-map:active .mapboxgl-popup-track-pointer,.mapboxgl-popup-track-pointer,.mapboxgl-user-location-dot-stale:after{display:none}.mapboxgl-ctrl-scale{background-color:hsla(0,0%,100%,.75);border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px;white-space:nowrap}.mapboxgl-popup{display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right{flex-direction:column}.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right{flex-direction:column-reverse}.mapboxgl-popup-anchor-left{flex-direction:row}.mapboxgl-popup-anchor-right{flex-direction:row-reverse}.mapboxgl-popup-tip{border:10px solid transparent;height:0;width:0;z-index:1}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{align-self:center;border-bottom-color:#fff;border-top:none}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{align-self:center;border-left-color:#fff;border-right:none}.mapboxgl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.mapboxgl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.1);padding:10px 10px 15px;pointer-events:auto;position:relative}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content{border-top-left-radius:0}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content{border-top-right-radius:0}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content{border-bottom-left-radius:0}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content{border-bottom-right-radius:0}.mapboxgl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.mapboxgl-marker{left:0;opacity:1;position:absolute;top:0;transition:opacity .2s;will-change:transform}.mapboxgl-user-location-dot,.mapboxgl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.mapboxgl-user-location-dot:before{animation:2s infinite a;content:"";position:absolute}.mapboxgl-user-location-dot:after{border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px rgba(0,0,0,.35);box-sizing:border-box;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading{height:0;width:0}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after,.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-bottom:7.5px solid #4aa1eb;content:"";position:absolute}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-left:7.5px solid transparent;transform:translateY(-28px) skewY(-20deg)}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after{border-right:7.5px solid transparent;transform:translate(7.5px,-28px) skewY(20deg)}@keyframes a{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.mapboxgl-user-location-dot-stale{background-color:#aaa}.mapboxgl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;height:1px;width:1px}.mapboxgl-crosshair,.mapboxgl-crosshair .mapboxgl-interactive,.mapboxgl-crosshair .mapboxgl-interactive:active,.mapboxgl-map.mouse-add .mapboxgl-canvas-container.mapboxgl-interactive{cursor:crosshair}.mapboxgl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}.mapboxgl-scroll-zoom-blocker,.mapboxgl-touch-pan-blocker{align-items:center;background:rgba(0,0,0,.7);color:#fff;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;height:100%;justify-content:center;left:0;opacity:0;pointer-events:none;position:absolute;text-align:center;top:0;transition:opacity .75s ease-in-out 1s;width:100%}.mapboxgl-scroll-zoom-blocker-show,.mapboxgl-touch-pan-blocker-show{opacity:1;transition:opacity .1s ease-in-out}.mapbox-gl-draw_ctrl-bottom-left,.mapbox-gl-draw_ctrl-top-left{border-radius:0 4px 4px 0;margin-left:0}.mapbox-gl-draw_ctrl-bottom-right,.mapbox-gl-draw_ctrl-top-right{border-radius:4px 0 0 4px;margin-right:0}.mapbox-gl-draw_ctrl-draw{background-color:rgba(0,0,0,.75);border-color:rgba(0,0,0,.9)}.mapbox-gl-draw_ctrl-draw>button{border-color:rgba(0,0,0,.9);color:hsla(0,0%,100%,.5);height:30px;width:30px}.mapbox-gl-draw_ctrl-draw>button:hover{background-color:rgba(0,0,0,.85);color:hsla(0,0%,100%,.75)}.mapbox-gl-draw_ctrl-draw>button.active,.mapbox-gl-draw_ctrl-draw>button.active:hover{background-color:rgba(0,0,0,.95);color:#fff}.mapbox-gl-draw_ctrl-draw-btn{background-position:50%;background-repeat:no-repeat}.mapbox-gl-draw_point{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m10 2c-3.3 0-6 2.7-6 6s6 9 6 9 6-5.7 6-9-2.7-6-6-6zm0 2c2.1 0 3.8 1.7 3.8 3.8 0 1.5-1.8 3.9-2.9 5.2h-1.7c-1.1-1.4-2.9-3.8-2.9-5.2-.1-2.1 1.6-3.8 3.7-3.8z"/>%3C/svg>')}.mapbox-gl-draw_polygon{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m15 12.3v-4.6c.6-.3 1-1 1-1.7 0-1.1-.9-2-2-2-.7 0-1.4.4-1.7 1h-4.6c-.3-.6-1-1-1.7-1-1.1 0-2 .9-2 2 0 .7.4 1.4 1 1.7v4.6c-.6.3-1 1-1 1.7 0 1.1.9 2 2 2 .7 0 1.4-.4 1.7-1h4.6c.3.6 1 1 1.7 1 1.1 0 2-.9 2-2 0-.7-.4-1.4-1-1.7zm-8-.3v-4l1-1h4l1 1v4l-1 1h-4z"/>%3C/svg>')}.mapbox-gl-draw_line{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m13.5 3.5c-1.4 0-2.5 1.1-2.5 2.5 0 .3 0 .6.2.9l-3.8 3.8c-.3-.1-.6-.2-.9-.2-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5 2.5-1.1 2.5-2.5c0-.3 0-.6-.2-.9l3.8-3.8c.3.1.6.2.9.2 1.4 0 2.5-1.1 2.5-2.5s-1.1-2.5-2.5-2.5z"/>%3C/svg>')}.mapbox-gl-draw_trash{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="M10,3.4 c-0.8,0-1.5,0.5-1.8,1.2H5l-1,1v1h12v-1l-1-1h-3.2C11.5,3.9,10.8,3.4,10,3.4z M5,8v7c0,1,1,2,2,2h6c1,0,2-1,2-2V8h-2v5.5h-1.5V8h-3 v5.5H7V8H5z"/>%3C/svg>')}.mapbox-gl-draw_uncombine{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m12 2c-.3 0-.5.1-.7.3l-1 1c-.4.4-.4 1 0 1.4l1 1c.4.4 1 .4 1.4 0l1-1c.4-.4.4-1 0-1.4l-1-1c-.2-.2-.4-.3-.7-.3zm4 4c-.3 0-.5.1-.7.3l-1 1c-.4.4-.4 1 0 1.4l1 1c.4.4 1 .4 1.4 0l1-1c.4-.4.4-1 0-1.4l-1-1c-.2-.2-.4-.3-.7-.3zm-7 1c-1 0-1 1-.5 1.5.3.3 1 1 1 1l-1 1s-.5.5 0 1 1 0 1 0l1-1 1 1c.5.5 1.5.5 1.5-.5v-4zm-5 3c-.3 0-.5.1-.7.3l-1 1c-.4.4-.4 1 0 1.4l4.9 4.9c.4.4 1 .4 1.4 0l1-1c.4-.4.4-1 0-1.4l-4.9-4.9c-.1-.2-.4-.3-.7-.3z"/>%3C/svg>')}.mapbox-gl-draw_combine{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="M12.1,2c-0.3,0-0.5,0.1-0.7,0.3l-1,1c-0.4,0.4-0.4,1,0,1.4l4.9,4.9c0.4,0.4,1,0.4,1.4,0l1-1 c0.4-0.4,0.4-1,0-1.4l-4.9-4.9C12.6,2.1,12.3,2,12.1,2z M8,8C7,8,7,9,7.5,9.5c0.3,0.3,1,1,1,1l-1,1c0,0-0.5,0.5,0,1s1,0,1,0l1-1l1,1 C11,13,12,13,12,12V8H8z M4,10c-0.3,0-0.5,0.1-0.7,0.3l-1,1c-0.4,0.4-0.4,1,0,1.4l1,1c0.4,0.4,1,0.4,1.4,0l1-1c0.4-0.4,0.4-1,0-1.4 l-1-1C4.5,10.1,4.3,10,4,10z M8,14c-0.3,0-0.5,0.1-0.7,0.3l-1,1c-0.4,0.4-0.4,1,0,1.4l1,1c0.4,0.4,1,0.4,1.4,0l1-1 c0.4-0.4,0.4-1,0-1.4l-1-1C8.5,14.1,8.3,14,8,14z"/>%3C/svg>')}.mapboxgl-map.mode-direct_select.feature-feature.mouse-move .mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-map.mode-direct_select.feature-vertex.mouse-move .mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-map.mouse-move .mapboxgl-canvas-container.mapboxgl-interactive{cursor:move}.mapboxgl-map.mode-static.mouse-pointer .mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-map.mouse-move.mode-direct_select .mapboxgl-canvas-container.mapboxgl-interactive{cursor:grab;cursor:-webkit-grab}.mapboxgl-map.mode-direct_select.feature-midpoint.mouse-pointer .mapboxgl-canvas-container.mapboxgl-interactive{cursor:cell}.mapbox-gl-draw_boxselect{background:rgba(0,0,0,.1);border:2px dotted #fff;height:0;left:0;opacity:.5;pointer-events:none;position:absolute;top:0;width:0}.mapboxgl-ctrl-geocoder{background-color:#fff;border-radius:4px;font-family:Open Sans,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:18px;line-height:24px;min-width:240px;position:relative;transition:width .25s,min-width .25s;width:100%;z-index:1}.mapboxgl-ctrl-geocoder--input{background-color:transparent;border:0;color:rgba(0,0,0,.75);font:inherit;height:50px;margin:0;overflow:hidden;padding:6px 45px;width:100%}.mapboxgl-ctrl-geocoder--input::-ms-clear{display:none}.mapboxgl-ctrl-geocoder--input:focus{box-shadow:none;color:rgba(0,0,0,.75);outline:0;outline:dotted thin}.mapboxgl-ctrl-geocoder .mapboxgl-ctrl-geocoder--pin-right>*{display:none;position:absolute;right:8px;top:7px;z-index:2}.mapboxgl-ctrl-geocoder,.mapboxgl-ctrl-geocoder .suggestions{box-shadow:0 0 10px 2px rgba(0,0,0,.1)}.mapboxgl-ctrl-geocoder.mapboxgl-ctrl-geocoder--collapsed{min-width:50px;transition:width .25s,min-width .25s;width:50px}.mapboxgl-ctrl-geocoder .suggestions{background-color:#fff;border-radius:4px;font-size:15px;left:0;list-style:none;margin:0;overflow:hidden;padding:0;position:absolute;top:110%;top:calc(100% + 6px);width:100%;z-index:1000}.mapboxgl-ctrl-bottom-left .suggestions,.mapboxgl-ctrl-bottom-right .suggestions{bottom:100%;top:auto}.mapboxgl-ctrl-geocoder .suggestions>li>a{color:#404040;cursor:default;display:block;padding:6px 12px}.mapboxgl-ctrl-geocoder .suggestions>.active>a,.mapboxgl-ctrl-geocoder .suggestions>li>a:hover{background-color:#f3f3f3;color:#404040;cursor:pointer;text-decoration:none}.mapboxgl-ctrl-geocoder--suggestion-title{font-weight:700}.mapboxgl-ctrl-geocoder--suggestion-address,.mapboxgl-ctrl-geocoder--suggestion-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mapboxgl-ctrl-geocoder--icon{speak:none;fill:#757575;display:inline-block;top:15px;vertical-align:middle}.mapboxgl-ctrl-geocoder--icon-search{height:23px;left:12px;position:absolute;top:13px;width:23px}.mapboxgl-ctrl-geocoder--button{background:#fff;border:none;cursor:pointer;line-height:1;margin:0;padding:0}.mapboxgl-ctrl-geocoder--icon-close{height:20px;margin-right:3px;margin-top:8px;width:20px}.mapboxgl-ctrl-geocoder--button:hover .mapboxgl-ctrl-geocoder--icon-close{fill:#909090}.mapboxgl-ctrl-geocoder--icon-loading{animation:.8s cubic-bezier(.45,.05,.55,.95) infinite b;height:26px;margin-right:0;margin-top:5px;width:26px}@keyframes b{0%{transform:rotate(0)}to{transform:rotate(1turn)}}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.hideAction_vcyE>svg,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{-webkit-tap-highlight-color:transparent;align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.searchBar_RVTs .dropdownMenu_qbY6{background:var(--search-local-modal-background,#f5f6f7);border-radius:6px;box-shadow:var(--search-local-modal-shadow,inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64);left:auto!important;margin-top:8px;padding:var(--search-local-spacing,12px);position:relative;right:0!important;width:var(--search-local-modal-width,560px)}html[data-theme=dark] .searchBar_RVTs .dropdownMenu_qbY6{background:var(--search-local-modal-background,var(--ifm-background-color));box-shadow:var(--search-local-modal-shadow,inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309)}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2{align-items:center;background:var(--search-local-hit-background,#fff);border-radius:4px;box-shadow:var(--search-local-hit-shadow,0 1px 3px 0 #d4d9e1);color:var(--search-local-hit-color,#444950);cursor:pointer;display:flex;flex-direction:row;height:var(--search-local-hit-height,56px);padding:0 var(--search-local-spacing,12px);width:100%}.hitTree_kk6K,.noResults_l6Q3{align-items:center;display:flex}html[data-theme=dark] .dropdownMenu_qbY6 .suggestion_fB_2{background:var(--search-local-hit-background,var(--ifm-color-emphasis-100));box-shadow:var(--search-local-hit-shadow,none);color:var(--search-local-hit-color,var(--ifm-font-color-base))}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2:not(:last-child){margin-bottom:4px}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2.cursor_eG29{background-color:var(--search-local-highlight-color,var(--ifm-color-primary))}.hitFooter_E9YW a,.hitIcon_a7Zy,.hitPath_ieM4,.hitTree_kk6K,.noResultsIcon_EBY5{color:var(--search-local-muted-color,#969faf)}html[data-theme=dark] .hitIcon_a7Zy,html[data-theme=dark] .hitPath_ieM4,html[data-theme=dark] .hitTree_kk6K,html[data-theme=dark] .noResultsIcon_EBY5{color:var(--search-local-muted-color,var(--ifm-color-secondary-darkest))}.hitTree_kk6K>svg{height:var(--search-local-hit-height,56px);opacity:.5;width:24px}.hitIcon_a7Zy,.hitTree_kk6K>svg{stroke-width:var(--search-local-icon-stroke-width,1.4)}.hitAction_NqkB,.hitIcon_a7Zy{height:20px;width:20px}.hitWrapper_sAK8{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;margin:0 8px;overflow-x:hidden;width:80%}.hitWrapper_sAK8 mark{background:none;color:var(--search-local-highlight-color,var(--ifm-color-primary))}.hitTitle_vyVt{font-size:.9em}.hitPath_ieM4{font-size:.75em}.hitPath_ieM4,.hitTitle_vyVt{overflow-x:hidden}.noResults_l6Q3{flex-direction:column;justify-content:center;padding:var(--search-local-spacing,12px) 0}.noResultsIcon_EBY5{margin-bottom:var(--search-local-spacing,12px)}.hitFooter_E9YW{font-size:.85em;margin-top:var(--search-local-spacing,12px);text-align:center}.hitFooter_E9YW a,.suggestion_fB_2.cursor_eG29 mark{text-decoration:underline}.cursor_eG29 .hideAction_vcyE>svg,.tocCollapsibleContent_vkbj a{display:block}.suggestion_fB_2.cursor_eG29,.suggestion_fB_2.cursor_eG29 .hitIcon_a7Zy,.suggestion_fB_2.cursor_eG29 .hitPath_ieM4,.suggestion_fB_2.cursor_eG29 .hitTree_kk6K,.suggestion_fB_2.cursor_eG29 mark{color:var(--search-local-hit-active-color,var(--ifm-color-white))!important}.searchBarContainer_NW3z{margin-left:16px}.searchBarContainer_NW3z .searchBarLoadingRing_YnHq{display:none;left:10px;position:absolute;top:6px}.searchBarContainer_NW3z .searchClearButton_qk4g{background:none;border:none;line-height:1rem;padding:0;position:absolute;right:.8rem;top:50%;transform:translateY(-50%)}.searchIndexLoading_EJ1f .navbar__search-input{background-image:none}.searchHintContainer_Pkmr{align-items:center;display:flex;gap:4px;height:100%;justify-content:center;pointer-events:none;position:absolute;right:10px;top:0}.searchHint_iIMx{background-color:var(--ifm-navbar-search-input-background-color);border:1px solid var(--ifm-color-emphasis-500);box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-500);color:var(--ifm-navbar-search-input-placeholder-color)}.loadingRing_RJI3{display:inline-block;height:20px;opacity:var(--search-local-loading-icon-opacity,.5);position:relative;width:20px}.loadingRing_RJI3 div{animation:1.2s cubic-bezier(.5,0,.5,1) infinite c;border:2px solid var(--search-load-loading-icon-color,var(--ifm-navbar-search-input-color));border-color:var(--search-load-loading-icon-color,var(--ifm-navbar-search-input-color)) transparent transparent transparent;border-radius:50%;box-sizing:border-box;display:block;height:16px;margin:2px;position:absolute;width:16px}.loadingRing_RJI3 div:first-child{animation-delay:-.45s}.loadingRing_RJI3 div:nth-child(2){animation-delay:-.3s}.loadingRing_RJI3 div:nth-child(3){animation-delay:-.15s}@keyframes c{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;-moz-user-select:none;user-select:none}.hash-link:before{content:"#"}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{-moz-column-gap:.2rem;column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:transparent transparent transparent var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.containsTaskList_mC6p{list-style:none}:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.searchContextInput_mXoe,.searchQueryInput_CFBF{background:var(--ifm-background-color);border:var(--ifm-global-border-width) solid var(--ifm-color-content-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-font-color-base);font-size:var(--ifm-font-size-base);margin-bottom:1rem;padding:.5rem;width:100%}.searchResultItem_U687{border-bottom:1px solid #dfe3e8;padding:1rem 0}.searchResultItemPath_uIbk{color:var(--ifm-color-content-secondary);font-size:.8rem;margin:.5rem 0 0}.searchResultItemSummary_oZHr{font-style:italic;margin:.5rem 0 0}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:hsla(0,0%,100%,.05);--docusaurus-collapse-button-bg-hover:hsla(0,0%,100%,.1)}.collapseSidebarButton_PEFL{display:none;margin:0}.docSidebarContainer_b6E3,.sidebarLogo_isFc{display:none}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}@media screen and (min-width:640px){.mapboxgl-ctrl-geocoder.mapboxgl-ctrl-geocoder--collapsed{min-width:36px;width:36px}.mapboxgl-ctrl-geocoder{font-size:15px;line-height:20px;max-width:360px;width:33.3333%}.mapboxgl-ctrl-geocoder .suggestions{font-size:13px}.mapboxgl-ctrl-geocoder--icon{top:8px}.mapboxgl-ctrl-geocoder--icon-close{height:16px;margin-right:0;margin-top:3px;width:16px}.mapboxgl-ctrl-geocoder--icon-search{height:20px;left:7px;width:20px}.mapboxgl-ctrl-geocoder--input{height:36px;padding:6px 35px}.mapboxgl-ctrl-geocoder--icon-loading{height:26px;margin-right:-5px;margin-top:-2px;width:26px}.mapbox-gl-geocoder--error{color:#909090;font-size:16px;padding:6px 12px;text-align:center}}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn{max-width:75%!important}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media not (max-width:996px){.searchBar_RVTs.searchBarLeft_MXDe .dropdownMenu_qbY6{left:0!important;right:auto!important}}@media only screen and (max-width:996px){.searchQueryColumn_q7nx{max-width:60%!important}.searchContextColumn_oWAF{max-width:40%!important}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.navbar__search-input:not(:focus){width:2rem}.searchBar_RVTs .dropdownMenu_qbY6{max-width:calc(100vw - var(--ifm-navbar-padding-horizontal)*2);width:var(--search-local-modal-width-sm,340px)}.searchBarContainer_NW3z:not(.focused_OWtg) .searchClearButton_qk4g,.searchHintContainer_Pkmr{display:none}}@media screen and (max-width:576px){.searchQueryColumn_q7nx{max-width:100%!important}.searchContextColumn_oWAF{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (-ms-high-contrast:active){.mapboxgl-ctrl-icon,a.mapboxgl-ctrl-logo{background-color:transparent}.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}.mapboxgl-ctrl-group button+button{border-top:1px solid ButtonText}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8h-8z'/%3E%3Cpath d='m10.5 16 4 8 4-8h-8z' fill='%23999'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath d='m14 5 1 1-9 9-1-1 9-9z' fill='red'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3C/svg%3E")}a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='a' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 0 1 3.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='b' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 0 0-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 0 0 4.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 0 1-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 0 1 .3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 0 1-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='c'%3E%3Crect width='100%25' height='100%25' fill='%23fff'/%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/mask%3E%3Cg stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23c)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23b' mask='url(%23c)'/%3E%3C/g%3E%3Cg fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/g%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8h-8z'/%3E%3Cpath d='m10.5 16 4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath d='m14 5 1 1-9 9-1-1 9-9z' fill='red'/%3E%3C/svg%3E")}a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='a' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 0 1 3.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='b' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 0 0-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 0 0 4.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 0 1-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 0 1 .3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 0 1-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='c'%3E%3Crect width='100%25' height='100%25' fill='%23fff'/%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/mask%3E%3Cg stroke='%23fff' stroke-width='3' fill='%23fff'%3E%3Ccircle mask='url(%23c)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23b' mask='url(%23c)'/%3E%3C/g%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/svg%3E")}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media screen{.mapboxgl-ctrl-attrib.mapboxgl-compact{background-color:#fff;border-radius:12px;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner{display:none}.mapboxgl-ctrl-attrib-button{background-color:hsla(0,0%,100%,.5);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:0;position:absolute;right:0;top:0;width:24px}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button{left:0}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner{display:block}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button{background-color:rgb(0 0 0/5%)}.mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;right:0}.mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{right:0;top:0}.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{left:0;top:0}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;left:0}}@media screen and (-ms-high-contrast:active){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media print{.announcementBar_mb4j,.footer,.mapbox-improve-map,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/css/styles.b9a26a0c.css b/assets/css/styles.b9a26a0c.css new file mode 100644 index 00000000..6a1421b2 --- /dev/null +++ b/assets/css/styles.b9a26a0c.css @@ -0,0 +1 @@ +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.button,code{vertical-align:middle}.mapboxgl-map,.maplibregl-map,.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}:root,body.dark,body[data-theme=dark]{--aa-icon-color-rgb:119,119,163;--aa-scrollbar-thumb-background-color-rgb:var(--aa-background-color-rgb)}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#00ade6;--ifm-color-primary-dark:#009ccf;--ifm-color-primary-darker:#0093c4;--ifm-color-primary-darkest:#0079a1;--ifm-color-primary-light:#00befd;--ifm-color-primary-lighter:#0ac2ff;--ifm-color-primary-lightest:#2ccbff;--ifm-color-white:#fff;--ifm-color-gray-200:#f7fafc;--ifm-color-gray-300:#ecf2f7;--ifm-color-gray-400:#e1e8f0;--ifm-color-gray-500:#cad5e0;--ifm-color-gray-600:#9eaec0;--ifm-color-gray-700:#6f8196;--ifm-color-gray-800:#485668;--ifm-color-gray-900:#2b3848;--ifm-color-black:#19202c --code-font-size:95%;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--aa-search-input-height:44px;--aa-input-icon-size:20px;--aa-base-unit:16;--aa-spacing-factor:1;--aa-spacing:calc(var(--aa-base-unit)*var(--aa-spacing-factor)*1px);--aa-spacing-half:calc(var(--aa-spacing)/2);--aa-panel-max-height:650px;--aa-base-z-index:9999;--aa-font-size:calc(var(--aa-base-unit)*1px);--aa-font-family:inherit;--aa-font-weight-medium:500;--aa-font-weight-semibold:600;--aa-font-weight-bold:700;--aa-icon-size:20px;--aa-icon-stroke-width:1.6;--aa-icon-color-alpha:1;--aa-action-icon-size:20px;--aa-text-color-rgb:38,38,39;--aa-text-color-alpha:1;--aa-primary-color-rgb:62,52,211;--aa-primary-color-alpha:0.2;--aa-muted-color-rgb:128,126,163;--aa-muted-color-alpha:0.6;--aa-panel-border-color-rgb:128,126,163;--aa-panel-border-color-alpha:0.3;--aa-input-border-color-rgb:128,126,163;--aa-input-border-color-alpha:0.8;--aa-background-color-rgb:255,255,255;--aa-background-color-alpha:1;--aa-input-background-color-rgb:255,255,255;--aa-input-background-color-alpha:1;--aa-selected-color-rgb:179,173,214;--aa-selected-color-alpha:0.205;--aa-description-highlight-background-color-rgb:245,223,77;--aa-description-highlight-background-color-alpha:0.5;--aa-detached-media-query:(max-width:680px);--aa-detached-modal-media-query:(min-width:680px);--aa-detached-modal-max-width:680px;--aa-detached-modal-max-height:500px;--aa-overlay-color-rgb:115,114,129;--aa-overlay-color-alpha:0.4;--aa-panel-shadow:0 0 0 1px #23263b1a,0 6px 16px -4px #23263b26;--aa-scrollbar-width:13px;--aa-scrollbar-track-background-color-rgb:234,234,234;--aa-scrollbar-track-background-color-alpha:1;--aa-scrollbar-thumb-background-color-alpha:1;--aa-search-input-height:36px;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}*,.aa-Autocomplete *,.aa-DetachedFormContainer *,.aa-Panel *,.maplibregl-ctrl-geocoder,.maplibregl-ctrl-geocoder *,.maplibregl-ctrl-geocoder :after,.maplibregl-ctrl-geocoder :before{box-sizing:border-box}html{background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none,.tabItem_LNqP{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul,.tabList__CuJ{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){-webkit-text-decoration:none;text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_Gvgb,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{-webkit-text-decoration-color:var(--ifm-alert-border-color);text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);-webkit-text-decoration:none;text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.aa-ItemLink,.aa-SourceFooterSeeAll,.dropdown__link--active,.dropdown__link:hover,.mapboxgl-ctrl-attrib a,.maplibregl-ctrl-attrib a,.maplibregl-ctrl-geocoder .suggestions>.active>a,.maplibregl-ctrl-geocoder .suggestions>li>a:hover,.menu__link:hover,.navbar__brand:hover,.navbar__link--active,.navbar__link:hover,.pagination-nav__link:hover,.pagination__link:hover,.tag_zVej:hover{-webkit-text-decoration:none;text-decoration:none}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);-webkit-text-decoration:none;text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;pointer-events:none;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color)}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_BuS1>:last-child,.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child,.footer__items,.tabItem_Ymn6>:last-child{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.navbar-sidebar,.navbar-sidebar__backdrop{top:0;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;opacity:0;left:0;bottom:0;visibility:hidden}.menu__link{color:var(--ifm-menu-color);flex:1}.menu__link:hover{color:var(--ifm-menu-color)}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.mapboxgl-map:hover .mapboxgl-popup-track-pointer,.maplibregl-map:hover .maplibregl-popup-track-pointer,.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:-webkit-sticky;position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color)}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}#nprogress,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color)}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:1rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);position:fixed;transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;position:fixed;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav{display:grid;grid-gap:var(--ifm-spacing-horizontal);gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover)}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto;padding-left:0}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}main .container{min-height:calc(100vh - var(--ifm-navbar-height))}.markdown,main .container{position:relative}.menu__link{line-height:1.5}.menu__list{padding-bottom:.5rem}.docusaurus-highlight-code-line{background-color:#0000001a;display:block;margin:0 calc(var(--pre-padding)*-1);padding:0 var(--pre-padding)}html[data-theme=dark] .docusaurus-highlight-code-line{background-color:#0000004d}.tooltip{background:#000c;color:#fff;font-size:12px;line-height:16px;max-width:300px;padding:4px;pointer-events:none;position:absolute;z-index:9}.control-panel,.control-panel .input input:disabled{background:#fff}.control-panel{box-shadow:0 0 4px #00000026;cursor:auto;font-size:14px;line-height:18px;margin:24px;outline:0;padding:12px 24px;position:absolute;right:0;top:0;width:284px}.control-panel h3{font-size:1.2em;font-weight:500;margin:8px 0}.control-panel a,.tags_jXut{display:inline}.control-panel p{margin-bottom:16px}.control-panel .legend{display:inline-block;height:12px;width:12px}.control-panel hr{margin:12px -24px}a.mapboxgl-ctrl-logo,a.maplibregl-ctrl-logo{background-repeat:no-repeat;margin:0 0 -4px -4px;overflow:hidden}.control-panel .source-link{margin-top:8px;text-align:right}.control-panel .source-link a{color:#486865;font-size:11px;font-weight:700}.control-panel .input{display:flex;position:relative;width:100%}.control-panel .input>*{vertical-align:middle;white-space:nowrap}.control-panel .input label{color:#486865;margin-bottom:4px;margin-right:10%;text-transform:uppercase;width:50%}.control-panel .input a,.control-panel .input input{display:inline-block;font-size:.9em;height:20px;line-height:1.833;padding:0 4px;width:40%}.control-panel .input input[type=checkbox],.control-panel .input input[type=color],.control-panel .input input[type=radio]{width:20%}.control-panel .input input{border:1px solid #ccc}.control-panel .input input[type=checkbox],.img_ev3q{height:auto}.control-panel .input .tooltip{left:50%;opacity:0;pointer-events:none;top:24px;transition:opacity .2s}.control-panel .input:hover .tooltip,.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mapboxgl-map,.maplibregl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative}.mapboxgl-canvas,.maplibregl-canvas{left:0;position:absolute;top:0}.mapboxgl-map:-webkit-full-screen{height:100%;width:100%}.mapboxgl-canary{background-color:salmon}.mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass,.maplibregl-canvas-container.maplibregl-interactive,.maplibregl-ctrl-group button.maplibregl-ctrl-compass{cursor:grab;-webkit-user-select:none;user-select:none}.dropdownNavbarItemMobile_S0Fm,.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer,.mapboxgl-map.mouse-pointer .mapboxgl-canvas-container.mapboxgl-interactive,.maplibregl-canvas-container.maplibregl-interactive.maplibregl-track-pointer{cursor:pointer}.mapboxgl-canvas-container.mapboxgl-interactive:active,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active,.maplibregl-canvas-container.maplibregl-interactive:active,.maplibregl-ctrl-group button.maplibregl-ctrl-compass:active{cursor:grabbing}.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page,.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page .mapboxgl-canvas,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas,.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures,.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures .maplibregl-canvas,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate .maplibregl-canvas{touch-action:pan-x pan-y}.mapboxgl-canvas-container.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas,.maplibregl-canvas-container.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:pinch-zoom}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan .maplibregl-canvas,.maplibregl-ctrl-group button.maplibregl-ctrl-compass{touch-action:none}.mapboxgl-ctrl-bottom,.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-left,.mapboxgl-ctrl-right,.mapboxgl-ctrl-top,.mapboxgl-ctrl-top-left,.mapboxgl-ctrl-top-right,.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-top-left,.maplibregl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.mapboxgl-ctrl-top-left,.maplibregl-ctrl-top-left{left:0;top:0}.mapboxgl-ctrl-top{left:50%;top:0;transform:translateX(-50%)}.mapboxgl-ctrl-top-right,.maplibregl-ctrl-top-right{right:0;top:0}.mapboxgl-ctrl-right{right:0;top:50%;transform:translateY(-50%)}.mapboxgl-ctrl-bottom-right,.maplibregl-ctrl-bottom-right{bottom:0;right:0}.mapboxgl-ctrl-bottom{bottom:0;left:50%;transform:translateX(-50%)}.mapboxgl-ctrl-bottom-left,.maplibregl-ctrl-bottom-left{bottom:0;left:0}.mapboxgl-ctrl-left{left:0;top:50%;transform:translateY(-50%)}.mapboxgl-ctrl,.maplibregl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.mapboxgl-ctrl-top-left .mapboxgl-ctrl,.maplibregl-ctrl-top-left .maplibregl-ctrl{float:left;margin:10px 0 0 10px}.mapboxgl-ctrl-bottom .mapboxgl-ctrl,.mapboxgl-ctrl-top .mapboxgl-ctrl{float:left;margin:10px 0}.mapboxgl-ctrl-top-right .mapboxgl-ctrl,.maplibregl-ctrl-top-right .maplibregl-ctrl{float:right;margin:10px 10px 0 0}.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl,.mapboxgl-ctrl-right .mapboxgl-ctrl,.maplibregl-ctrl-bottom-right .maplibregl-ctrl{float:right;margin:0 10px 10px 0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl,.mapboxgl-ctrl-left .mapboxgl-ctrl,.maplibregl-ctrl-bottom-left .maplibregl-ctrl{float:left;margin:0 0 10px 10px}.mapboxgl-ctrl-group,.maplibregl-ctrl-group{background:#fff;border-radius:4px}.mapboxgl-ctrl-group:not(:empty),.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px #0000001a}.mapboxgl-ctrl-group button{background-color:initial;border:0;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:0;overflow:hidden;padding:0;width:29px}.mapboxgl-ctrl-group button+button,.maplibregl-ctrl-group button+button{border-top:1px solid #ddd}.mapboxgl-ctrl button .mapboxgl-ctrl-icon,.maplibregl-ctrl button .maplibregl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}.mapboxgl-ctrl-attrib-button:focus,.mapboxgl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl button:disabled,.maplibregl-ctrl button:disabled,.toggleButtonDisabled_aARS{cursor:not-allowed}.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon,.maplibregl-ctrl button:disabled .maplibregl-ctrl-icon{opacity:.25}.mapboxgl-ctrl-group button:first-child,.maplibregl-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.mapboxgl-ctrl-group button:last-child,.maplibregl-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.mapboxgl-ctrl-group button:only-child,.maplibregl-ctrl-group button:focus:only-child{border-radius:inherit}.mapbox-gl-draw_ctrl-draw-btn.active,.mapbox-gl-draw_ctrl-draw-btn.active:hover,.mapboxgl-ctrl button:not(:disabled):hover,.mapboxgl-popup-close-button:hover,.maplibregl-ctrl button:not(:disabled):hover,.maplibregl-popup-close-button:hover{background-color:#0000000d}.mapboxgl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible),.maplibregl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23aaa' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon,.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-waiting .maplibregl-ctrl-icon{animation:2s linear infinite a}a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='a' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25M6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.4 4.4 0 0 1 3.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2z'/%3E%3Cpath id='b' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19s1.77-4.19 3.94-4.19c1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23zm26.375-.19a4.24 4.24 0 0 0-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.23 4.23 0 0 0 4.17 3.3c2.35 0 4.26-1.87 4.26-4.19s-1.9-4.17-4.27-4.17M60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23m53.615 0h-1.61q-.06 0-.12-.03c-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.2.2 0 0 1-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 0 1 .3-.17h1.6q.06 0 .12.03c.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 0 1-.3.17m-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51s1.08-2.52 2.42-2.52c1.33 0 2.42 1.12 2.42 2.51s-1.08 2.51-2.42 2.52m-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51s-1.07 2.52-2.39 2.53m-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51 1.08-2.52 2.4-2.52c1.33 0 2.39 1.11 2.41 2.48zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51-1.09 2.51-2.42 2.51'/%3E%3C/defs%3E%3Cmask id='c'%3E%3Crect width='100%25' height='100%25' fill='%23fff'/%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/mask%3E%3Cg stroke='%23000' stroke-width='3' opacity='.3'%3E%3Ccircle cx='11.5' cy='11.5' r='9.25' mask='url(%23c)'/%3E%3Cuse xlink:href='%23b' mask='url(%23c)'/%3E%3C/g%3E%3Cg fill='%23fff' opacity='.9'%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/g%3E%3C/svg%3E");cursor:pointer;display:block;height:23px;width:88px}a.mapboxgl-ctrl-logo.mapboxgl-compact{width:23px}.mapboxgl-ctrl.mapboxgl-ctrl-attrib,.maplibregl-ctrl.maplibregl-ctrl-attrib{background-color:#ffffff80;margin:0;padding:0 5px}.mapboxgl-ctrl-attrib a,.maplibregl-ctrl-attrib a{color:#000000bf}.content_knG7 a,.mapboxgl-ctrl-attrib a:hover,.maplibregl-ctrl-attrib a:hover{color:inherit;-webkit-text-decoration:underline;text-decoration:underline}.mapboxgl-ctrl-attrib .mapbox-improve-map{font-weight:700;margin-left:2px}#__docusaurus-base-url-issue-banner-container,.aa-ClearButton[hidden],.aa-ItemContent:empty,.aa-LoadingIndicator[hidden],.aa-Source:empty,.aa-SourceHeader:empty,.mapboxgl-attrib-empty,.mapboxgl-map:active .mapboxgl-popup-track-pointer,.mapboxgl-popup-track-pointer,.mapboxgl-user-location-dot-stale:after,.maplibregl-attrib-empty,.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message,.maplibregl-map:active .maplibregl-popup-track-pointer,.maplibregl-popup-track-pointer,.maplibregl-user-location-dot-stale:after,.themedComponent_mlkZ,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.mapboxgl-ctrl-scale{background-color:#ffffffbf;border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px;white-space:nowrap}.mapboxgl-popup,.maplibregl-popup{display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right,.maplibregl-popup-anchor-top,.maplibregl-popup-anchor-top-left,.maplibregl-popup-anchor-top-right{flex-direction:column}.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right,.maplibregl-popup-anchor-bottom,.maplibregl-popup-anchor-bottom-left,.maplibregl-popup-anchor-bottom-right{flex-direction:column-reverse}.mapboxgl-popup-anchor-left,.maplibregl-popup-anchor-left{flex-direction:row}.mapboxgl-popup-anchor-right,.maplibregl-popup-anchor-right{flex-direction:row-reverse}.mapboxgl-popup-tip,.maplibregl-popup-tip{border:10px solid #0000;height:0;width:0;z-index:1}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip,.maplibregl-popup-anchor-top .maplibregl-popup-tip{align-self:center;border-bottom-color:#fff;border-top:none}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip,.maplibregl-popup-anchor-top-left .maplibregl-popup-tip{align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip,.maplibregl-popup-anchor-top-right .maplibregl-popup-tip{align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip,.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip,.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip,.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip,.maplibregl-popup-anchor-left .maplibregl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip,.maplibregl-popup-anchor-right .maplibregl-popup-tip{align-self:center;border-left-color:#fff;border-right:none}.mapboxgl-popup-close-button,.maplibregl-popup-close-button{background-color:initial;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.mapboxgl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px #0000001a;padding:10px 10px 15px;pointer-events:auto;position:relative}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content,.maplibregl-popup-anchor-top-left .maplibregl-popup-content{border-top-left-radius:0}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content,.maplibregl-popup-anchor-top-right .maplibregl-popup-content{border-top-right-radius:0}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content,.maplibregl-popup-anchor-bottom-left .maplibregl-popup-content{border-bottom-left-radius:0}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content,.maplibregl-popup-anchor-bottom-right .maplibregl-popup-content{border-bottom-right-radius:0}.mapboxgl-popup-track-pointer *,.maplibregl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;user-select:none}.mapboxgl-marker{left:0;opacity:1;position:absolute;top:0;transition:opacity .2s;will-change:transform}.mapboxgl-user-location-dot,.mapboxgl-user-location-dot:before,.maplibregl-user-location-dot,.maplibregl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.mapboxgl-user-location-dot:before,.maplibregl-user-location-dot:before{animation:2s infinite b;content:"";position:absolute}.mapboxgl-user-location-dot:after,.maplibregl-user-location-dot:after{border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px #00000059;box-sizing:border-box;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading{height:0;width:0}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after,.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-bottom:7.5px solid #4aa1eb;content:"";position:absolute}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-left:7.5px solid #0000;transform:translateY(-28px) skewY(-20deg)}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after{border-right:7.5px solid #0000;transform:translate(7.5px,-28px) skewY(20deg)}.mapboxgl-user-location-dot-stale,.maplibregl-user-location-dot-stale{background-color:#aaa}.mapboxgl-user-location-accuracy-circle,.maplibregl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;height:1px;width:1px}.mapboxgl-crosshair,.mapboxgl-crosshair .mapboxgl-interactive,.mapboxgl-crosshair .mapboxgl-interactive:active,.mapboxgl-map.mouse-add .mapboxgl-canvas-container.mapboxgl-interactive,.maplibregl-crosshair,.maplibregl-crosshair .maplibregl-interactive,.maplibregl-crosshair .maplibregl-interactive:active{cursor:crosshair}.mapboxgl-boxzoom,.maplibregl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}.mapboxgl-scroll-zoom-blocker,.mapboxgl-touch-pan-blocker{align-items:center;background:#000000b3;color:#fff;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;height:100%;justify-content:center;left:0;opacity:0;pointer-events:none;position:absolute;text-align:center;top:0;transition:opacity .75s ease-in-out 1s;width:100%}.mapboxgl-scroll-zoom-blocker-show,.mapboxgl-touch-pan-blocker-show{opacity:1;transition:opacity .1s ease-in-out}.maplibregl-map:fullscreen{height:100%;width:100%}.maplibregl-ctrl-group button{background-color:initial;border:0;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:0;padding:0;width:29px}.maplibregl-ctrl button::-moz-focus-inner{border:0;padding:0}.maplibregl-ctrl-attrib-button:focus,.maplibregl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-terrain .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%23333'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-terrain-enabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%2333b5e5'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23aaa' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}@keyframes a{0%{transform:rotate(0)}to{transform:rotate(1turn)}}a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E");cursor:pointer;display:block;height:23px;width:88px}a.maplibregl-ctrl-logo.maplibregl-compact{width:14px}.maplibregl-ctrl-scale{background-color:#ffffffbf;border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px}.maplibregl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px #0000001a;padding:15px 10px;pointer-events:auto;position:relative}.maplibregl-marker{left:0;position:absolute;top:0;transition:opacity .2s;will-change:transform}@keyframes b{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.maplibregl-cooperative-gesture-screen{align-items:center;background:#0006;bottom:0;color:#fff;display:flex;font-size:1.4em;justify-content:center;left:0;line-height:1.2;opacity:0;padding:1rem;pointer-events:none;position:absolute;right:0;top:0;transition:opacity 1s 1s;z-index:99999}.maplibregl-cooperative-gesture-screen.maplibregl-show{opacity:1;transition:opacity .05s}.maplibregl-pseudo-fullscreen{height:100%!important;left:0!important;position:fixed!important;top:0!important;width:100%!important;z-index:99999}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}.mapbox-gl-draw_ctrl-bottom-left,.mapbox-gl-draw_ctrl-top-left{border-radius:0 4px 4px 0;margin-left:0}.mapbox-gl-draw_ctrl-bottom-right,.mapbox-gl-draw_ctrl-top-right{border-radius:4px 0 0 4px;margin-right:0}.mapbox-gl-draw_ctrl-draw-btn{border-color:#000000e6;color:#ffffff80;height:30px;width:30px;background-position:50%;background-repeat:no-repeat}.mapbox-gl-draw_point{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m10 2c-3.3 0-6 2.7-6 6s6 9 6 9 6-5.7 6-9-2.7-6-6-6zm0 2c2.1 0 3.8 1.7 3.8 3.8 0 1.5-1.8 3.9-2.9 5.2h-1.7c-1.1-1.4-2.9-3.8-2.9-5.2-.1-2.1 1.6-3.8 3.7-3.8z"/>%3C/svg>')}.mapbox-gl-draw_polygon{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m15 12.3v-4.6c.6-.3 1-1 1-1.7 0-1.1-.9-2-2-2-.7 0-1.4.4-1.7 1h-4.6c-.3-.6-1-1-1.7-1-1.1 0-2 .9-2 2 0 .7.4 1.4 1 1.7v4.6c-.6.3-1 1-1 1.7 0 1.1.9 2 2 2 .7 0 1.4-.4 1.7-1h4.6c.3.6 1 1 1.7 1 1.1 0 2-.9 2-2 0-.7-.4-1.4-1-1.7zm-8-.3v-4l1-1h4l1 1v4l-1 1h-4z"/>%3C/svg>')}.mapbox-gl-draw_line{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m13.5 3.5c-1.4 0-2.5 1.1-2.5 2.5 0 .3 0 .6.2.9l-3.8 3.8c-.3-.1-.6-.2-.9-.2-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5 2.5-1.1 2.5-2.5c0-.3 0-.6-.2-.9l3.8-3.8c.3.1.6.2.9.2 1.4 0 2.5-1.1 2.5-2.5s-1.1-2.5-2.5-2.5z"/>%3C/svg>')}.mapbox-gl-draw_trash{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="M10,3.4 c-0.8,0-1.5,0.5-1.8,1.2H5l-1,1v1h12v-1l-1-1h-3.2C11.5,3.9,10.8,3.4,10,3.4z M5,8v7c0,1,1,2,2,2h6c1,0,2-1,2-2V8h-2v5.5h-1.5V8h-3 v5.5H7V8H5z"/>%3C/svg>')}.mapbox-gl-draw_uncombine{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m12 2c-.3 0-.5.1-.7.3l-1 1c-.4.4-.4 1 0 1.4l1 1c.4.4 1 .4 1.4 0l1-1c.4-.4.4-1 0-1.4l-1-1c-.2-.2-.4-.3-.7-.3zm4 4c-.3 0-.5.1-.7.3l-1 1c-.4.4-.4 1 0 1.4l1 1c.4.4 1 .4 1.4 0l1-1c.4-.4.4-1 0-1.4l-1-1c-.2-.2-.4-.3-.7-.3zm-7 1c-1 0-1 1-.5 1.5.3.3 1 1 1 1l-1 1s-.5.5 0 1 1 0 1 0l1-1 1 1c.5.5 1.5.5 1.5-.5v-4zm-5 3c-.3 0-.5.1-.7.3l-1 1c-.4.4-.4 1 0 1.4l4.9 4.9c.4.4 1 .4 1.4 0l1-1c.4-.4.4-1 0-1.4l-4.9-4.9c-.1-.2-.4-.3-.7-.3z"/>%3C/svg>')}.mapbox-gl-draw_combine{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="M12.1,2c-0.3,0-0.5,0.1-0.7,0.3l-1,1c-0.4,0.4-0.4,1,0,1.4l4.9,4.9c0.4,0.4,1,0.4,1.4,0l1-1 c0.4-0.4,0.4-1,0-1.4l-4.9-4.9C12.6,2.1,12.3,2,12.1,2z M8,8C7,8,7,9,7.5,9.5c0.3,0.3,1,1,1,1l-1,1c0,0-0.5,0.5,0,1s1,0,1,0l1-1l1,1 C11,13,12,13,12,12V8H8z M4,10c-0.3,0-0.5,0.1-0.7,0.3l-1,1c-0.4,0.4-0.4,1,0,1.4l1,1c0.4,0.4,1,0.4,1.4,0l1-1c0.4-0.4,0.4-1,0-1.4 l-1-1C4.5,10.1,4.3,10,4,10z M8,14c-0.3,0-0.5,0.1-0.7,0.3l-1,1c-0.4,0.4-0.4,1,0,1.4l1,1c0.4,0.4,1,0.4,1.4,0l1-1 c0.4-0.4,0.4-1,0-1.4l-1-1C8.5,14.1,8.3,14,8,14z"/>%3C/svg>')}.mapboxgl-map.mode-direct_select.feature-feature.mouse-move .mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-map.mode-direct_select.feature-vertex.mouse-move .mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-map.mouse-move .mapboxgl-canvas-container.mapboxgl-interactive{cursor:move}.mapboxgl-map.mode-static.mouse-pointer .mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-map.mouse-move.mode-direct_select .mapboxgl-canvas-container.mapboxgl-interactive{cursor:grab;cursor:-webkit-grab}.mapboxgl-map.mode-direct_select.feature-midpoint.mouse-pointer .mapboxgl-canvas-container.mapboxgl-interactive{cursor:cell}.mapbox-gl-draw_boxselect{background:#0000001a;border:2px dotted #fff;height:0;left:0;opacity:.5;pointer-events:none;position:absolute;top:0;width:0}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color)}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.lastUpdated_JAkA{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:-webkit-sticky;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark] .themedComponent--dark_xIcU,[data-theme=light] .themedComponent--light_NVdE,html:not([data-theme]) .themedComponent--light_NVdE{display:initial}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}body.dark,body[data-theme=dark]{--aa-text-color-rgb:183,192,199;--aa-primary-color-rgb:146,138,255;--aa-muted-color-rgb:146,138,255;--aa-input-background-color-rgb:0,3,9;--aa-background-color-rgb:21,24,42;--aa-selected-color-rgb:146,138,255;--aa-selected-color-alpha:0.25;--aa-description-highlight-background-color-rgb:0 255 255;--aa-description-highlight-background-color-alpha:0.25;--aa-panel-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--aa-scrollbar-track-background-color-rgb:44,46,64;--aa-muted-color-alpha:1}.aa-Autocomplete,.aa-DetachedFormContainer,.aa-Panel{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-family:inherit;font-family:var(--aa-font-family);font-size:16px;font-size:var(--aa-font-size);font-weight:400;line-height:1em;margin:0;padding:0;text-align:left}.aa-Form{align-items:center;background-color:#fff;background-color:rgba(var(--aa-input-background-color-rgb),var(--aa-input-background-color-alpha));border:1px solid #807ea3cc;border:1px solid rgba(var(--aa-input-border-color-rgb),var(--aa-input-border-color-alpha));border-radius:3px;display:flex;line-height:1em;margin:0;position:relative;width:100%}.aa-ClearButton,.aa-Input,.aa-SubmitButton{border:0;background:none}.aa-Form:focus-within{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 2px #3e34d333,inset 0 0 0 2px #3e34d333;box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:currentColor}.aa-InputWrapperPrefix{align-items:center;display:flex;flex-shrink:0;height:44px;height:var(--aa-search-input-height);order:1}.aa-Label,.aa-LoadingIndicator{cursor:auto;flex-shrink:0;height:100%;padding:0;text-align:left}.aa-Label svg,.aa-LoadingIndicator svg{color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);height:auto;max-height:20px;max-height:var(--aa-input-icon-size);stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-input-icon-size)}.aa-LoadingIndicator,.aa-SubmitButton{height:100%;padding-left:11px;padding-left:calc(var(--aa-spacing)*.75 - 1px);padding-right:8px;padding-right:var(--aa-spacing-half);width:47px;width:calc(var(--aa-spacing)*1.75 + var(--aa-icon-size) - 1px)}.aa-SubmitButton{-webkit-appearance:none;appearance:none;margin:0}.aa-LoadingIndicator{align-items:center;display:flex;justify-content:center}.aa-InputWrapper{order:3;position:relative;width:100%}.aa-Input{-webkit-appearance:none;appearance:none;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font:inherit;height:44px;height:var(--aa-search-input-height);padding:0;width:100%}.aa-Input::placeholder{color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));opacity:1}.aa-Input:focus{border-color:none;box-shadow:none;outline:0}.aa-Input::-webkit-search-cancel-button,.aa-Input::-webkit-search-decoration,.aa-Input::-webkit-search-results-button,.aa-Input::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none}.aa-InputWrapperSuffix{align-items:center;display:flex;height:44px;height:var(--aa-search-input-height);order:4}.aa-ClearButton{align-items:center;color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;height:100%;margin:0;padding:0 12.83328px;padding:0 calc(var(--aa-spacing)*.83333 - .5px)}.aa-Item,.aa-ItemIcon{align-items:center;border-radius:3px}.aa-ClearButton:focus,.aa-ClearButton:hover,.aa-ItemActionButton:focus svg,.aa-ItemActionButton:hover svg{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha))}.aa-ClearButton svg{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-icon-size)}.aa-Panel{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:4px;border-radius:calc(var(--aa-spacing)/4);box-shadow:0 0 0 1px #23263b1a,0 6px 16px -4px #23263b26;box-shadow:var(--aa-panel-shadow);margin:8px 0 0;overflow:hidden;position:absolute;transition:opacity .2s ease-in,filter .2s ease-in}.aa-Panel button{-webkit-appearance:none;appearance:none;background:none;border:0;margin:0;padding:0}.aa-PanelLayout{height:100%;margin:0;max-height:650px;max-height:var(--aa-panel-max-height);overflow-y:auto;padding:0;position:relative;text-align:left}.aa-PanelLayoutColumns--twoGolden{display:grid;grid-template-columns:39.2% auto;overflow:hidden;padding:0}.aa-PanelLayoutColumns--two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;padding:0}.aa-PanelLayoutColumns--three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;padding:0}.aa-Panel--stalled .aa-Source{filter:grayscale(1);opacity:.8}.aa-Panel--scrollable{margin:0;max-height:650px;max-height:var(--aa-panel-max-height);overflow-x:hidden;overflow-y:auto;padding:8px;padding:var(--aa-spacing-half);scrollbar-color:#fff #eaeaea;scrollbar-color:rgba(var(--aa-scrollbar-thumb-background-color-rgb),var(--aa-scrollbar-thumb-background-color-alpha)) rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha));scrollbar-width:thin}.aa-Panel--scrollable::-webkit-scrollbar{width:13px;width:var(--aa-scrollbar-width)}.aa-Panel--scrollable::-webkit-scrollbar-track{background-color:#eaeaea;background-color:rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha))}.aa-Panel--scrollable::-webkit-scrollbar-thumb{background-color:#fff;background-color:rgba(var(--aa-scrollbar-thumb-background-color-rgb),var(--aa-scrollbar-thumb-background-color-alpha));border:3px solid #eaeaea;border:3px solid rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha));border-radius:9999px;border-right-width:2px}.aa-Source{margin:0;padding:0;position:relative;width:100%}.aa-SourceNoResults{font-size:1em;margin:0;padding:16px;padding:var(--aa-spacing)}.aa-List{list-style:none;margin:0}.aa-List,.aa-SourceHeader{padding:0;position:relative}.aa-SourceHeader{margin:8px .5em 8px 0;margin:var(--aa-spacing-half) .5em var(--aa-spacing-half) 0}.aa-SourceHeaderTitle{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);display:inline-block;font-size:.8em;font-weight:600;font-weight:var(--aa-font-weight-semibold);margin:0;padding:0 8px 0 0;padding:0 var(--aa-spacing-half) 0 0;position:relative;z-index:9999;z-index:var(--aa-base-z-index)}.aa-SourceHeaderLine{border-bottom:1px solid #3e34d3;border-bottom:1px solid rgba(var(--aa-primary-color-rgb),1);display:block;height:2px;left:0;margin:0;opacity:.3;padding:0;position:absolute;right:0;top:8px;top:var(--aa-spacing-half);z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-SourceFooterSeeAll{background:linear-gradient(180deg,#fff,#807ea324);background:linear-gradient(180deg,rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha)),#807ea324);border:1px solid #807ea399;border:1px solid rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));border-radius:5px;box-shadow:inset 0 0 2px #fff,0 2px 2px -1px #4c455826;color:inherit;font-size:.95em;font-weight:500;font-weight:var(--aa-font-weight-medium);padding:.475em 1em .6em}.aa-SourceFooterSeeAll:focus,.aa-SourceFooterSeeAll:hover{border:1px solid #3e34d3;border:1px solid rgba(var(--aa-primary-color-rgb),1);color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1)}.aa-Item{cursor:pointer;display:grid;min-height:40px;min-height:calc(var(--aa-spacing)*2.5);padding:4px;padding:calc(var(--aa-spacing-half)/2)}.aa-Item[aria-selected=true]{background-color:rgba(179,173,214,.205);background-color:rgba(var(--aa-selected-color-rgb),var(--aa-selected-color-alpha))}.aa-Item[aria-selected=true] .aa-ActiveOnly,.aa-Item[aria-selected=true] .aa-ItemActionButton{visibility:visible}.aa-ItemIcon{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));box-shadow:inset 0 0 0 1px #807ea34d;box-shadow:inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));color:#7777a3;color:rgba(var(--aa-icon-color-rgb),var(--aa-icon-color-alpha));display:flex;flex-shrink:0;font-size:.7em;height:28px;height:calc(var(--aa-icon-size) + var(--aa-spacing-half));justify-content:center;overflow:hidden;stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);text-align:center;width:28px;width:calc(var(--aa-icon-size) + var(--aa-spacing-half))}.aa-ItemIcon img{height:auto;max-height:20px;max-height:calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);max-width:20px;max-width:calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);width:auto}.aa-ItemIcon svg{height:20px;height:var(--aa-icon-size);width:20px;width:var(--aa-icon-size)}.aa-ItemIcon--alignTop{align-self:flex-start}.aa-ItemIcon--noBorder{background:none;box-shadow:none}.aa-ItemIcon--picture{height:96px;width:96px}.aa-ItemIcon--picture img{max-height:100%;max-width:100%;padding:8px;padding:var(--aa-spacing-half)}.aa-ItemContent{align-items:center;cursor:pointer;display:grid;gap:8px;grid-gap:8px;grid-gap:var(--aa-spacing-half);gap:var(--aa-spacing-half);grid-auto-flow:column;line-height:1.25em;overflow:hidden}.aa-ItemContent mark{background:none;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-style:normal;font-weight:700;font-weight:var(--aa-font-weight-bold)}.aa-ItemContent--dual{display:flex;flex-direction:column;justify-content:space-between;text-align:left}.aa-ItemContent--dual .aa-ItemContentSubtitle,.aa-ItemContent--dual .aa-ItemContentTitle{display:block}.aa-ItemContent--indented{padding-left:36px;padding-left:calc(var(--aa-icon-size) + var(--aa-spacing))}.aa-ItemContentBody{display:grid;gap:4px;grid-gap:4px;grid-gap:calc(var(--aa-spacing-half)/2);gap:calc(var(--aa-spacing-half)/2)}.aa-ItemContentTitle{display:inline-block;margin:0 .5em 0 0;max-width:100%;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.aa-ItemContentSubtitle{font-size:.92em}.aa-ItemContentSubtitleIcon:before{border-color:#807ea3a3;border-color:rgba(var(--aa-muted-color-rgb),.64);border-style:solid;content:"";display:inline-block;left:1px;position:relative;top:-3px}.aa-PanelFooter:after,.aa-PanelHeader:after{position:absolute;pointer-events:none;right:0;content:"";left:0}.aa-ItemContentSubtitle--inline .aa-ItemContentSubtitleIcon:before{border-width:0 0 1.5px;margin-left:8px;margin-left:var(--aa-spacing-half);margin-right:4px;margin-right:calc(var(--aa-spacing-half)/2);width:10px;width:calc(var(--aa-spacing-half) + 2px)}.aa-ItemContentSubtitle--standalone{align-items:center;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));display:grid;gap:8px;grid-gap:8px;grid-gap:var(--aa-spacing-half);gap:var(--aa-spacing-half);grid-auto-flow:column;justify-content:start}.aa-ItemContentSubtitle--standalone .aa-ItemContentSubtitleIcon:before{border-radius:0 0 0 3px;border-width:0 0 1.5px 1.5px;height:8px;height:var(--aa-spacing-half);width:8px;width:var(--aa-spacing-half)}.aa-ItemContentSubtitleCategory{color:#807ea3;color:rgba(var(--aa-muted-color-rgb),1);font-weight:500}.aa-ItemContentDescription{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-size:.85em;max-width:100%;overflow-x:hidden;text-overflow:ellipsis}.aa-ItemContentDescription:empty{display:none}.aa-ItemContentDescription mark{background:#f5df4d80;background:rgba(var(--aa-description-highlight-background-color-rgb),var(--aa-description-highlight-background-color-alpha));color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-style:normal;font-weight:500;font-weight:var(--aa-font-weight-medium)}.aa-ItemContentDash{color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));display:none;opacity:.4}.aa-ItemContentTag{background-color:#3e34d333;background-color:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha));border-radius:3px;margin:0 .4em 0 0;padding:.08em .3em}.aa-ItemLink,.aa-ItemWrapper{align-items:center;color:inherit;display:grid;gap:4px;grid-gap:4px;grid-gap:calc(var(--aa-spacing-half)/2);gap:calc(var(--aa-spacing-half)/2);grid-auto-flow:column;justify-content:space-between;width:100%}.aa-ItemLink{color:inherit}.aa-ItemActions{display:grid;grid-auto-flow:column;height:100%;justify-self:end;margin:0 -5.33333px;margin:0 calc(var(--aa-spacing)/-3);padding:0 2px 0 0}.aa-ItemActionButton{align-items:center;background:none;border:0;color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;flex-shrink:0;padding:0}.aa-ItemActionButton svg{color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));margin:5.33333px;margin:calc(var(--aa-spacing)/3);stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-action-icon-size)}.aa-ActiveOnly{visibility:hidden}.aa-PanelHeader{align-items:center;background:#3e34d3;background:rgba(var(--aa-primary-color-rgb),1);color:#fff;display:grid;height:var(--aa-modal-header-height);margin:0;padding:8px 16px;padding:var(--aa-spacing-half) var(--aa-spacing);position:relative}.aa-PanelHeader:after{background-image:linear-gradient(#fff,#fff0);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),1),rgba(var(--aa-background-color-rgb),0));bottom:-8px;bottom:calc(var(--aa-spacing-half)*-1);height:8px;height:var(--aa-spacing-half)}.aa-PanelFooter,.aa-PanelHeader:after{z-index:9999;z-index:var(--aa-base-z-index)}.aa-PanelFooter{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));box-shadow:inset 0 1px 0 #807ea34d;box-shadow:inset 0 1px 0 rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));display:flex;justify-content:space-between;margin:0;padding:16px;padding:var(--aa-spacing);position:relative}.aa-PanelFooter:after{background-image:linear-gradient(#fff0,#807ea399);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),0),rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha)));height:16px;height:var(--aa-spacing);opacity:.12;top:-16px;top:calc(var(--aa-spacing)*-1);z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-DetachedContainer{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));bottom:0;box-shadow:0 0 0 1px #23263b1a,0 6px 16px -4px #23263b26;box-shadow:var(--aa-panel-shadow);display:flex;flex-direction:column;left:0;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-DetachedContainer:after{height:32px}.aa-DetachedContainer .aa-SourceHeader{margin:8px 0 8px 2px;margin:var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px}.aa-DetachedContainer .aa-Panel{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:0;box-shadow:none;flex-grow:1;margin:0;padding:0;position:relative}.aa-DetachedContainer .aa-PanelLayout{bottom:0;box-shadow:none;left:0;margin:0;max-height:none;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.aa-DetachedFormContainer{border-bottom:1px solid #807ea34d;border-bottom:1px solid rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:8px;padding:var(--aa-spacing-half)}.aa-DetachedCancelButton{background:none;border:0;border-radius:3px;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));cursor:pointer;font:inherit;margin:0 0 0 8px;margin:0 0 0 var(--aa-spacing-half);padding:0 8px;padding:0 var(--aa-spacing-half)}.aa-DetachedCancelButton:focus,.aa-DetachedCancelButton:hover{box-shadow:inset 0 0 0 1px #807ea34d;box-shadow:inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha))}.aa-DetachedContainer--modal{border-radius:6px;bottom:inherit;height:auto;margin:0 auto;max-width:680px;max-width:var(--aa-detached-modal-max-width);position:absolute;top:3%}.aa-DetachedContainer--modal .aa-PanelLayout{max-height:500px;max-height:var(--aa-detached-modal-max-height);padding-bottom:8px;padding-bottom:var(--aa-spacing-half);position:static}.aa-DetachedContainer--modal .aa-PanelLayout:empty,.aa-DetachedSearchButtonPlaceholder[hidden],.docSidebarContainer_YfHR,.navbarSearchContainer_Bca1:empty,.sidebarLogo_isFc{display:none}.aa-DetachedSearchButton{align-items:center;background-color:#fff;background-color:rgba(var(--aa-input-background-color-rgb),var(--aa-input-background-color-alpha));border:1px solid #807ea3cc;border:1px solid rgba(var(--aa-input-border-color-rgb),var(--aa-input-border-color-alpha));border-radius:3px;color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;font:inherit;font-family:inherit;font-family:var(--aa-font-family);font-size:16px;font-size:var(--aa-font-size);height:44px;height:var(--aa-search-input-height);margin:0;padding:0 5.5px;padding:0 calc(var(--aa-search-input-height)/8);position:relative;text-align:left;width:100%}.aa-DetachedSearchButton:focus{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 3px #3e34d333,inset 0 0 0 2px #3e34d333;box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 3px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:currentColor}.aa-DetachedSearchButtonIcon{align-items:center;color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);cursor:auto;display:flex;flex-shrink:0;height:100%;justify-content:center;width:36px;width:calc(var(--aa-icon-size) + var(--aa-spacing))}.aa-DetachedSearchButtonQuery{color:#262627;color:rgba(var(--aa-text-color-rgb),1);line-height:1.25em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aa-Detached{height:100vh;overflow:hidden}.aa-DetachedOverlay{background-color:#73728166;background-color:rgba(var(--aa-overlay-color-rgb),var(--aa-overlay-color-alpha));height:100vh;left:0;margin:0;padding:0;position:fixed;right:0;top:0;z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-GradientBottom,.aa-GradientTop{height:8px;height:var(--aa-spacing-half);left:0;pointer-events:none;position:absolute;right:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-GradientTop{background-image:linear-gradient(#fff,#fff0);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),1),rgba(var(--aa-background-color-rgb),0));top:0}.aa-GradientBottom{background-image:linear-gradient(#fff0,#fff);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),0),rgba(var(--aa-background-color-rgb),1));border-bottom-left-radius:4px;border-bottom-left-radius:calc(var(--aa-spacing)/4);border-bottom-right-radius:4px;border-bottom-right-radius:calc(var(--aa-spacing)/4);bottom:0}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.errorBoundaryFallback_VBag{color:red;padding:.55rem}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.docMainContainer_TBSr,.docRoot_UBD9{display:flex;width:100%}.docsWrapper_hBAB{display:flex;flex:1 0 auto}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:-webkit-sticky;position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{left:0;position:absolute;top:0;fill:currentColor;height:inherit;opacity:inherit;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.containsTaskList_mC6p{list-style:none}:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family)}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Rf37 svg{display:inline-block;height:1.6em;width:1.6em;fill:var(--ifm-alert-foreground-color)}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.maplibregl-ctrl-geocoder{background-color:#fff;border-radius:4px;font-family:Open Sans,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:18px;line-height:24px;min-width:240px;position:relative;transition:width .25s,min-width .25s;width:100%;z-index:1}.maplibregl-ctrl-geocoder--input{background-color:initial;border:0;color:#404040;color:#000000bf;font:inherit;height:50px;margin:0;overflow:hidden;padding:6px 45px;text-overflow:ellipsis;white-space:nowrap;width:100%}.maplibregl-ctrl-geocoder--result-title,.maplibregl-ctrl-geocoder--suggestion-match{font-weight:700}.maplibregl-ctrl-geocoder--result-icon,.maplibregl-ctrl-geocoder--suggestion-icon{max-height:24px;max-width:30px;min-height:24px;min-width:30px;padding-right:12px}.maplibregl-ctrl-geocoder--input::-ms-clear{display:none}.maplibregl-ctrl-geocoder--input:focus{box-shadow:none;color:#404040;color:#000000bf;outline:0;outline:dotted thin}.maplibregl-ctrl-geocoder .maplibregl-ctrl-geocoder--pin-right>*{display:none;position:absolute;right:8px;top:7px;z-index:2}.maplibregl-ctrl-geocoder,.maplibregl-ctrl-geocoder .suggestions{box-shadow:0 0 10px 2px #0000001a}.maplibregl-ctrl-geocoder.maplibregl-ctrl-geocoder--collapsed{min-width:50px;transition:width .25s,min-width .25s;width:50px}.maplibregl-ctrl-geocoder .suggestions{background-color:#fff;border-radius:4px;font-size:15px;left:0;list-style:none;margin:0;overflow:hidden;padding:0;position:absolute;top:110%;top:calc(100% + 6px);width:100%;z-index:1000}.maplibregl-ctrl-bottom-left .suggestions,.maplibregl-ctrl-bottom-right .suggestions{bottom:100%;top:auto}.maplibregl-ctrl-geocoder .suggestions>li>a{color:#404040;cursor:default;display:block;padding:6px 12px}.maplibregl-ctrl-geocoder .suggestions>.active>a,.maplibregl-ctrl-geocoder .suggestions>li>a:hover{background-color:#f3f3f3;color:#404040;cursor:pointer}.maplibregl-ctrl-geocoder--suggestion{align-items:center;display:flex;flex-direction:row}.maplibregl-ctrl-geocoder--suggestion-info{display:flex;flex-direction:column}.maplibregl-ctrl-geocoder--suggestion-address,.maplibregl-ctrl-geocoder--suggestion-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.maplibregl-ctrl-geocoder--result{align-items:center;display:flex;flex-direction:row}.maplibregl-ctrl-geocoder--result-address,.maplibregl-ctrl-geocoder--result-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.maplibregl-ctrl-geocoder--icon{display:inline-block;vertical-align:middle;speak:none;fill:#757575;top:15px}.maplibregl-ctrl-geocoder--icon-search{height:23px;left:12px;position:absolute;top:13px;width:23px}.maplibregl-ctrl-geocoder--button{background:#fff;border:none;cursor:pointer;line-height:1;margin:0;padding:0}.maplibregl-ctrl-geocoder--icon-close{height:20px;margin-right:3px;margin-top:8px;width:20px}.maplibregl-ctrl-geocoder--button:hover .maplibregl-ctrl-geocoder--icon-close{fill:#909090}.maplibregl-ctrl-geocoder--icon-loading{animation:.8s cubic-bezier(.45,.05,.55,.95) infinite c;height:26px;margin-right:0;margin-top:5px;width:26px}@keyframes c{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@media screen and (min-width:640px){.maplibregl-ctrl-geocoder.maplibregl-ctrl-geocoder--collapsed{min-width:36px;width:36px}.maplibregl-ctrl-geocoder{font-size:15px;line-height:20px;max-width:360px;width:33.3333%}.maplibregl-ctrl-geocoder .suggestions{font-size:13px}.maplibregl-ctrl-geocoder--icon{top:8px}.maplibregl-ctrl-geocoder--icon-close{height:16px;margin-right:0;margin-top:3px;width:16px}.maplibregl-ctrl-geocoder--icon-search{height:20px;left:7px;width:20px}.maplibregl-ctrl-geocoder--input{height:36px;padding:6px 35px}.maplibregl-ctrl-geocoder--icon-loading{height:26px;margin-right:-5px;margin-top:-2px;width:26px}.maplibre-gl-geocoder--error{color:#909090;font-size:16px;padding:6px 12px;text-align:center}}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_TmdG{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.lastUpdated_JAkA{text-align:right}.tocMobile_ITEo{display:none}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:-webkit-sticky;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_i1dp,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_TmdG:focus,.expandButton_TmdG:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.navbarSearchContainer_Bca1{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);-webkit-text-decoration:none!important;text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_TmdG{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_i1dp{transform:rotate(180deg)}.docSidebarContainer_YfHR{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_DPk8{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_aRkj{height:100%;max-height:100vh;position:-webkit-sticky;position:sticky;top:0}.docMainContainer_TBSr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.docItemCol_VOVn{max-width:75%!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block;width:-webkit-max-content;width:max-content}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.docItemContainer_F8PC{padding:0 .3rem}.navbarSearchContainer_Bca1{position:absolute;right:var(--ifm-navbar-padding-horizontal)}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media (hover:none),(max-width:480px){.maplibregl-cooperative-gesture-screen .maplibregl-desktop-message{display:none}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:block}}@media (-ms-high-contrast:active){.mapboxgl-ctrl-icon,a.mapboxgl-ctrl-logo{background-color:initial}.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}.mapboxgl-ctrl-group button+button{border-top:1px solid ButtonText}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23999' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23999' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='a' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25M6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.4 4.4 0 0 1 3.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2z'/%3E%3Cpath id='b' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19s1.77-4.19 3.94-4.19c1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23zm26.375-.19a4.24 4.24 0 0 0-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.23 4.23 0 0 0 4.17 3.3c2.35 0 4.26-1.87 4.26-4.19s-1.9-4.17-4.27-4.17M60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23m53.615 0h-1.61q-.06 0-.12-.03c-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.2.2 0 0 1-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 0 1 .3-.17h1.6q.06 0 .12.03c.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 0 1-.3.17m-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51s1.08-2.52 2.42-2.52c1.33 0 2.42 1.12 2.42 2.51s-1.08 2.51-2.42 2.52m-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51s-1.07 2.52-2.39 2.53m-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51 1.08-2.52 2.4-2.52c1.33 0 2.39 1.11 2.41 2.48zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51-1.09 2.51-2.42 2.51'/%3E%3C/defs%3E%3Cmask id='c'%3E%3Crect width='100%25' height='100%25' fill='%23fff'/%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/mask%3E%3Cg stroke='%23000' stroke-width='3'%3E%3Ccircle cx='11.5' cy='11.5' r='9.25' mask='url(%23c)'/%3E%3Cuse xlink:href='%23b' mask='url(%23c)'/%3E%3C/g%3E%3Cg fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/g%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23666' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='a' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25M6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.4 4.4 0 0 1 3.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2z'/%3E%3Cpath id='b' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19s1.77-4.19 3.94-4.19c1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23zm26.375-.19a4.24 4.24 0 0 0-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.23 4.23 0 0 0 4.17 3.3c2.35 0 4.26-1.87 4.26-4.19s-1.9-4.17-4.27-4.17M60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23m53.615 0h-1.61q-.06 0-.12-.03c-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.2.2 0 0 1-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 0 1 .3-.17h1.6q.06 0 .12.03c.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 0 1-.3.17m-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51s1.08-2.52 2.42-2.52c1.33 0 2.42 1.12 2.42 2.51s-1.08 2.51-2.42 2.52m-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51s-1.07 2.52-2.39 2.53m-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51 1.08-2.52 2.4-2.52c1.33 0 2.39 1.11 2.41 2.48zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51-1.09 2.51-2.42 2.51'/%3E%3C/defs%3E%3Cmask id='c'%3E%3Crect width='100%25' height='100%25' fill='%23fff'/%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/mask%3E%3Cg fill='%23fff' stroke='%23fff' stroke-width='3'%3E%3Ccircle cx='11.5' cy='11.5' r='9.25' mask='url(%23c)'/%3E%3Cuse xlink:href='%23b' mask='url(%23c)'/%3E%3C/g%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/svg%3E")}}@media (forced-colors:active){.maplibregl-ctrl-icon,a.maplibregl-ctrl-logo{background-color:initial}.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}.maplibregl-ctrl-group button+button{border-top:1px solid ButtonText}.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23999' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23666' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}.aa-TouchOnly{display:none}}@media (hover:none) and (pointer:coarse){:root{--aa-spacing-factor:1.2;--aa-action-icon-size:22px}.aa-LoadingIndicator,.aa-SubmitButton{padding-left:3px;padding-left:calc(var(--aa-spacing-half)/ 2 - 1px);width:39px;width:calc(var(--aa-icon-size) + var(--aa-spacing)*1.25 - 1px)}.aa-ClearButton{padding:0 10.16672px;padding:0 calc(var(--aa-spacing)*.66667 - .5px)}.aa-ItemActionButton:focus svg,.aa-ItemActionButton:hover svg{color:inherit}.aa-DesktopOnly{display:none}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media screen{.mapboxgl-ctrl-attrib.mapboxgl-compact,.maplibregl-ctrl-attrib.maplibregl-compact{background-color:#fff;box-sizing:initial;margin:10px;min-height:20px;position:relative}.mapboxgl-ctrl-attrib-button,.maplibregl-ctrl-attrib-button{background-color:#ffffff80;box-sizing:border-box;cursor:pointer;height:24px;outline:0;position:absolute;right:0;top:0;width:24px;display:none}.mapboxgl-ctrl-attrib.mapboxgl-compact{border-radius:12px;padding:2px 24px 2px 0}.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.maplibregl-ctrl-attrib.maplibregl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact-show,.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner,.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-inner{display:none}.mapboxgl-ctrl-attrib-button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after,.mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button,.maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-top-left .maplibregl-ctrl-attrib-button{left:0}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner,.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner{display:block}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button,.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button{background-color:#0000000d}.mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after,.maplibregl-ctrl-bottom-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;right:0}.mapboxgl-ctrl-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{right:0}.mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after,.maplibregl-ctrl-top-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{right:0;top:0}.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after,.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{left:0;top:0}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after,.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;left:0}.maplibregl-ctrl-attrib.maplibregl-compact{border-radius:12px;color:#000;padding:2px 24px 2px 0}.maplibregl-ctrl-attrib-button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button{-webkit-appearance:none;appearance:none;list-style:none}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button::-webkit-details-marker{display:none}}@media screen and (-ms-high-contrast:active){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (forced-colors:active){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%23fff' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (prefers-reduced-motion){.aa-Panel{transition:none}}@media print{.announcementBar_mb4j,.footer,.mapbox-improve-map,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/js/0117ea12.b7c73909.js b/assets/js/0117ea12.b7c73909.js new file mode 100644 index 00000000..f99c7dd0 --- /dev/null +++ b/assets/js/0117ea12.b7c73909.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[3981],{1353:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>y,contentTitle:()=>g,default:()=>_,frontMatter:()=>h,metadata:()=>o,toc:()=>v});const o=JSON.parse('{"id":"mapbox/geojson","title":"GeoJSON","description":"","source":"@site/src/examples/mapbox/geojson.mdx","sourceDirName":"mapbox","slug":"/mapbox/geojson","permalink":"/react-map-gl/examples/mapbox/geojson","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"GeoJSON Animation","permalink":"/react-map-gl/examples/mapbox/geojson-animation"},"next":{"title":"Heatmap","permalink":"/react-map-gl/examples/mapbox/heatmap"}}');var r=n(4848),s=n(8453),a=n(6540),i=(n(5338),n(2198));function c(e){const{year:t}=e;return(0,r.jsxs)("div",{className:"control-panel",children:[(0,r.jsx)("h3",{children:"Interactive GeoJSON"}),(0,r.jsxs)("p",{children:["Map showing median household income by state in year ",(0,r.jsx)("b",{children:t}),". Hover over a state to see details."]}),(0,r.jsxs)("p",{children:["Data source:"," ",(0,r.jsx)("a",{href:"https://www.census.gov",target:"_new",children:"US Census Bureau"})]}),(0,r.jsx)("div",{className:"source-link",children:(0,r.jsx)("a",{href:"https://github.com/visgl/react-map-gl/tree/7.0-release/examples/geojson",target:"_new",children:"View Code \u2197"})}),(0,r.jsx)("hr",{}),(0,r.jsxs)("div",{className:"input",children:[(0,r.jsx)("label",{children:"Year"}),(0,r.jsx)("input",{type:"range",value:t,min:1995,max:2015,step:1,onChange:t=>e.onChange(t.target.value)})]},"year")]})}const l=a.memo(c),u={id:"data",type:"fill",paint:{"fill-color":{type:"interval",property:"percentile",stops:[[0,"#3288bd"],[1,"#66c2a5"],[2,"#abdda4"],[3,"#e6f598"],[4,"#ffffbf"],[5,"#fee08b"],[6,"#fdae61"],[7,"#f46d43"],[8,"#d53e4f"]]},"fill-opacity":.8}};var p=n(6561),d=n(7982);const f="";function m(){const[e,t]=(0,a.useState)(2015),[n,o]=(0,a.useState)(null),[s,c]=(0,a.useState)(null);(0,a.useEffect)((()=>{fetch("https://raw.githubusercontent.com/uber/react-map-gl/master/examples/.data/us-income.geojson").then((e=>e.json())).then((e=>o(e))).catch((e=>console.error("Could not load data",e)))}),[]);const m=(0,a.useCallback)((e=>{const{features:t,point:{x:n,y:o}}=e,r=t&&t[0];c(r&&{feature:r,x:n,y:o})}),[]),h=(0,a.useMemo)((()=>n&&function(e,t){const{features:n}=e,o=(0,d.A)().domain(n.map(t)).range((0,p.A)(9));return{type:"FeatureCollection",features:n.map((e=>{const n=t(e),r=Object.assign({},e.properties,{value:n,percentile:o(n)});return Object.assign({},e,{properties:r})}))}}(n,(t=>t.properties.income[e]))),[n,e]);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(i.Ay,{initialViewState:{latitude:40,longitude:-100,zoom:3},mapStyle:"mapbox://styles/mapbox/light-v9",mapboxAccessToken:f,interactiveLayerIds:["data"],onMouseMove:m,children:[(0,r.jsx)(i.kL,{type:"geojson",data:h,children:(0,r.jsx)(i.Wd,Object.assign({},u))}),s&&(0,r.jsxs)("div",{className:"tooltip",style:{left:s.x,top:s.y},children:[(0,r.jsxs)("div",{children:["State: ",s.feature.properties.name]}),(0,r.jsxs)("div",{children:["Median Household Income: ",s.feature.properties.value]}),(0,r.jsxs)("div",{children:["Percentile: ",s.feature.properties.percentile/8*100]})]})]}),(0,r.jsx)(l,{year:e,onChange:e=>t(e)})]})}const h={},g="GeoJSON",y={},v=[];function x(e){const t={h1:"h1",header:"header",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"geojson",children:"GeoJSON"})}),"\n","\n",(0,r.jsx)(m,{})]})}function _(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(x,{...e})}):x(e)}},2198:(e,t,n)=>{n.d(t,{T3:()=>z,tG:()=>I,Wd:()=>G,T5:()=>w,pH:()=>T,ov:()=>D,zD:()=>R,g0:()=>Z,kL:()=>H,Ay:()=>w,VI:()=>O});var o=n(6540),r=n(4848);const s=o.createContext(null);function a(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n{let n=null;"interactive"in e&&(n=Object.assign({},e),delete n.interactive);const o=t[e.ref];if(o){n=n||Object.assign({},e),delete n.ref;for(const e of u)e in o&&(n[e]=o[e])}return n||e}));return Object.assign({},e,{layers:n})}const d={version:8,sources:{},layers:[]},f={mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",click:"onClick",dblclick:"onDblClick",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",mouseout:"onMouseOut",contextmenu:"onContextMenu",touchstart:"onTouchStart",touchend:"onTouchEnd",touchmove:"onTouchMove",touchcancel:"onTouchCancel"},m={movestart:"onMoveStart",move:"onMove",moveend:"onMoveEnd",dragstart:"onDragStart",drag:"onDrag",dragend:"onDragEnd",zoomstart:"onZoomStart",zoom:"onZoom",zoomend:"onZoomEnd",rotatestart:"onRotateStart",rotate:"onRotate",rotateend:"onRotateEnd",pitchstart:"onPitchStart",pitch:"onPitch",pitchend:"onPitchEnd"},h={wheel:"onWheel",boxzoomstart:"onBoxZoomStart",boxzoomend:"onBoxZoomEnd",boxzoomcancel:"onBoxZoomCancel",resize:"onResize",load:"onLoad",render:"onRender",idle:"onIdle",remove:"onRemove",data:"onData",styledata:"onStyleData",sourcedata:"onSourceData",error:"onError"},g=["minZoom","maxZoom","minPitch","maxPitch","maxBounds","projection","renderWorldCopies"],y=["scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate","touchPitch"];class v{constructor(e,t,n){this._map=null,this._internalUpdate=!1,this._inRender=!1,this._hoveredFeatures=null,this._deferredEvents={move:!1,zoom:!1,pitch:!1,rotate:!1},this._onEvent=e=>{const t=this.props[h[e.type]];t?t(e):"error"===e.type&&console.error(e.error)},this._onPointerEvent=e=>{"mousemove"!==e.type&&"mouseout"!==e.type||this._updateHover(e);const t=this.props[f[e.type]];t&&(this.props.interactiveLayerIds&&"mouseover"!==e.type&&"mouseout"!==e.type&&(e.features=this._hoveredFeatures||this._queryRenderedFeatures(e.point)),t(e),delete e.features)},this._onCameraEvent=e=>{if(!this._internalUpdate){const t=this.props[m[e.type]];t&&t(e)}e.type in this._deferredEvents&&(this._deferredEvents[e.type]=!1)},this._MapClass=e,this.props=t,this._initialize(n)}get map(){return this._map}get transform(){return this._renderTransform}setProps(e){const t=this.props;this.props=e;const n=this._updateSettings(e,t);n&&this._createShadowTransform(this._map);const o=this._updateSize(e),r=this._updateViewState(e,!0);this._updateStyle(e,t),this._updateStyleComponents(e,t),this._updateHandlers(e,t),(n||o||r&&!this._map.isMoving())&&this.redraw()}static reuse(e,t){const n=v.savedMaps.pop();if(!n)return null;const o=n.map,r=o.getContainer();for(t.className=r.className;r.childNodes.length>0;)t.appendChild(r.childNodes[0]);o._container=t,n.setProps(Object.assign({},e,{styleDiffing:!1})),o.resize();const{initialViewState:s}=e;return s&&(s.bounds?o.fitBounds(s.bounds,Object.assign({},s.fitBoundsOptions,{duration:0})):n._updateViewState(s,!1)),o.isStyleLoaded()?o.fire("load"):o.once("styledata",(()=>o.fire("load"))),o._update(),n}_initialize(e){const{props:t}=this,{mapStyle:n=d}=t,o=Object.assign({},t,t.initialViewState,{accessToken:t.mapboxAccessToken||x()||null,container:e,style:p(n)}),r=o.initialViewState||o.viewState||o;if(Object.assign(o,{center:[r.longitude||0,r.latitude||0],zoom:r.zoom||0,pitch:r.pitch||0,bearing:r.bearing||0}),t.gl){const e=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=e,t.gl)}const s=new this._MapClass(o);r.padding&&s.setPadding(r.padding),t.cursor&&(s.getCanvas().style.cursor=t.cursor),this._createShadowTransform(s);const a=s._render;s._render=e=>{this._inRender=!0,a.call(s,e),this._inRender=!1};const c=s._renderTaskQueue.run;s._renderTaskQueue.run=e=>{c.call(s._renderTaskQueue,e),this._onBeforeRepaint()},s.on("render",(()=>this._onAfterRepaint()));const l=s.fire;s.fire=this._fireEvent.bind(this,l),s.on("resize",(()=>{this._renderTransform.resize(s.transform.width,s.transform.height)})),s.on("styledata",(()=>{this._updateStyleComponents(this.props,{}),i(s.transform,this._renderTransform)})),s.on("sourcedata",(()=>this._updateStyleComponents(this.props,{})));for(const i in f)s.on(i,this._onPointerEvent);for(const i in m)s.on(i,this._onCameraEvent);for(const i in h)s.on(i,this._onEvent);this._map=s}recycle(){const e=this.map.getContainer().querySelector("[mapboxgl-children]");null==e||e.remove(),v.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){const e=this._map;!this._inRender&&e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())}_createShadowTransform(e){const t=function(e){const t=e.clone();return t.pixelsToGLUnits=e.pixelsToGLUnits,t}(e.transform);e.painter.transform=t,this._renderTransform=t}_updateSize(e){const{viewState:t}=e;if(t){const e=this._map;if(t.width!==e.transform.width||t.height!==e.transform.height)return e.resize(),!0}return!1}_updateViewState(e,t){if(this._internalUpdate)return!1;const n=this._map,o=this._renderTransform,{zoom:r,pitch:s,bearing:a}=o,i=n.isMoving();i&&(o.cameraElevationReference="sea");const u=l(o,Object.assign({},c(n.transform),e));if(i&&(o.cameraElevationReference="ground"),u&&t){const e=this._deferredEvents;e.move=!0,e.zoom||(e.zoom=r!==o.zoom),e.rotate||(e.rotate=a!==o.bearing),e.pitch||(e.pitch=s!==o.pitch)}return i||l(n.transform,e),u}_updateSettings(e,t){const n=this._map;let o=!1;for(const r of g)if(r in e&&!a(e[r],t[r])){o=!0;const t=n["set"+r[0].toUpperCase()+r.slice(1)];null==t||t.call(n,e[r])}return o}_updateStyle(e,t){if(e.cursor!==t.cursor&&(this._map.getCanvas().style.cursor=e.cursor||""),e.mapStyle!==t.mapStyle){const{mapStyle:t=d,styleDiffing:n=!0}=e,o={diff:n};return"localIdeographFontFamily"in e&&(o.localIdeographFontFamily=e.localIdeographFontFamily),this._map.setStyle(p(t),o),!0}return!1}_updateStyleComponents(e,t){const n=this._map;let o=!1;return n.isStyleLoaded()&&("light"in e&&n.setLight&&!a(e.light,t.light)&&(o=!0,n.setLight(e.light)),"fog"in e&&n.setFog&&!a(e.fog,t.fog)&&(o=!0,n.setFog(e.fog)),"terrain"in e&&n.setTerrain&&!a(e.terrain,t.terrain)&&(e.terrain&&!n.getSource(e.terrain.source)||(o=!0,n.setTerrain(e.terrain)))),o}_updateHandlers(e,t){const n=this._map;let o=!1;for(const i of y){var r,s;const c=null==(r=e[i])||r;a(c,null==(s=t[i])||s)||(o=!0,c?n[i].enable(c):n[i].disable())}return o}_queryRenderedFeatures(e){const t=this._map,n=t.transform,{interactiveLayerIds:o=[]}=this.props;try{return t.transform=this._renderTransform,t.queryRenderedFeatures(e,{layers:o.filter(t.getLayer.bind(t))})}catch(r){return[]}finally{t.transform=n}}_updateHover(e){const{props:t}=this;if(t.interactiveLayerIds&&(t.onMouseMove||t.onMouseEnter||t.onMouseLeave)){var n;const t=e.type,o=(null==(n=this._hoveredFeatures)?void 0:n.length)>0,r=this._queryRenderedFeatures(e.point),s=r.length>0;!s&&o&&(e.type="mouseleave",this._onPointerEvent(e)),this._hoveredFeatures=r,s&&!o&&(e.type="mouseenter",this._onPointerEvent(e)),e.type=t}else this._hoveredFeatures=null}_fireEvent(e,t,n){const o=this._map,r=o.transform,s="string"==typeof t?t:t.type;return"move"===s&&this._updateViewState(this.props,!1),s in m&&("object"==typeof t&&(t.viewState=c(r)),this._map.isMoving())?(o.transform=this._renderTransform,e.call(o,t,n),o.transform=r,o):(e.call(o,t,n),o)}_onBeforeRepaint(){const e=this._map;this._internalUpdate=!0;for(const n in this._deferredEvents)this._deferredEvents[n]&&e.fire(n);this._internalUpdate=!1;const t=this._map.transform;e.transform=this._renderTransform,this._onAfterRepaint=()=>{i(this._renderTransform,t),e.transform=t}}}function x(){let e=null;if("undefined"!=typeof location){const t=/access_token=([^&\/]*)/.exec(location.search);e=t&&t[1]}try{e=e||"pk.eyJ1IjoidWNmLW1hcGJveCIsImEiOiJja2tyNHQzdnIzYmNnMndwZGI3djNzdjVyIn0.xgCXV9mLZ47q7easx6WLCQ"}catch(t){}try{e=e||process.env.REACT_APP_MAPBOX_ACCESS_TOKEN}catch(n){}return e}v.savedMaps=[];const _=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function b(e){if(!e)return null;const t=e.map,n={getMap:()=>t,getCenter:()=>e.transform.center,getZoom:()=>e.transform.zoom,getBearing:()=>e.transform.bearing,getPitch:()=>e.transform.pitch,getPadding:()=>e.transform.padding,getBounds:()=>e.transform.getBounds(),project:n=>{const o=t.transform;t.transform=e.transform;const r=t.project(n);return t.transform=o,r},unproject:n=>{const o=t.transform;t.transform=e.transform;const r=t.unproject(n);return t.transform=o,r},queryTerrainElevation:(n,o)=>{const r=t.transform;t.transform=e.transform;const s=t.queryTerrainElevation(n,o);return t.transform=r,s},queryRenderedFeatures:(n,o)=>{const r=t.transform;t.transform=e.transform;const s=t.queryRenderedFeatures(n,o);return t.transform=r,s}};for(const o of function(e){const t=new Set;let n=e;for(;n;){for(const o of Object.getOwnPropertyNames(n))"_"!==o[0]&&"function"==typeof e[o]&&"fire"!==o&&"setEventedParent"!==o&&t.add(o);n=Object.getPrototypeOf(n)}return Array.from(t)}(t))o in n||_.includes(o)||(n[o]=t[o].bind(t));return n}const j="undefined"!=typeof document?o.useLayoutEffect:o.useEffect,S=["baseApiUrl","maxParallelImageRequests","workerClass","workerCount","workerUrl"];const L=o.createContext(null);function C(e,t){const a=(0,o.useContext)(s),[i,c]=(0,o.useState)(null),l=(0,o.useRef)(),{current:u}=(0,o.useRef)({mapLib:null,map:null});(0,o.useEffect)((()=>{const t=e.mapLib;let o,r=!0;return Promise.resolve(t||n.e(842).then(n.t.bind(n,842,23))).then((t=>{if(!r)return;if(!t)throw new Error("Invalid mapLib");const n="Map"in t?t:t.default;if(!n.Map)throw new Error("Invalid mapLib");if(function(e,t){for(const o of S)o in t&&(e[o]=t[o]);const{RTLTextPlugin:n="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js"}=t;n&&e.getRTLTextPluginStatus&&"unavailable"===e.getRTLTextPluginStatus()&&e.setRTLTextPlugin(n,(e=>{e&&console.error(e)}),!0)}(n,e),n.supported&&!n.supported(e))throw new Error("Map is not supported by this browser");e.reuseMaps&&(o=v.reuse(e,l.current)),o||(o=new v(n.Map,e,l.current)),u.map=b(o),u.mapLib=n,c(o),null==a||a.onMapMount(u.map,e.id)})).catch((t=>{const{onError:n}=e;n?n({type:"error",target:null,error:t}):console.error(t)})),()=>{r=!1,o&&(null==a||a.onMapUnmount(e.id),e.reuseMaps?o.recycle():o.destroy())}}),[]),j((()=>{i&&i.setProps(e)})),(0,o.useImperativeHandle)(t,(()=>u.map),[i]);const p=(0,o.useMemo)((()=>Object.assign({position:"relative",width:"100%",height:"100%"},e.style)),[e.style]);return(0,r.jsx)("div",{id:e.id,ref:l,style:p,children:i&&(0,r.jsx)(L.Provider,{value:u,children:(0,r.jsx)("div",{"mapboxgl-children":"",style:{height:"100%"},children:e.children})})})}const w=o.forwardRef(C);var E=n(961);const M=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function P(e,t){if(!e||!t)return;const n=e.style;for(const o in t){const e=t[o];Number.isFinite(e)&&!M.test(o)?n[o]=e+"px":n[o]=e}}const T=(0,o.memo)((0,o.forwardRef)(((e,t)=>{const{map:n,mapLib:r}=(0,o.useContext)(L),s=(0,o.useRef)({props:e});s.current.props=e;const a=(0,o.useMemo)((()=>{let t=!1;o.Children.forEach(e.children,(e=>{e&&(t=!0)}));const n=Object.assign({},e,{element:t?document.createElement("div"):null}),i=new r.Marker(n);return i.setLngLat([e.longitude,e.latitude]),i.getElement().addEventListener("click",(e=>{null==s.current.props.onClick||s.current.props.onClick({type:"click",target:i,originalEvent:e})})),i.on("dragstart",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDragStart||s.current.props.onDragStart(t)})),i.on("drag",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDrag||s.current.props.onDrag(t)})),i.on("dragend",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDragEnd||s.current.props.onDragEnd(t)})),i}),[]);(0,o.useEffect)((()=>(a.addTo(n.getMap()),()=>{a.remove()})),[]);const{longitude:i,latitude:c,offset:l,style:u,draggable:p=!1,popup:d=null,rotation:f=0,rotationAlignment:m="auto",pitchAlignment:h="auto"}=e;return(0,o.useEffect)((()=>{P(a.getElement(),u)}),[u]),(0,o.useImperativeHandle)(t,(()=>a),[]),a.getLngLat().lng===i&&a.getLngLat().lat===c||a.setLngLat([i,c]),l&&!function(e,t){const n=Array.isArray(e)?e[0]:e?e.x:0,o=Array.isArray(e)?e[1]:e?e.y:0,r=Array.isArray(t)?t[0]:t?t.x:0,s=Array.isArray(t)?t[1]:t?t.y:0;return n===r&&o===s}(a.getOffset(),l)&&a.setOffset(l),a.isDraggable()!==p&&a.setDraggable(p),a.getRotation()!==f&&a.setRotation(f),a.getRotationAlignment()!==m&&a.setRotationAlignment(m),a.getPitchAlignment()!==h&&a.setPitchAlignment(h),a.getPopup()!==d&&a.setPopup(d),(0,E.createPortal)(e.children,a.getElement())})));function N(e){return new Set(e?e.trim().split(/\s+/):[])}const R=(0,o.memo)((0,o.forwardRef)(((e,t)=>{const{map:n,mapLib:r}=(0,o.useContext)(L),s=(0,o.useMemo)((()=>document.createElement("div")),[]),i=(0,o.useRef)({props:e});i.current.props=e;const c=(0,o.useMemo)((()=>{const t=Object.assign({},e),n=new r.Popup(t);return n.setLngLat([e.longitude,e.latitude]),n.once("open",(e=>{null==i.current.props.onOpen||i.current.props.onOpen(e)})),n}),[]);if((0,o.useEffect)((()=>{const e=e=>{null==i.current.props.onClose||i.current.props.onClose(e)};return c.on("close",e),c.setDOMContent(s).addTo(n.getMap()),()=>{c.off("close",e),c.isOpen()&&c.remove()}}),[]),(0,o.useEffect)((()=>{P(c.getElement(),e.style)}),[e.style]),(0,o.useImperativeHandle)(t,(()=>c),[]),c.isOpen()&&(c.getLngLat().lng===e.longitude&&c.getLngLat().lat===e.latitude||c.setLngLat([e.longitude,e.latitude]),e.offset&&!a(c.options.offset,e.offset)&&c.setOffset(e.offset),c.options.anchor===e.anchor&&c.options.maxWidth===e.maxWidth||(c.options.anchor=e.anchor,c.setMaxWidth(e.maxWidth)),c.options.className!==e.className)){const t=N(c.options.className),n=N(e.className);for(const e of t)n.has(e)||c.removeClassName(e);for(const e of n)t.has(e)||c.addClassName(e);c.options.className=e.className}return(0,E.createPortal)(e.children,s)})));function O(e,t,n,r){const s=(0,o.useContext)(L),a=(0,o.useMemo)((()=>e(s)),[]);return(0,o.useEffect)((()=>{const e=r||n||t,o="function"==typeof t&&"function"==typeof n?t:null,i="function"==typeof n?n:"function"==typeof t?t:null,{map:c}=s;return c.hasControl(a)||(c.addControl(a,null==e?void 0:e.position),o&&o(s)),()=>{i&&i(s),c.hasControl(a)&&c.removeControl(a)}}),[]),a}function k(e){const t=O((t=>{let{mapLib:n}=t;return new n.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)})}),{position:e.position});return(0,o.useEffect)((()=>{P(t._controlContainer,e.style)}),[e.style]),null}const z=(0,o.memo)(k);function A(e,t){const n=(0,o.useRef)({props:e}),r=O((t=>{let{mapLib:o}=t;const r=new o.GeolocateControl(e),s=r._setupUI.bind(r);return r._setupUI=e=>{r._container.hasChildNodes()||s(e)},r.on("geolocate",(e=>{null==n.current.props.onGeolocate||n.current.props.onGeolocate(e)})),r.on("error",(e=>{null==n.current.props.onError||n.current.props.onError(e)})),r.on("outofmaxbounds",(e=>{null==n.current.props.onOutOfMaxBounds||n.current.props.onOutOfMaxBounds(e)})),r.on("trackuserlocationstart",(e=>{null==n.current.props.onTrackUserLocationStart||n.current.props.onTrackUserLocationStart(e)})),r.on("trackuserlocationend",(e=>{null==n.current.props.onTrackUserLocationEnd||n.current.props.onTrackUserLocationEnd(e)})),r}),{position:e.position});return n.current.props=e,(0,o.useImperativeHandle)(t,(()=>r),[]),(0,o.useEffect)((()=>{P(r._container,e.style)}),[e.style]),null}const I=(0,o.memo)((0,o.forwardRef)(A));function F(e){const t=O((t=>{let{mapLib:n}=t;return new n.NavigationControl(e)}),{position:e.position});return(0,o.useEffect)((()=>{P(t._container,e.style)}),[e.style]),null}const D=(0,o.memo)(F);function U(e){const t=O((t=>{let{mapLib:n}=t;return new n.ScaleControl(e)}),{position:e.position}),n=(0,o.useRef)(e),r=n.current;n.current=e;const{style:s}=e;return void 0!==e.maxWidth&&e.maxWidth!==r.maxWidth&&(t.options.maxWidth=e.maxWidth),void 0!==e.unit&&e.unit!==r.unit&&t.setUnit(e.unit),(0,o.useEffect)((()=>{P(t._container,s)}),[s]),null}const Z=(0,o.memo)(U);function W(e,t){if(!e)throw new Error(t)}let B=0;function H(e){const t=(0,o.useContext)(L).map.getMap(),n=(0,o.useRef)(e),[,r]=(0,o.useState)(0),s=(0,o.useMemo)((()=>e.id||"jsx-source-"+B++),[]);(0,o.useEffect)((()=>{if(t){const e=()=>setTimeout((()=>r((e=>e+1))),0);return t.on("styledata",e),e(),()=>{if(t.off("styledata",e),t.style&&t.style._loaded&&t.getSource(s)){var n;const e=null==(n=t.getStyle())?void 0:n.layers;if(e)for(const n of e)n.source===s&&t.removeLayer(n.id);t.removeSource(s)}}}}),[t]);let i=t&&t.style&&t.getSource(s);return i?function(e,t,n){W(t.id===n.id,"source id changed"),W(t.type===n.type,"source type changed");let o="",r=0;for(const i in t)"children"===i||"id"===i||a(n[i],t[i])||(o=i,r++);if(!r)return;const s=t.type;"geojson"===s?e.setData(t.data):"image"===s?e.updateImage({url:t.url,coordinates:t.coordinates}):"setCoordinates"in e&&1===r&&"coordinates"===o?e.setCoordinates(t.coordinates):"setUrl"in e&&"url"===o?e.setUrl(t.url):"setTiles"in e&&"tiles"===o?e.setTiles(t.tiles):console.warn("Unable to update prop: "+o)}(i,e,n.current):i=function(e,t,n){if(e.style&&e.style._loaded){const o=Object.assign({},n);return delete o.id,delete o.children,e.addSource(t,o),e.getSource(t)}return null}(t,s,e),n.current=e,i&&o.Children.map(e.children,(e=>e&&(0,o.cloneElement)(e,{source:s})))||null}let q=0;function G(e){const t=(0,o.useContext)(L).map.getMap(),n=(0,o.useRef)(e),[,r]=(0,o.useState)(0),s=(0,o.useMemo)((()=>e.id||"jsx-layer-"+q++),[]);(0,o.useEffect)((()=>{if(t){const e=()=>r((e=>e+1));return t.on("styledata",e),e(),()=>{t.off("styledata",e),t.style&&t.style._loaded&&t.getLayer(s)&&t.removeLayer(s)}}}),[t]);if(t&&t.style&&t.getLayer(s))try{!function(e,t,n,o){if(W(n.id===o.id,"layer id changed"),W(n.type===o.type,"layer type changed"),"custom"===n.type||"custom"===o.type)return;const{layout:r={},paint:s={},filter:i,minzoom:c,maxzoom:l,beforeId:u}=n;if(u!==o.beforeId&&e.moveLayer(t,u),r!==o.layout){const n=o.layout||{};for(const o in r)a(r[o],n[o])||e.setLayoutProperty(t,o,r[o]);for(const o in n)r.hasOwnProperty(o)||e.setLayoutProperty(t,o,void 0)}if(s!==o.paint){const n=o.paint||{};for(const o in s)a(s[o],n[o])||e.setPaintProperty(t,o,s[o]);for(const o in n)s.hasOwnProperty(o)||e.setPaintProperty(t,o,void 0)}a(i,o.filter)||e.setFilter(t,i),c===o.minzoom&&l===o.maxzoom||e.setLayerZoomRange(t,c,l)}(t,s,e,n.current)}catch(i){console.warn(i)}else!function(e,t,n){if(e.style&&e.style._loaded&&(!("source"in n)||e.getSource(n.source))){const o=Object.assign({},n,{id:t});delete o.beforeId,e.addLayer(o,n.beforeId)}}(t,s,e);return n.current=e,null}},8453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>i});var o=n(6540);const r={},s=o.createContext(r);function a(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),o.createElement(s.Provider,{value:t},e.children)}},6561:(e,t,n)=>{function o(e,t,n){e=+e,t=+t,n=(r=arguments.length)<2?(t=e,e=0,1):r<3?1:+n;for(var o=-1,r=0|Math.max(0,Math.ceil((t-e)/n)),s=new Array(r);++oo})},7982:(e,t,n)=>{function o(e){return null===e?NaN:+e}function r(e,t,n=o){if((r=e.length)&&!isNaN(t=+t)){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,s=(r-1)*t,a=Math.floor(s),i=+n(e[a],a,e);return i+(+n(e[a+1],a+1,e)-i)*(s-a)}}function s(e,t){return null==e||null==t?NaN:et?1:e>=t?0:NaN}function a(e,t){return null==e||null==t?NaN:te?1:t>=e?0:NaN}function i(e){let t,n,o;function r(e,o,r=0,s=e.length){if(r>>1;n(e[t],o)<0?r=t+1:s=t}while(rs(e(t),n),o=(t,n)=>e(t)-n):(t=e===s||e===a?e:c,n=e,o=e),{left:r,center:function(e,t,n=0,s=e.length){const a=r(e,t,n,s-1);return a>n&&o(e[a-1],t)>-o(e[a],t)?a-1:a},right:function(e,o,r=0,s=e.length){if(r>>1;n(e[t],o)<=0?r=t+1:s=t}while(rf});const l=i(s),u=l.right,p=(l.left,i(o).center,u);function d(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}function f(){var e,t=[],n=[],o=[];function a(){var e=0,s=Math.max(1,n.length);for(o=new Array(s-1);++e0?o[r-1]:t[0],r{a.d(t,{Zo:()=>m,kt:()=>k});var l=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,l)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=l.createContext({}),s=function(e){var t=l.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=s(e.components);return l.createElement(p.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},u=l.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,p=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),c=s(a),u=n,k=c["".concat(p,".").concat(u)]||c[u]||d[u]||r;return a?l.createElement(k,i(i({ref:t},m),{},{components:a})):l.createElement(k,i({ref:t},m))}));function k(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,i=new Array(r);i[0]=u;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[c]="string"==typeof e?e:n,i[1]=o;for(var s=2;s{a.r(t),a.d(t,{assets:()=>m,contentTitle:()=>p,default:()=>k,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var l=a(7462),n=a(3366),r=(a(7294),a(3905)),i=["components"],o={},p="Types",s={unversionedId:"api-reference/types",id:"api-reference/types",title:"Types",description:"The following types can be imported from react-map-gl when using TypeScript.",source:"@site/../docs/api-reference/types.md",sourceDirName:"api-reference",slug:"/api-reference/types",permalink:"/react-map-gl/docs/api-reference/types",draft:!1,editUrl:"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/types.md",tags:[],version:"current",frontMatter:{},sidebar:"docsSidebar",previous:{title:"useMap",permalink:"/react-map-gl/docs/api-reference/use-map"}},m={},c=[{value:"Components",id:"components",level:2},{value:"IControl",id:"icontrol",level:4},{value:"CustomLayerInterface",id:"customlayerinterface",level:4},{value:"MapRef",id:"mapref",level:4},{value:"Styling",id:"styling",level:2},{value:"MapStyle",id:"mapstyle",level:4},{value:"Fog",id:"fog",level:4},{value:"Light",id:"light",level:4},{value:"Terrain",id:"terrain",level:4},{value:"Projection",id:"projection",level:4},{value:"BackgroundLayer",id:"backgroundlayer",level:4},{value:"CircleLayer",id:"circlelayer",level:4},{value:"FillExtrusionLayer",id:"fillextrusionlayer",level:4},{value:"FillLayer",id:"filllayer",level:4},{value:"HeatmapLayer",id:"heatmaplayer",level:4},{value:"HillshadeLayer",id:"hillshadelayer",level:4},{value:"LineLayer",id:"linelayer",level:4},{value:"RasterLayer",id:"rasterlayer",level:4},{value:"SymbolLayer",id:"symbollayer",level:4},{value:"SkyLayer",id:"skylayer",level:4},{value:"GeoJSONSourceRaw",id:"geojsonsourceraw",level:4},{value:"VideoSourceRaw",id:"videosourceraw",level:4},{value:"ImageSourceRaw",id:"imagesourceraw",level:4},{value:"VectorSourceRaw",id:"vectorsourceraw",level:4},{value:"RasterSource",id:"rastersource",level:4},{value:"RasterDemSource",id:"rasterdemsource",level:4},{value:"CanvasSourceRaw",id:"canvassourceraw",level:4},{value:"Configurations",id:"configurations",level:2},{value:"ControlPosition",id:"controlposition",level:4},{value:"PaddingOptions",id:"paddingoptions",level:4},{value:"Data Types",id:"data-types",level:2},{value:"LngLat",id:"lnglat",level:4},{value:"LngLatLike",id:"lnglatlike",level:4},{value:"LngLatBounds",id:"lnglatbounds",level:4},{value:"LngLatBoundsLike",id:"lnglatboundslike",level:4},{value:"Point",id:"point",level:4},{value:"PointLike",id:"pointlike",level:4},{value:"MapGeoJSONFeature",id:"mapgeojsonfeature",level:4},{value:"ViewState",id:"viewstate",level:4},{value:"Sources",id:"sources",level:2},{value:"GeoJSONSource",id:"geojsonsource",level:4},{value:"VideoSource",id:"videosource",level:4},{value:"ImageSource",id:"imagesource",level:4},{value:"CanvasSource",id:"canvassource",level:4},{value:"VectorTileSource",id:"vectortilesource",level:4},{value:"Events",id:"events",level:2},{value:"MapEvent",id:"mapevent",level:4},{value:"MapLayerMouseEvent",id:"maplayermouseevent",level:4},{value:"MapWheelEvent",id:"mapwheelevent",level:4},{value:"MapLayerTouchEvent",id:"maplayertouchevent",level:4},{value:"ViewStateChangeEvent",id:"viewstatechangeevent",level:4},{value:"MapBoxZoomEvent",id:"mapboxzoomevent",level:4},{value:"MapStyleDataEvent",id:"mapstyledataevent",level:4},{value:"MapSourceDataEvent",id:"mapsourcedataevent",level:4},{value:"ErrorEvent",id:"errorevent",level:4},{value:"GeolocateEvent",id:"geolocateevent",level:4},{value:"GeolocateResultEvent",id:"geolocateresultevent",level:4},{value:"GeolocateErrorEvent",id:"geolocateerrorevent",level:4},{value:"MarkerEvent",id:"markerevent",level:4},{value:"MarkerDragEvent",id:"markerdragevent",level:4},{value:"PopupEvent",id:"popupevent",level:4}],d={toc:c},u="wrapper";function k(e){var t=e.components,a=(0,n.Z)(e,i);return(0,r.kt)(u,(0,l.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"types"},"Types"),(0,r.kt)("p",null,"The following types can be imported from ",(0,r.kt)("inlineCode",{parentName:"p"},"react-map-gl")," when using TypeScript."),(0,r.kt)("h2",{id:"components"},"Components"),(0,r.kt)("h4",{id:"icontrol"},"IControl"),(0,r.kt)("p",null,"A ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/api/markers/#icontrol"},"custom control implementation"),"."),(0,r.kt)("h4",{id:"customlayerinterface"},"CustomLayerInterface"),(0,r.kt)("p",null,"A ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/api/#customlayerinterface"},"custom layer implementation"),"."),(0,r.kt)("h4",{id:"mapref"},"MapRef"),(0,r.kt)("p",null,"Instance ",(0,r.kt)("a",{parentName:"p",href:"https://reactjs.org/docs/refs-and-the-dom.html#creating-refs"},"ref")," of a ",(0,r.kt)("inlineCode",{parentName:"p"},"Map")," component. See ",(0,r.kt)("a",{parentName:"p",href:"/react-map-gl/docs/api-reference/map#methods"},"Map documentation")," for details."),(0,r.kt)("h2",{id:"styling"},"Styling"),(0,r.kt)("h4",{id:"mapstyle"},"MapStyle"),(0,r.kt)("p",null,"An object conforming to the ",(0,r.kt)("a",{parentName:"p",href:"https://mapbox.com/mapbox-gl-style-spec/"},"Mapbox Style Specification"),"."),(0,r.kt)("h4",{id:"fog"},"Fog"),(0,r.kt)("p",null,"An object conforming to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/fog/"},"Fog Style Specification"),"."),(0,r.kt)("h4",{id:"light"},"Light"),(0,r.kt)("p",null,"An object conforming to the ",(0,r.kt)("a",{parentName:"p",href:"https://www.mapbox.com/mapbox-gl-style-spec/#light"},"Light Style Specification"),"."),(0,r.kt)("h4",{id:"terrain"},"Terrain"),(0,r.kt)("p",null,"An object conforming to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/terrain/"},"Terrain Style Specification"),"."),(0,r.kt)("h4",{id:"projection"},"Projection"),(0,r.kt)("p",null,"An object conforming to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/projection/"},"Projection Style Specification"),"."),(0,r.kt)("h4",{id:"backgroundlayer"},"BackgroundLayer"),(0,r.kt)("p",null,"A JSON object that defines a ",(0,r.kt)("inlineCode",{parentName:"p"},"background")," layer according to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/layers/#background"},"Mapbox Style Specification"),"."),(0,r.kt)("h4",{id:"circlelayer"},"CircleLayer"),(0,r.kt)("p",null,"A JSON object that defines a ",(0,r.kt)("inlineCode",{parentName:"p"},"circle")," layer according to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/layers/#circle"},"Mapbox Style Specification"),"."),(0,r.kt)("h4",{id:"fillextrusionlayer"},"FillExtrusionLayer"),(0,r.kt)("p",null,"A JSON object that defines a ",(0,r.kt)("inlineCode",{parentName:"p"},"fill-extrusion")," layer according to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/layers/#fill-extrusion"},"Mapbox Style Specification"),"."),(0,r.kt)("h4",{id:"filllayer"},"FillLayer"),(0,r.kt)("p",null,"A JSON object that defines a ",(0,r.kt)("inlineCode",{parentName:"p"},"fill")," layer according to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/layers/#fill"},"Mapbox Style Specification"),"."),(0,r.kt)("h4",{id:"heatmaplayer"},"HeatmapLayer"),(0,r.kt)("p",null,"A JSON object that defines a ",(0,r.kt)("inlineCode",{parentName:"p"},"heatmap")," layer according to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/layers/#heatmap"},"Mapbox Style Specification"),"."),(0,r.kt)("h4",{id:"hillshadelayer"},"HillshadeLayer"),(0,r.kt)("p",null,"A JSON object that defines a ",(0,r.kt)("inlineCode",{parentName:"p"},"hillshade")," layer according to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/layers/#hillshade"},"Mapbox Style Specification"),"."),(0,r.kt)("h4",{id:"linelayer"},"LineLayer"),(0,r.kt)("p",null,"A JSON object that defines a ",(0,r.kt)("inlineCode",{parentName:"p"},"line")," layer according to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/layers/#line"},"Mapbox Style Specification"),"."),(0,r.kt)("h4",{id:"rasterlayer"},"RasterLayer"),(0,r.kt)("p",null,"A JSON object that defines a ",(0,r.kt)("inlineCode",{parentName:"p"},"raster")," layer according to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/layers/#raster"},"Mapbox Style Specification"),"."),(0,r.kt)("h4",{id:"symbollayer"},"SymbolLayer"),(0,r.kt)("p",null,"A JSON object that defines a ",(0,r.kt)("inlineCode",{parentName:"p"},"symbol")," layer according to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/layers/#symbol"},"Mapbox Style Specification"),"."),(0,r.kt)("h4",{id:"skylayer"},"SkyLayer"),(0,r.kt)("p",null,"A JSON object that defines a ",(0,r.kt)("inlineCode",{parentName:"p"},"sky")," layer according to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/layers/#sky"},"Mapbox Style Specification"),"."),(0,r.kt)("h4",{id:"geojsonsourceraw"},"GeoJSONSourceRaw"),(0,r.kt)("p",null,"A JSON object that defines a ",(0,r.kt)("inlineCode",{parentName:"p"},"geojson")," source according to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/sources/#geojson"},"Mapbox Style Specification"),"."),(0,r.kt)("h4",{id:"videosourceraw"},"VideoSourceRaw"),(0,r.kt)("p",null,"A JSON object that defines a ",(0,r.kt)("inlineCode",{parentName:"p"},"video")," source according to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/sources/#video"},"Mapbox Style Specification"),"."),(0,r.kt)("h4",{id:"imagesourceraw"},"ImageSourceRaw"),(0,r.kt)("p",null,"A JSON object that defines a ",(0,r.kt)("inlineCode",{parentName:"p"},"image")," source according to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/sources/#image"},"Mapbox Style Specification"),"."),(0,r.kt)("h4",{id:"vectorsourceraw"},"VectorSourceRaw"),(0,r.kt)("p",null,"A JSON object that defines a ",(0,r.kt)("inlineCode",{parentName:"p"},"vector")," source according to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/sources/#vector"},"Mapbox Style Specification"),"."),(0,r.kt)("h4",{id:"rastersource"},"RasterSource"),(0,r.kt)("p",null,"A JSON object that defines a ",(0,r.kt)("inlineCode",{parentName:"p"},"raster")," source according to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/sources/#raster"},"Mapbox Style Specification"),"."),(0,r.kt)("h4",{id:"rasterdemsource"},"RasterDemSource"),(0,r.kt)("p",null,"A JSON object that defines a ",(0,r.kt)("inlineCode",{parentName:"p"},"raster-dem")," source according to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/sources/#raster-dem"},"Mapbox Style Specification"),"."),(0,r.kt)("h4",{id:"canvassourceraw"},"CanvasSourceRaw"),(0,r.kt)("p",null,"A JSON object that defines a ",(0,r.kt)("inlineCode",{parentName:"p"},"canvas")," source type. See ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/api/sources/#canvassourceoptions"},"CanvasSourceOptions"),"."),(0,r.kt)("h2",{id:"configurations"},"Configurations"),(0,r.kt)("h4",{id:"controlposition"},"ControlPosition"),(0,r.kt)("p",null,"One of ",(0,r.kt)("inlineCode",{parentName:"p"},"'top-right'"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"'top-left'"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"'bottom-right'")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"'bottom-left'"),"."),(0,r.kt)("h4",{id:"paddingoptions"},"PaddingOptions"),(0,r.kt)("p",null,"An object with the following fields:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"left"),": number - in pixels."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"top"),": number - in pixels."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"right"),": number - in pixels."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"bottom"),": number - in pixels.")),(0,r.kt)("h2",{id:"data-types"},"Data Types"),(0,r.kt)("h4",{id:"lnglat"},"LngLat"),(0,r.kt)("p",null,"A ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/api/geography/#lnglat"},"mapboxgl.LngLat")," object."),(0,r.kt)("h4",{id:"lnglatlike"},"LngLatLike"),(0,r.kt)("p",null,"A ",(0,r.kt)("a",{parentName:"p",href:"#lnglat"},"LngLat")," object, an array of two numbers representing longitude and latitude, or an object with ",(0,r.kt)("inlineCode",{parentName:"p"},"lng")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"lat")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"lon")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"lat")," properties."),(0,r.kt)("h4",{id:"lnglatbounds"},"LngLatBounds"),(0,r.kt)("p",null,"A ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/api/geography/#lnglatbounds"},"mapboxgl.LngLatBounds")," object."),(0,r.kt)("h4",{id:"lnglatboundslike"},"LngLatBoundsLike"),(0,r.kt)("p",null,"A ",(0,r.kt)("a",{parentName:"p",href:"#lnglatbounds"},"LngLatBounds")," object, an array of ",(0,r.kt)("a",{parentName:"p",href:"#lnglatlike"},"LngLatLike")," objects in ","[sw, ne]"," order, or an array of numbers in ","[west, south, east, north]"," order."),(0,r.kt)("h4",{id:"point"},"Point"),(0,r.kt)("p",null,"A ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/mapbox/point-geometry"},"mapboxgl.Point")," object."),(0,r.kt)("h4",{id:"pointlike"},"PointLike"),(0,r.kt)("p",null,"A ",(0,r.kt)("a",{parentName:"p",href:"#point"},"Point")," or an array of two numbers representing x and y screen coordinates in pixels."),(0,r.kt)("h4",{id:"mapgeojsonfeature"},"MapGeoJSONFeature"),(0,r.kt)("p",null,"A ",(0,r.kt)("a",{parentName:"p",href:"http://geojson.org/"},"GeoJSON")," feature that also contains the following library-specific fields:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"layer"),": Layer"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"source"),": string"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"sourceLayer"),": string"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"state"),": { ","[key: string]",": any }")),(0,r.kt)("h4",{id:"viewstate"},"ViewState"),(0,r.kt)("p",null,"An object with the following fields:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"longitude"),": number - The longitude of the map center."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"latitude"),": number - The latitude of the map center."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"zoom"),": number - The zoom level."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"pitch"),": number - The pitch (tilt) of the map, in degrees."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"bearing"),": number - The bearing (rotation) of the map, in degrees.")),(0,r.kt)("h2",{id:"sources"},"Sources"),(0,r.kt)("p",null,"The following are implementations of source types that could be retrieved with ",(0,r.kt)("inlineCode",{parentName:"p"},"Map.getSource")," (",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/api/map/#map#getsource"},"Mapbox")," | ",(0,r.kt)("a",{parentName:"p",href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/maplibregl.Map/#getsource"},"Maplibre"),")."),(0,r.kt)("h4",{id:"geojsonsource"},"GeoJSONSource"),(0,r.kt)("p",null,"A source containing GeoJSON. See ",(0,r.kt)("inlineCode",{parentName:"p"},"GeoJSONSource")," (",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/api/sources/#geojsonsource"},"Mapbox")," | ",(0,r.kt)("a",{parentName:"p",href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/maplibregl.GeoJSONSource/"},"Maplibre"),")."),(0,r.kt)("h4",{id:"videosource"},"VideoSource"),(0,r.kt)("p",null,"A source containing video. See ",(0,r.kt)("inlineCode",{parentName:"p"},"VideoSource")," (",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/api/sources/#videosource"},"Mapbox")," | ",(0,r.kt)("a",{parentName:"p",href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/maplibregl.VideoSource/"},"Maplibre"),")."),(0,r.kt)("h4",{id:"imagesource"},"ImageSource"),(0,r.kt)("p",null,"A source containing image. See ",(0,r.kt)("inlineCode",{parentName:"p"},"ImageSource")," (",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/api/sources/#imagesource"},"Mapbox")," | ",(0,r.kt)("a",{parentName:"p",href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/maplibregl.ImageSource/"},"Maplibre"),")."),(0,r.kt)("h4",{id:"canvassource"},"CanvasSource"),(0,r.kt)("p",null,"A source containing the contents of an HTML canvas. See ",(0,r.kt)("inlineCode",{parentName:"p"},"CanvasSource"),"(",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/api/sources/#canvassource"},"Mapbox")," | ",(0,r.kt)("a",{parentName:"p",href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/maplibregl.CanvasSource/"},"Maplibre"),")."),(0,r.kt)("h4",{id:"vectortilesource"},"VectorTileSource"),(0,r.kt)("p",null,"A source containing vector tiles in ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/vector-tiles/reference/"},"Mapbox Vector Tile format"),". See ",(0,r.kt)("inlineCode",{parentName:"p"},"VectorTileSource")," (",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/api/sources/#vectortilesource"},"Mapbox")," | ",(0,r.kt)("a",{parentName:"p",href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/maplibregl.VectorTileSource/"},"Maplibre"),")."),(0,r.kt)("h2",{id:"events"},"Events"),(0,r.kt)("h4",{id:"mapevent"},"MapEvent"),(0,r.kt)("p",null,"An object with the following fields:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type"),": string - Event type"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"target"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"Map")," (",(0,r.kt)("a",{parentName:"li",href:"https://docs.mapbox.com/mapbox-gl-js/api/map/"},"Mapbox")," | ",(0,r.kt)("a",{parentName:"li",href:"https://maplibre.org/maplibre-gl-js-docs/api/map/"},"Maplibre"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"originalEvent?"),": ",(0,r.kt)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/Event"},"Event"))),(0,r.kt)("h4",{id:"maplayermouseevent"},"MapLayerMouseEvent"),(0,r.kt)("p",null,"An object with the following fields:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type"),": string"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"target"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"Map")," (",(0,r.kt)("a",{parentName:"li",href:"https://docs.mapbox.com/mapbox-gl-js/api/map/"},"Mapbox")," | ",(0,r.kt)("a",{parentName:"li",href:"https://maplibre.org/maplibre-gl-js-docs/api/map/"},"Maplibre"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"originalEvent?"),": ",(0,r.kt)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent"},"MouseEvent")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"point"),": ",(0,r.kt)("a",{parentName:"li",href:"#point"},"Point")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"lngLat"),": ",(0,r.kt)("a",{parentName:"li",href:"#lnglat"},"LngLat")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"preventDefault"),": () => void"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"defaultPrevented"),": boolean"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"features?"),": ",(0,r.kt)("a",{parentName:"li",href:"#mapgeojsonfeature"},"MapGeoJSONFeature"),"[]")),(0,r.kt)("h4",{id:"mapwheelevent"},"MapWheelEvent"),(0,r.kt)("p",null,"An object with the following fields:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type"),": string"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"target"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"Map")," (",(0,r.kt)("a",{parentName:"li",href:"https://docs.mapbox.com/mapbox-gl-js/api/map/"},"Mapbox")," | ",(0,r.kt)("a",{parentName:"li",href:"https://maplibre.org/maplibre-gl-js-docs/api/map/"},"Maplibre"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"originalEvent?"),": ",(0,r.kt)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent"},"WheelEvent")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"preventDefault"),": () => void"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"defaultPrevented"),": boolean")),(0,r.kt)("h4",{id:"maplayertouchevent"},"MapLayerTouchEvent"),(0,r.kt)("p",null,"An object with the following fields:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type"),": string"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"target"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"Map")," (",(0,r.kt)("a",{parentName:"li",href:"https://docs.mapbox.com/mapbox-gl-js/api/map/"},"Mapbox")," | ",(0,r.kt)("a",{parentName:"li",href:"https://maplibre.org/maplibre-gl-js-docs/api/map/"},"Maplibre"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"originalEvent?"),": ",(0,r.kt)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent"},"TouchEvent")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"point"),": ",(0,r.kt)("a",{parentName:"li",href:"#point"},"Point")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"lngLat"),": ",(0,r.kt)("a",{parentName:"li",href:"#lnglat"},"LngLat")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"points"),": ",(0,r.kt)("a",{parentName:"li",href:"#point"},"Point"),"[]"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"lngLats"),": ",(0,r.kt)("a",{parentName:"li",href:"#lnglat"},"LngLat"),"[]"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"preventDefault"),": () => void"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"defaultPrevented"),": boolean"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"features?"),": ",(0,r.kt)("a",{parentName:"li",href:"#mapgeojsonfeature"},"MapGeoJSONFeature"),"[]")),(0,r.kt)("h4",{id:"viewstatechangeevent"},"ViewStateChangeEvent"),(0,r.kt)("p",null,"An object with the following fields:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type"),": string - Event type"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"target"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"Map")," (",(0,r.kt)("a",{parentName:"li",href:"https://docs.mapbox.com/mapbox-gl-js/api/map/"},"Mapbox")," | ",(0,r.kt)("a",{parentName:"li",href:"https://maplibre.org/maplibre-gl-js-docs/api/map/"},"Maplibre"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"viewState"),": ",(0,r.kt)("a",{parentName:"li",href:"#viewstate"},"ViewState")," - the next view state that the camera wants to change to based on user input or transition.")),(0,r.kt)("h4",{id:"mapboxzoomevent"},"MapBoxZoomEvent"),(0,r.kt)("p",null,"An object with the following fields:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type"),": string"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"target"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"Map")," (",(0,r.kt)("a",{parentName:"li",href:"https://docs.mapbox.com/mapbox-gl-js/api/map/"},"Mapbox")," | ",(0,r.kt)("a",{parentName:"li",href:"https://maplibre.org/maplibre-gl-js-docs/api/map/"},"Maplibre"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"originalEvent?"),": ",(0,r.kt)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent"},"MouseEvent")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"boxZoomBounds"),": ",(0,r.kt)("a",{parentName:"li",href:"#lnglatbounds"},"LngLatBounds"))),(0,r.kt)("h4",{id:"mapstyledataevent"},"MapStyleDataEvent"),(0,r.kt)("p",null,"An object with the following fields:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type"),": string"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"target"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"Map")," (",(0,r.kt)("a",{parentName:"li",href:"https://docs.mapbox.com/mapbox-gl-js/api/map/"},"Mapbox")," | ",(0,r.kt)("a",{parentName:"li",href:"https://maplibre.org/maplibre-gl-js-docs/api/map/"},"Maplibre"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"dataType"),": 'style'")),(0,r.kt)("h4",{id:"mapsourcedataevent"},"MapSourceDataEvent"),(0,r.kt)("p",null,"An object with the following fields:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type"),": string"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"target"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"Map")," (",(0,r.kt)("a",{parentName:"li",href:"https://docs.mapbox.com/mapbox-gl-js/api/map/"},"Mapbox")," | ",(0,r.kt)("a",{parentName:"li",href:"https://maplibre.org/maplibre-gl-js-docs/api/map/"},"Maplibre"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"dataType"),": 'source'"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"isSourceLoaded"),": boolean"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"source"),": string"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"sourceId"),": string"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"sourceDataType"),": 'metadata' | 'content'"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"tile"),": any"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"coord"),": Coordinate")),(0,r.kt)("p",null,"See ",(0,r.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/api/events/#mapdataevent"},"MapDataEvent"),"."),(0,r.kt)("h4",{id:"errorevent"},"ErrorEvent"),(0,r.kt)("p",null,"An object with the following fields:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type"),": 'error'"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"target"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"Map")," (",(0,r.kt)("a",{parentName:"li",href:"https://docs.mapbox.com/mapbox-gl-js/api/map/"},"Mapbox")," | ",(0,r.kt)("a",{parentName:"li",href:"https://maplibre.org/maplibre-gl-js-docs/api/map/"},"Maplibre"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"error"),": ",(0,r.kt)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error"},"Error"))),(0,r.kt)("h4",{id:"geolocateevent"},"GeolocateEvent"),(0,r.kt)("p",null,"An object with the following fields:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type"),": string"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"target"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"Map")," (",(0,r.kt)("a",{parentName:"li",href:"https://docs.mapbox.com/mapbox-gl-js/api/map/"},"Mapbox")," | ",(0,r.kt)("a",{parentName:"li",href:"https://maplibre.org/maplibre-gl-js-docs/api/map/"},"Maplibre"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"target"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"GeolocateControl")," (",(0,r.kt)("a",{parentName:"li",href:"https://docs.mapbox.com/mapbox-gl-js/api/markers/#geolocatecontrol"},"Mapbox")," | ",(0,r.kt)("a",{parentName:"li",href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/maplibregl.GeolocateControl/"},"Maplibre"),")")),(0,r.kt)("h4",{id:"geolocateresultevent"},"GeolocateResultEvent"),(0,r.kt)("p",null,"An object with the following fields:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type"),": string"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"target"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"GeolocateControl")," (",(0,r.kt)("a",{parentName:"li",href:"https://docs.mapbox.com/mapbox-gl-js/api/markers/#geolocatecontrol"},"Mapbox")," | ",(0,r.kt)("a",{parentName:"li",href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/maplibregl.GeolocateControl/"},"Maplibre"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"coords"),": ",(0,r.kt)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/GeolocationCoordinates"},"GeolocationCoordinates")," - the current location."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"timestamp"),": number - the time at which the location was retrieved.")),(0,r.kt)("h4",{id:"geolocateerrorevent"},"GeolocateErrorEvent"),(0,r.kt)("p",null,"An object with the following fields:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type"),": string"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"target"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"GeolocateControl")," (",(0,r.kt)("a",{parentName:"li",href:"https://docs.mapbox.com/mapbox-gl-js/api/markers/#geolocatecontrol"},"Mapbox")," | ",(0,r.kt)("a",{parentName:"li",href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/maplibregl.GeolocateControl/"},"Maplibre"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"code"),": PERMISSION_DENIED | POSITION_UNAVAILABLE | TIMEOUT - see ",(0,r.kt)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/GeolocationPositionError"},"GeolocationPositionError")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"message"),": string - the details of the error. Specifications note that this is primarily intended for debugging use and not to be shown directly in a user interface.")),(0,r.kt)("h4",{id:"markerevent"},"MarkerEvent"),(0,r.kt)("p",null,"An object with the following fields:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type"),": string"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"target"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"Marker")," (",(0,r.kt)("a",{parentName:"li",href:"https://docs.mapbox.com/mapbox-gl-js/api/markers/#marker"},"Mapbox")," | ",(0,r.kt)("a",{parentName:"li",href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/maplibregl.Marker/"},"Maplibre"),")")),(0,r.kt)("h4",{id:"markerdragevent"},"MarkerDragEvent"),(0,r.kt)("p",null,"An object with the following fields:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type"),": string"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"target"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"Marker")," (",(0,r.kt)("a",{parentName:"li",href:"https://docs.mapbox.com/mapbox-gl-js/api/markers/#marker"},"Mapbox")," | ",(0,r.kt)("a",{parentName:"li",href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/maplibregl.Marker/"},"Maplibre"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"lngLat"),": ",(0,r.kt)("a",{parentName:"li",href:"#lnglat"},"LngLat")," - the new location of the marker")),(0,r.kt)("h4",{id:"popupevent"},"PopupEvent"),(0,r.kt)("p",null,"An object with the following fields:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type"),": string"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"target"),": ",(0,r.kt)("inlineCode",{parentName:"li"},"Popup")," (",(0,r.kt)("a",{parentName:"li",href:"https://docs.mapbox.com/mapbox-gl-js/api/markers/#popup"},"Mapbox")," | ",(0,r.kt)("a",{parentName:"li",href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/maplibregl.Popup/"},"Maplibre"),")")))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/046a68a4.37a1fce3.js b/assets/js/046a68a4.37a1fce3.js new file mode 100644 index 00000000..2fab3012 --- /dev/null +++ b/assets/js/046a68a4.37a1fce3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[6501],{3343:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>g,contentTitle:()=>h,default:()=>x,frontMatter:()=>f,metadata:()=>o,toc:()=>y});const o=JSON.parse('{"id":"mapbox/heatmap","title":"Heatmap","description":"","source":"@site/src/examples/mapbox/heatmap.mdx","sourceDirName":"mapbox","slug":"/mapbox/heatmap","permalink":"/react-map-gl/examples/mapbox/heatmap","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"GeoJSON","permalink":"/react-map-gl/examples/mapbox/geojson"},"next":{"title":"Limit Map Interaction","permalink":"/react-map-gl/examples/mapbox/interaction"}}');var r=n(4848),s=n(8453),a=n(6540),i=(n(5338),n(2198));function c(e){const t=new Date(e);return t.getMonth()+1+"/"+t.getDate()+"/"+t.getFullYear()}function l(e){const{startTime:t,endTime:n,onChangeTime:o,allDays:s,onChangeAllDays:a,selectedTime:i}=e,l=864e5,u=Math.round((n-t)/l),p=Math.round((i-t)/l);return(0,r.jsxs)("div",{className:"control-panel",children:[(0,r.jsx)("h3",{children:"Heatmap"}),(0,r.jsxs)("p",{children:["Map showing earthquakes",(0,r.jsx)("br",{}),"from ",(0,r.jsx)("b",{children:c(t)})," to ",(0,r.jsx)("b",{children:c(n)}),"."]}),(0,r.jsx)("hr",{}),(0,r.jsxs)("div",{className:"input",children:[(0,r.jsx)("label",{children:"All Days"}),(0,r.jsx)("input",{type:"checkbox",name:"allday",checked:s,onChange:e=>a(e.target.checked)})]}),(0,r.jsxs)("div",{className:"input "+(s?"disabled":""),children:[(0,r.jsxs)("label",{children:["Each Day: ",c(i)]}),(0,r.jsx)("input",{type:"range",disabled:s,min:1,max:u,value:p,step:1,onChange:e=>{const n=e.target.value;o(t+n*l)}})]}),(0,r.jsx)("hr",{}),(0,r.jsxs)("p",{children:["Data source:"," ",(0,r.jsx)("a",{href:"https://docs.mapbox.com/mapbox-gl-js/assets/earthquakes.geojson",children:"earthquakes.geojson"})]}),(0,r.jsx)("div",{className:"source-link",children:(0,r.jsx)("a",{href:"https://github.com/visgl/react-map-gl/tree/7.0-release/examples/heatmap",target:"_new",children:"View Code \u2197"})})]})}const u=a.memo(l),p={id:"heatmap",maxzoom:9,type:"heatmap",paint:{"heatmap-weight":["interpolate",["linear"],["get","mag"],0,0,6,1],"heatmap-intensity":["interpolate",["linear"],["zoom"],0,1,9,3],"heatmap-color":["interpolate",["linear"],["heatmap-density"],0,"rgba(33,102,172,0)",.2,"rgb(103,169,207)",.4,"rgb(209,229,240)",.6,"rgb(253,219,199)",.8,"rgb(239,138,98)",.9,"rgb(255,201,101)"],"heatmap-radius":["interpolate",["linear"],["zoom"],0,2,9,20],"heatmap-opacity":["interpolate",["linear"],["zoom"],7,1,9,0]}},d="";function m(){const[e,t]=(0,a.useState)(!0),[n,o]=(0,a.useState)([0,0]),[s,c]=(0,a.useState)(0),[l,m]=(0,a.useState)(null);(0,a.useEffect)((()=>{fetch("https://docs.mapbox.com/mapbox-gl-js/assets/earthquakes.geojson").then((e=>e.json())).then((e=>{const t=e.features,n=t[0].properties.time,r=t[t.length-1].properties.time;o([r,n]),m(e),c(n)})).catch((e=>console.error("Could not load data",e)))}),[]);const f=(0,a.useMemo)((()=>e?l:function(e,t){const n=new Date(t),o=n.getFullYear(),r=n.getMonth(),s=n.getDate();return{type:"FeatureCollection",features:e.features.filter((e=>{const t=new Date(e.properties.time);return t.getFullYear()===o&&t.getMonth()===r&&t.getDate()===s}))}}(l,s)),[l,e,s]);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.Ay,{initialViewState:{latitude:40,longitude:-100,zoom:3},mapStyle:"mapbox://styles/mapbox/dark-v9",mapboxAccessToken:d,children:f&&(0,r.jsx)(i.kL,{type:"geojson",data:f,children:(0,r.jsx)(i.Wd,Object.assign({},p))})}),(0,r.jsx)(u,{startTime:n[0],endTime:n[1],selectedTime:s,allDays:e,onChangeTime:c,onChangeAllDays:t})]})}const f={},h="Heatmap",g={},y=[];function v(e){const t={h1:"h1",header:"header",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"heatmap",children:"Heatmap"})}),"\n","\n",(0,r.jsx)(m,{})]})}function x(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(v,{...e})}):v(e)}},2198:(e,t,n)=>{n.d(t,{T3:()=>A,tG:()=>I,Wd:()=>V,T5:()=>E,pH:()=>P,ov:()=>N,zD:()=>k,g0:()=>Z,kL:()=>q,Ay:()=>E,VI:()=>z});var o=n(6540),r=n(4848);const s=o.createContext(null);function a(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n{let n=null;"interactive"in e&&(n=Object.assign({},e),delete n.interactive);const o=t[e.ref];if(o){n=n||Object.assign({},e),delete n.ref;for(const e of u)e in o&&(n[e]=o[e])}return n||e}));return Object.assign({},e,{layers:n})}const d={version:8,sources:{},layers:[]},m={mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",click:"onClick",dblclick:"onDblClick",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",mouseout:"onMouseOut",contextmenu:"onContextMenu",touchstart:"onTouchStart",touchend:"onTouchEnd",touchmove:"onTouchMove",touchcancel:"onTouchCancel"},f={movestart:"onMoveStart",move:"onMove",moveend:"onMoveEnd",dragstart:"onDragStart",drag:"onDrag",dragend:"onDragEnd",zoomstart:"onZoomStart",zoom:"onZoom",zoomend:"onZoomEnd",rotatestart:"onRotateStart",rotate:"onRotate",rotateend:"onRotateEnd",pitchstart:"onPitchStart",pitch:"onPitch",pitchend:"onPitchEnd"},h={wheel:"onWheel",boxzoomstart:"onBoxZoomStart",boxzoomend:"onBoxZoomEnd",boxzoomcancel:"onBoxZoomCancel",resize:"onResize",load:"onLoad",render:"onRender",idle:"onIdle",remove:"onRemove",data:"onData",styledata:"onStyleData",sourcedata:"onSourceData",error:"onError"},g=["minZoom","maxZoom","minPitch","maxPitch","maxBounds","projection","renderWorldCopies"],y=["scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate","touchPitch"];class v{constructor(e,t,n){this._map=null,this._internalUpdate=!1,this._inRender=!1,this._hoveredFeatures=null,this._deferredEvents={move:!1,zoom:!1,pitch:!1,rotate:!1},this._onEvent=e=>{const t=this.props[h[e.type]];t?t(e):"error"===e.type&&console.error(e.error)},this._onPointerEvent=e=>{"mousemove"!==e.type&&"mouseout"!==e.type||this._updateHover(e);const t=this.props[m[e.type]];t&&(this.props.interactiveLayerIds&&"mouseover"!==e.type&&"mouseout"!==e.type&&(e.features=this._hoveredFeatures||this._queryRenderedFeatures(e.point)),t(e),delete e.features)},this._onCameraEvent=e=>{if(!this._internalUpdate){const t=this.props[f[e.type]];t&&t(e)}e.type in this._deferredEvents&&(this._deferredEvents[e.type]=!1)},this._MapClass=e,this.props=t,this._initialize(n)}get map(){return this._map}get transform(){return this._renderTransform}setProps(e){const t=this.props;this.props=e;const n=this._updateSettings(e,t);n&&this._createShadowTransform(this._map);const o=this._updateSize(e),r=this._updateViewState(e,!0);this._updateStyle(e,t),this._updateStyleComponents(e,t),this._updateHandlers(e,t),(n||o||r&&!this._map.isMoving())&&this.redraw()}static reuse(e,t){const n=v.savedMaps.pop();if(!n)return null;const o=n.map,r=o.getContainer();for(t.className=r.className;r.childNodes.length>0;)t.appendChild(r.childNodes[0]);o._container=t,n.setProps(Object.assign({},e,{styleDiffing:!1})),o.resize();const{initialViewState:s}=e;return s&&(s.bounds?o.fitBounds(s.bounds,Object.assign({},s.fitBoundsOptions,{duration:0})):n._updateViewState(s,!1)),o.isStyleLoaded()?o.fire("load"):o.once("styledata",(()=>o.fire("load"))),o._update(),n}_initialize(e){const{props:t}=this,{mapStyle:n=d}=t,o=Object.assign({},t,t.initialViewState,{accessToken:t.mapboxAccessToken||x()||null,container:e,style:p(n)}),r=o.initialViewState||o.viewState||o;if(Object.assign(o,{center:[r.longitude||0,r.latitude||0],zoom:r.zoom||0,pitch:r.pitch||0,bearing:r.bearing||0}),t.gl){const e=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=e,t.gl)}const s=new this._MapClass(o);r.padding&&s.setPadding(r.padding),t.cursor&&(s.getCanvas().style.cursor=t.cursor),this._createShadowTransform(s);const a=s._render;s._render=e=>{this._inRender=!0,a.call(s,e),this._inRender=!1};const c=s._renderTaskQueue.run;s._renderTaskQueue.run=e=>{c.call(s._renderTaskQueue,e),this._onBeforeRepaint()},s.on("render",(()=>this._onAfterRepaint()));const l=s.fire;s.fire=this._fireEvent.bind(this,l),s.on("resize",(()=>{this._renderTransform.resize(s.transform.width,s.transform.height)})),s.on("styledata",(()=>{this._updateStyleComponents(this.props,{}),i(s.transform,this._renderTransform)})),s.on("sourcedata",(()=>this._updateStyleComponents(this.props,{})));for(const i in m)s.on(i,this._onPointerEvent);for(const i in f)s.on(i,this._onCameraEvent);for(const i in h)s.on(i,this._onEvent);this._map=s}recycle(){const e=this.map.getContainer().querySelector("[mapboxgl-children]");null==e||e.remove(),v.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){const e=this._map;!this._inRender&&e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())}_createShadowTransform(e){const t=function(e){const t=e.clone();return t.pixelsToGLUnits=e.pixelsToGLUnits,t}(e.transform);e.painter.transform=t,this._renderTransform=t}_updateSize(e){const{viewState:t}=e;if(t){const e=this._map;if(t.width!==e.transform.width||t.height!==e.transform.height)return e.resize(),!0}return!1}_updateViewState(e,t){if(this._internalUpdate)return!1;const n=this._map,o=this._renderTransform,{zoom:r,pitch:s,bearing:a}=o,i=n.isMoving();i&&(o.cameraElevationReference="sea");const u=l(o,Object.assign({},c(n.transform),e));if(i&&(o.cameraElevationReference="ground"),u&&t){const e=this._deferredEvents;e.move=!0,e.zoom||(e.zoom=r!==o.zoom),e.rotate||(e.rotate=a!==o.bearing),e.pitch||(e.pitch=s!==o.pitch)}return i||l(n.transform,e),u}_updateSettings(e,t){const n=this._map;let o=!1;for(const r of g)if(r in e&&!a(e[r],t[r])){o=!0;const t=n["set"+r[0].toUpperCase()+r.slice(1)];null==t||t.call(n,e[r])}return o}_updateStyle(e,t){if(e.cursor!==t.cursor&&(this._map.getCanvas().style.cursor=e.cursor||""),e.mapStyle!==t.mapStyle){const{mapStyle:t=d,styleDiffing:n=!0}=e,o={diff:n};return"localIdeographFontFamily"in e&&(o.localIdeographFontFamily=e.localIdeographFontFamily),this._map.setStyle(p(t),o),!0}return!1}_updateStyleComponents(e,t){const n=this._map;let o=!1;return n.isStyleLoaded()&&("light"in e&&n.setLight&&!a(e.light,t.light)&&(o=!0,n.setLight(e.light)),"fog"in e&&n.setFog&&!a(e.fog,t.fog)&&(o=!0,n.setFog(e.fog)),"terrain"in e&&n.setTerrain&&!a(e.terrain,t.terrain)&&(e.terrain&&!n.getSource(e.terrain.source)||(o=!0,n.setTerrain(e.terrain)))),o}_updateHandlers(e,t){const n=this._map;let o=!1;for(const i of y){var r,s;const c=null==(r=e[i])||r;a(c,null==(s=t[i])||s)||(o=!0,c?n[i].enable(c):n[i].disable())}return o}_queryRenderedFeatures(e){const t=this._map,n=t.transform,{interactiveLayerIds:o=[]}=this.props;try{return t.transform=this._renderTransform,t.queryRenderedFeatures(e,{layers:o.filter(t.getLayer.bind(t))})}catch(r){return[]}finally{t.transform=n}}_updateHover(e){const{props:t}=this;if(t.interactiveLayerIds&&(t.onMouseMove||t.onMouseEnter||t.onMouseLeave)){var n;const t=e.type,o=(null==(n=this._hoveredFeatures)?void 0:n.length)>0,r=this._queryRenderedFeatures(e.point),s=r.length>0;!s&&o&&(e.type="mouseleave",this._onPointerEvent(e)),this._hoveredFeatures=r,s&&!o&&(e.type="mouseenter",this._onPointerEvent(e)),e.type=t}else this._hoveredFeatures=null}_fireEvent(e,t,n){const o=this._map,r=o.transform,s="string"==typeof t?t:t.type;return"move"===s&&this._updateViewState(this.props,!1),s in f&&("object"==typeof t&&(t.viewState=c(r)),this._map.isMoving())?(o.transform=this._renderTransform,e.call(o,t,n),o.transform=r,o):(e.call(o,t,n),o)}_onBeforeRepaint(){const e=this._map;this._internalUpdate=!0;for(const n in this._deferredEvents)this._deferredEvents[n]&&e.fire(n);this._internalUpdate=!1;const t=this._map.transform;e.transform=this._renderTransform,this._onAfterRepaint=()=>{i(this._renderTransform,t),e.transform=t}}}function x(){let e=null;if("undefined"!=typeof location){const t=/access_token=([^&\/]*)/.exec(location.search);e=t&&t[1]}try{e=e||"pk.eyJ1IjoidWNmLW1hcGJveCIsImEiOiJja2tyNHQzdnIzYmNnMndwZGI3djNzdjVyIn0.xgCXV9mLZ47q7easx6WLCQ"}catch(t){}try{e=e||process.env.REACT_APP_MAPBOX_ACCESS_TOKEN}catch(n){}return e}v.savedMaps=[];const _=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function b(e){if(!e)return null;const t=e.map,n={getMap:()=>t,getCenter:()=>e.transform.center,getZoom:()=>e.transform.zoom,getBearing:()=>e.transform.bearing,getPitch:()=>e.transform.pitch,getPadding:()=>e.transform.padding,getBounds:()=>e.transform.getBounds(),project:n=>{const o=t.transform;t.transform=e.transform;const r=t.project(n);return t.transform=o,r},unproject:n=>{const o=t.transform;t.transform=e.transform;const r=t.unproject(n);return t.transform=o,r},queryTerrainElevation:(n,o)=>{const r=t.transform;t.transform=e.transform;const s=t.queryTerrainElevation(n,o);return t.transform=r,s},queryRenderedFeatures:(n,o)=>{const r=t.transform;t.transform=e.transform;const s=t.queryRenderedFeatures(n,o);return t.transform=r,s}};for(const o of function(e){const t=new Set;let n=e;for(;n;){for(const o of Object.getOwnPropertyNames(n))"_"!==o[0]&&"function"==typeof e[o]&&"fire"!==o&&"setEventedParent"!==o&&t.add(o);n=Object.getPrototypeOf(n)}return Array.from(t)}(t))o in n||_.includes(o)||(n[o]=t[o].bind(t));return n}const j="undefined"!=typeof document?o.useLayoutEffect:o.useEffect,L=["baseApiUrl","maxParallelImageRequests","workerClass","workerCount","workerUrl"];const C=o.createContext(null);function S(e,t){const a=(0,o.useContext)(s),[i,c]=(0,o.useState)(null),l=(0,o.useRef)(),{current:u}=(0,o.useRef)({mapLib:null,map:null});(0,o.useEffect)((()=>{const t=e.mapLib;let o,r=!0;return Promise.resolve(t||n.e(842).then(n.t.bind(n,842,23))).then((t=>{if(!r)return;if(!t)throw new Error("Invalid mapLib");const n="Map"in t?t:t.default;if(!n.Map)throw new Error("Invalid mapLib");if(function(e,t){for(const o of L)o in t&&(e[o]=t[o]);const{RTLTextPlugin:n="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js"}=t;n&&e.getRTLTextPluginStatus&&"unavailable"===e.getRTLTextPluginStatus()&&e.setRTLTextPlugin(n,(e=>{e&&console.error(e)}),!0)}(n,e),n.supported&&!n.supported(e))throw new Error("Map is not supported by this browser");e.reuseMaps&&(o=v.reuse(e,l.current)),o||(o=new v(n.Map,e,l.current)),u.map=b(o),u.mapLib=n,c(o),null==a||a.onMapMount(u.map,e.id)})).catch((t=>{const{onError:n}=e;n?n({type:"error",target:null,error:t}):console.error(t)})),()=>{r=!1,o&&(null==a||a.onMapUnmount(e.id),e.reuseMaps?o.recycle():o.destroy())}}),[]),j((()=>{i&&i.setProps(e)})),(0,o.useImperativeHandle)(t,(()=>u.map),[i]);const p=(0,o.useMemo)((()=>Object.assign({position:"relative",width:"100%",height:"100%"},e.style)),[e.style]);return(0,r.jsx)("div",{id:e.id,ref:l,style:p,children:i&&(0,r.jsx)(C.Provider,{value:u,children:(0,r.jsx)("div",{"mapboxgl-children":"",style:{height:"100%"},children:e.children})})})}const E=o.forwardRef(S);var M=n(961);const w=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function T(e,t){if(!e||!t)return;const n=e.style;for(const o in t){const e=t[o];Number.isFinite(e)&&!w.test(o)?n[o]=e+"px":n[o]=e}}const P=(0,o.memo)((0,o.forwardRef)(((e,t)=>{const{map:n,mapLib:r}=(0,o.useContext)(C),s=(0,o.useRef)({props:e});s.current.props=e;const a=(0,o.useMemo)((()=>{let t=!1;o.Children.forEach(e.children,(e=>{e&&(t=!0)}));const n=Object.assign({},e,{element:t?document.createElement("div"):null}),i=new r.Marker(n);return i.setLngLat([e.longitude,e.latitude]),i.getElement().addEventListener("click",(e=>{null==s.current.props.onClick||s.current.props.onClick({type:"click",target:i,originalEvent:e})})),i.on("dragstart",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDragStart||s.current.props.onDragStart(t)})),i.on("drag",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDrag||s.current.props.onDrag(t)})),i.on("dragend",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDragEnd||s.current.props.onDragEnd(t)})),i}),[]);(0,o.useEffect)((()=>(a.addTo(n.getMap()),()=>{a.remove()})),[]);const{longitude:i,latitude:c,offset:l,style:u,draggable:p=!1,popup:d=null,rotation:m=0,rotationAlignment:f="auto",pitchAlignment:h="auto"}=e;return(0,o.useEffect)((()=>{T(a.getElement(),u)}),[u]),(0,o.useImperativeHandle)(t,(()=>a),[]),a.getLngLat().lng===i&&a.getLngLat().lat===c||a.setLngLat([i,c]),l&&!function(e,t){const n=Array.isArray(e)?e[0]:e?e.x:0,o=Array.isArray(e)?e[1]:e?e.y:0,r=Array.isArray(t)?t[0]:t?t.x:0,s=Array.isArray(t)?t[1]:t?t.y:0;return n===r&&o===s}(a.getOffset(),l)&&a.setOffset(l),a.isDraggable()!==p&&a.setDraggable(p),a.getRotation()!==m&&a.setRotation(m),a.getRotationAlignment()!==f&&a.setRotationAlignment(f),a.getPitchAlignment()!==h&&a.setPitchAlignment(h),a.getPopup()!==d&&a.setPopup(d),(0,M.createPortal)(e.children,a.getElement())})));function R(e){return new Set(e?e.trim().split(/\s+/):[])}const k=(0,o.memo)((0,o.forwardRef)(((e,t)=>{const{map:n,mapLib:r}=(0,o.useContext)(C),s=(0,o.useMemo)((()=>document.createElement("div")),[]),i=(0,o.useRef)({props:e});i.current.props=e;const c=(0,o.useMemo)((()=>{const t=Object.assign({},e),n=new r.Popup(t);return n.setLngLat([e.longitude,e.latitude]),n.once("open",(e=>{null==i.current.props.onOpen||i.current.props.onOpen(e)})),n}),[]);if((0,o.useEffect)((()=>{const e=e=>{null==i.current.props.onClose||i.current.props.onClose(e)};return c.on("close",e),c.setDOMContent(s).addTo(n.getMap()),()=>{c.off("close",e),c.isOpen()&&c.remove()}}),[]),(0,o.useEffect)((()=>{T(c.getElement(),e.style)}),[e.style]),(0,o.useImperativeHandle)(t,(()=>c),[]),c.isOpen()&&(c.getLngLat().lng===e.longitude&&c.getLngLat().lat===e.latitude||c.setLngLat([e.longitude,e.latitude]),e.offset&&!a(c.options.offset,e.offset)&&c.setOffset(e.offset),c.options.anchor===e.anchor&&c.options.maxWidth===e.maxWidth||(c.options.anchor=e.anchor,c.setMaxWidth(e.maxWidth)),c.options.className!==e.className)){const t=R(c.options.className),n=R(e.className);for(const e of t)n.has(e)||c.removeClassName(e);for(const e of n)t.has(e)||c.addClassName(e);c.options.className=e.className}return(0,M.createPortal)(e.children,s)})));function z(e,t,n,r){const s=(0,o.useContext)(C),a=(0,o.useMemo)((()=>e(s)),[]);return(0,o.useEffect)((()=>{const e=r||n||t,o="function"==typeof t&&"function"==typeof n?t:null,i="function"==typeof n?n:"function"==typeof t?t:null,{map:c}=s;return c.hasControl(a)||(c.addControl(a,null==e?void 0:e.position),o&&o(s)),()=>{i&&i(s),c.hasControl(a)&&c.removeControl(a)}}),[]),a}function O(e){const t=z((t=>{let{mapLib:n}=t;return new n.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)})}),{position:e.position});return(0,o.useEffect)((()=>{T(t._controlContainer,e.style)}),[e.style]),null}const A=(0,o.memo)(O);function D(e,t){const n=(0,o.useRef)({props:e}),r=z((t=>{let{mapLib:o}=t;const r=new o.GeolocateControl(e),s=r._setupUI.bind(r);return r._setupUI=e=>{r._container.hasChildNodes()||s(e)},r.on("geolocate",(e=>{null==n.current.props.onGeolocate||n.current.props.onGeolocate(e)})),r.on("error",(e=>{null==n.current.props.onError||n.current.props.onError(e)})),r.on("outofmaxbounds",(e=>{null==n.current.props.onOutOfMaxBounds||n.current.props.onOutOfMaxBounds(e)})),r.on("trackuserlocationstart",(e=>{null==n.current.props.onTrackUserLocationStart||n.current.props.onTrackUserLocationStart(e)})),r.on("trackuserlocationend",(e=>{null==n.current.props.onTrackUserLocationEnd||n.current.props.onTrackUserLocationEnd(e)})),r}),{position:e.position});return n.current.props=e,(0,o.useImperativeHandle)(t,(()=>r),[]),(0,o.useEffect)((()=>{T(r._container,e.style)}),[e.style]),null}const I=(0,o.memo)((0,o.forwardRef)(D));function F(e){const t=z((t=>{let{mapLib:n}=t;return new n.NavigationControl(e)}),{position:e.position});return(0,o.useEffect)((()=>{T(t._container,e.style)}),[e.style]),null}const N=(0,o.memo)(F);function U(e){const t=z((t=>{let{mapLib:n}=t;return new n.ScaleControl(e)}),{position:e.position}),n=(0,o.useRef)(e),r=n.current;n.current=e;const{style:s}=e;return void 0!==e.maxWidth&&e.maxWidth!==r.maxWidth&&(t.options.maxWidth=e.maxWidth),void 0!==e.unit&&e.unit!==r.unit&&t.setUnit(e.unit),(0,o.useEffect)((()=>{T(t._container,s)}),[s]),null}const Z=(0,o.memo)(U);function H(e,t){if(!e)throw new Error(t)}let W=0;function q(e){const t=(0,o.useContext)(C).map.getMap(),n=(0,o.useRef)(e),[,r]=(0,o.useState)(0),s=(0,o.useMemo)((()=>e.id||"jsx-source-"+W++),[]);(0,o.useEffect)((()=>{if(t){const e=()=>setTimeout((()=>r((e=>e+1))),0);return t.on("styledata",e),e(),()=>{if(t.off("styledata",e),t.style&&t.style._loaded&&t.getSource(s)){var n;const e=null==(n=t.getStyle())?void 0:n.layers;if(e)for(const n of e)n.source===s&&t.removeLayer(n.id);t.removeSource(s)}}}}),[t]);let i=t&&t.style&&t.getSource(s);return i?function(e,t,n){H(t.id===n.id,"source id changed"),H(t.type===n.type,"source type changed");let o="",r=0;for(const i in t)"children"===i||"id"===i||a(n[i],t[i])||(o=i,r++);if(!r)return;const s=t.type;"geojson"===s?e.setData(t.data):"image"===s?e.updateImage({url:t.url,coordinates:t.coordinates}):"setCoordinates"in e&&1===r&&"coordinates"===o?e.setCoordinates(t.coordinates):"setUrl"in e&&"url"===o?e.setUrl(t.url):"setTiles"in e&&"tiles"===o?e.setTiles(t.tiles):console.warn("Unable to update prop: "+o)}(i,e,n.current):i=function(e,t,n){if(e.style&&e.style._loaded){const o=Object.assign({},n);return delete o.id,delete o.children,e.addSource(t,o),e.getSource(t)}return null}(t,s,e),n.current=e,i&&o.Children.map(e.children,(e=>e&&(0,o.cloneElement)(e,{source:s})))||null}let B=0;function V(e){const t=(0,o.useContext)(C).map.getMap(),n=(0,o.useRef)(e),[,r]=(0,o.useState)(0),s=(0,o.useMemo)((()=>e.id||"jsx-layer-"+B++),[]);(0,o.useEffect)((()=>{if(t){const e=()=>r((e=>e+1));return t.on("styledata",e),e(),()=>{t.off("styledata",e),t.style&&t.style._loaded&&t.getLayer(s)&&t.removeLayer(s)}}}),[t]);if(t&&t.style&&t.getLayer(s))try{!function(e,t,n,o){if(H(n.id===o.id,"layer id changed"),H(n.type===o.type,"layer type changed"),"custom"===n.type||"custom"===o.type)return;const{layout:r={},paint:s={},filter:i,minzoom:c,maxzoom:l,beforeId:u}=n;if(u!==o.beforeId&&e.moveLayer(t,u),r!==o.layout){const n=o.layout||{};for(const o in r)a(r[o],n[o])||e.setLayoutProperty(t,o,r[o]);for(const o in n)r.hasOwnProperty(o)||e.setLayoutProperty(t,o,void 0)}if(s!==o.paint){const n=o.paint||{};for(const o in s)a(s[o],n[o])||e.setPaintProperty(t,o,s[o]);for(const o in n)s.hasOwnProperty(o)||e.setPaintProperty(t,o,void 0)}a(i,o.filter)||e.setFilter(t,i),c===o.minzoom&&l===o.maxzoom||e.setLayerZoomRange(t,c,l)}(t,s,e,n.current)}catch(i){console.warn(i)}else!function(e,t,n){if(e.style&&e.style._loaded&&(!("source"in n)||e.getSource(n.source))){const o=Object.assign({},n,{id:t});delete o.beforeId,e.addLayer(o,n.beforeId)}}(t,s,e);return n.current=e,null}},8453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>i});var o=n(6540);const r={},s=o.createContext(r);function a(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/07881648.45b12b74.js b/assets/js/07881648.45b12b74.js deleted file mode 100644 index ced199c6..00000000 --- a/assets/js/07881648.45b12b74.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[9609],{9944:(e,t,n)=>{n.r(t),n.d(t,{default:()=>r});var o=n(7294),a=n(63),i=n(4996),l=a.ZP.div.withConfig({displayName:"doc-item-component__DemoContainer",componentId:"sc-16i3x2q-0"})(["position:absolute;overflow:hidden !important;left:0;right:0;top:0;bottom:0;> h1{display:none;}"]);function r(e){var t=e.content,n=e.route,a=t,r=(0,i.Z)("/examples");return n.path===r?o.createElement("div",{key:"index"},o.createElement(a,null)):o.createElement(l,{key:"demo"},o.createElement(a,null))}}}]); \ No newline at end of file diff --git a/assets/js/0a0750ee.1c63c44d.js b/assets/js/0a0750ee.1c63c44d.js new file mode 100644 index 00000000..9efafcf6 --- /dev/null +++ b/assets/js/0a0750ee.1c63c44d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[5188],{668:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>s,contentTitle:()=>p,default:()=>m,frontMatter:()=>c,metadata:()=>a,toc:()=>i});const a=JSON.parse('{"id":"api-reference/mapbox/map-provider","title":"MapProvider","description":"A Context.Provider that facilitates map operations outside of the component that directly renders a Map.","source":"@site/../docs/api-reference/mapbox/map-provider.md","sourceDirName":"api-reference/mapbox","slug":"/api-reference/mapbox/map-provider","permalink":"/react-map-gl/docs/api-reference/mapbox/map-provider","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/mapbox/map-provider.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"Layer","permalink":"/react-map-gl/docs/api-reference/mapbox/layer"},"next":{"title":"Marker","permalink":"/react-map-gl/docs/api-reference/mapbox/marker"}}');var n=t(4848),o=t(8453);const c={},p="MapProvider",s={},i=[{value:"Source",id:"source",level:2}];function d(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"mapprovider",children:"MapProvider"})}),"\n",(0,n.jsxs)(r.p,{children:["A ",(0,n.jsx)(r.a,{href:"https://reactjs.org/docs/context.html#contextprovider",children:"Context.Provider"})," that facilitates map operations outside of the component that directly renders a ",(0,n.jsx)(r.a,{href:"/react-map-gl/docs/api-reference/mapbox/map",children:"Map"}),"."]}),"\n",(0,n.jsx)(r.p,{children:"The component should wrap all nodes in which you may want to access the maps:"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:"import {MapProvider} from 'react-map-gl/mapbox';\n\nfunction Root() {\n return (\n \n {\n // Application tree, somewhere one or more component(s) are rendered\n }\n \n );\n}\n"})}),"\n",(0,n.jsxs)(r.p,{children:["See ",(0,n.jsx)(r.a,{href:"/react-map-gl/docs/api-reference/mapbox/use-map",children:"useMap"})," for more information."]}),"\n",(0,n.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:(0,n.jsx)(r.a,{href:"https://github.com/visgl/react-map-gl/tree/7.0-release/src/components/use-map.tsx",children:"use-map.tsx"})})]})}function m(e={}){const{wrapper:r}={...(0,o.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},8453:(e,r,t)=>{t.d(r,{R:()=>c,x:()=>p});var a=t(6540);const n={},o=a.createContext(n);function c(e){const r=a.useContext(o);return a.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function p(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:c(e.components),a.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0e9bb885.e3de89da.js b/assets/js/0e9bb885.e3de89da.js new file mode 100644 index 00000000..69d873de --- /dev/null +++ b/assets/js/0e9bb885.e3de89da.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[6984],{8180:(e,o,n)=>{n.r(o),n.d(o,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>s,metadata:()=>t,toc:()=>p});const t=JSON.parse('{"id":"api-reference/mapbox/use-control","title":"useControl","description":"The useControl hook is used to create React wrappers for custom map controls.","source":"@site/../docs/api-reference/mapbox/use-control.md","sourceDirName":"api-reference/mapbox","slug":"/api-reference/mapbox/use-control","permalink":"/react-map-gl/docs/api-reference/mapbox/use-control","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/mapbox/use-control.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"Source","permalink":"/react-map-gl/docs/api-reference/mapbox/source"},"next":{"title":"useMap","permalink":"/react-map-gl/docs/api-reference/mapbox/use-map"}}');var r=n(4848),a=n(8453);const s={},l="useControl",i={},p=[{value:"Signature",id:"signature",level:2},{value:"Source",id:"source",level:2}];function c(e){const o={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.header,{children:(0,r.jsx)(o.h1,{id:"usecontrol",children:"useControl"})}),"\n",(0,r.jsxs)(o.p,{children:["The ",(0,r.jsx)(o.code,{children:"useControl"})," hook is used to create React wrappers for custom map controls."]}),"\n",(0,r.jsx)(o.pre,{children:(0,r.jsx)(o.code,{className:"language-tsx",children:"import MapboxDraw from '@mapbox/mapbox-gl-draw';\nimport Map, {useControl} from 'react-map-gl/mapbox';\n\nfunction DrawControl(props: DrawControlProps) {\n useControl(() => new MapboxDraw(props), {\n position: props.position\n });\n\n return null;\n}\n\nfunction App() {\n return (\n \n \n \n );\n}\n"})}),"\n",(0,r.jsxs)(o.p,{children:["See a full example ",(0,r.jsx)(o.a,{href:"/examples/mapbox/draw-polygon",children:"here"}),"."]}),"\n",(0,r.jsx)(o.h2,{id:"signature",children:"Signature"}),"\n",(0,r.jsx)(o.pre,{children:(0,r.jsx)(o.code,{className:"language-js",children:"useControl(\n onCreate: ({map: MapRef, mapLib: mapboxgl}) => IControl,\n options?: {\n position?: ControlPosition;\n }\n): T\n\nuseControl(\n onCreate: ({map: MapRef, mapLib: mapboxgl}) => IControl,\n onRemove: ({map: MapRef, mapLib: mapboxgl}) => void,\n options?: {\n position?: ControlPosition;\n }\n): T\n\nuseControl(\n onCreate: ({map: MapRef, mapLib: mapboxgl}) => IControl,\n onAdd: ({map: MapRef, mapLib: mapboxgl}) => void,\n onRemove: ({map: MapRef, mapLib: mapboxgl}) => void,\n options?: {\n position?: ControlPosition;\n }\n): T\n"})}),"\n",(0,r.jsxs)(o.p,{children:["The hook creates an ",(0,r.jsx)(o.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/markers/#icontrol",children:"IControl"})," instance, adds it to the map when it's available, and removes it upon unmount."]}),"\n",(0,r.jsx)(o.p,{children:"Parameters:"}),"\n",(0,r.jsxs)(o.ul,{children:["\n",(0,r.jsxs)(o.li,{children:[(0,r.jsx)(o.code,{children:"onCreate"}),": (",(0,r.jsx)(o.code,{children:"{map: MapRef, mapLib: mapboxgl}"}),") => ",(0,r.jsx)(o.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#icontrol",children:"IControl"})," - called to create an instance of the control."]}),"\n",(0,r.jsxs)(o.li,{children:[(0,r.jsx)(o.code,{children:"onAdd"}),": (",(0,r.jsx)(o.code,{children:"{map: MapRef, mapLib: mapboxgl}"}),") => void - called when the control has been added to the map."]}),"\n",(0,r.jsxs)(o.li,{children:[(0,r.jsx)(o.code,{children:"onRemove"}),": (",(0,r.jsx)(o.code,{children:"{map: MapRef, mapLib: mapboxgl}"}),") => void - called when the control is about to be removed from the map."]}),"\n",(0,r.jsxs)(o.li,{children:[(0,r.jsx)(o.code,{children:"options"}),": object","\n",(0,r.jsxs)(o.ul,{children:["\n",(0,r.jsxs)(o.li,{children:[(0,r.jsx)(o.code,{children:"position"}),": 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' - control position relative to the map"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(o.p,{children:"Returns:"}),"\n",(0,r.jsxs)(o.p,{children:[(0,r.jsx)(o.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#icontrol",children:"IControl"})," - the control instance from ",(0,r.jsx)(o.code,{children:"onCreate"}),"."]}),"\n",(0,r.jsx)(o.h2,{id:"source",children:"Source"}),"\n",(0,r.jsx)(o.p,{children:(0,r.jsx)(o.a,{href:"https://github.com/visgl/react-map-gl/tree/7.0-release/src/components/use-control.ts",children:"use-control.ts"})})]})}function d(e={}){const{wrapper:o}={...(0,a.R)(),...e.components};return o?(0,r.jsx)(o,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},8453:(e,o,n)=>{n.d(o,{R:()=>s,x:()=>l});var t=n(6540);const r={},a=t.createContext(r);function s(e){const o=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function l(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),t.createElement(a.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0f7476ce.ca584950.js b/assets/js/0f7476ce.ca584950.js new file mode 100644 index 00000000..87fabd9b --- /dev/null +++ b/assets/js/0f7476ce.ca584950.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[2643],{7964:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>i,contentTitle:()=>s,default:()=>d,frontMatter:()=>a,metadata:()=>r,toc:()=>p});const r=JSON.parse('{"id":"api-reference/maplibre/use-control","title":"useControl","description":"The useControl hook is used to create React wrappers for custom map controls.","source":"@site/../docs/api-reference/maplibre/use-control.md","sourceDirName":"api-reference/maplibre","slug":"/api-reference/maplibre/use-control","permalink":"/react-map-gl/docs/api-reference/maplibre/use-control","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/maplibre/use-control.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"TerrainControl","permalink":"/react-map-gl/docs/api-reference/maplibre/terrain-control"},"next":{"title":"useMap","permalink":"/react-map-gl/docs/api-reference/maplibre/use-map"}}');var t=o(4848),l=o(8453);const a={},s="useControl",i={},p=[{value:"Signature",id:"signature",level:2},{value:"Source",id:"source",level:2}];function c(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,l.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"usecontrol",children:"useControl"})}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.code,{children:"useControl"})," hook is used to create React wrappers for custom map controls."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-tsx",children:"import MapboxDraw from '@mapbox/mapbox-gl-draw';\nimport {Map, useControl} from 'react-map-gl/maplibre';\n\nfunction DrawControl(props: DrawControlProps) {\n useControl(() => new MapboxDraw(props), {\n position: props.position\n });\n\n return null;\n}\n\nfunction App() {\n return (\n \n \n \n );\n}\n"})}),"\n",(0,t.jsxs)(n.p,{children:["See a full example ",(0,t.jsx)(n.a,{href:"/examples/maplibre/draw-polygon",children:"here"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"signature",children:"Signature"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",children:"useControl(\n onCreate: ({map: MapRef, mapLib: maplibregl}) => IControl,\n options?: {\n position?: ControlPosition;\n }\n): T\n\nuseControl(\n onCreate: ({map: MapRef, mapLib: maplibregl}) => IControl,\n onRemove: ({map: MapRef, mapLib: maplibregl}) => void,\n options?: {\n position?: ControlPosition;\n }\n): T\n\nuseControl(\n onCreate: ({map: MapRef, mapLib: maplibregl}) => IControl,\n onAdd: ({map: MapRef, mapLib: maplibregl}) => void,\n onRemove: ({map: MapRef, mapLib: maplibregl}) => void,\n options?: {\n position?: ControlPosition;\n }\n): T\n"})}),"\n",(0,t.jsxs)(n.p,{children:["The hook creates an ",(0,t.jsx)(n.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/interfaces/IControl/",children:"IControl"})," instance, adds it to the map when it's available, and removes it upon unmount."]}),"\n",(0,t.jsx)(n.p,{children:"Parameters:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"onCreate"}),": ",(0,t.jsx)(n.code,{children:"({map: MapRef, mapLib: maplibregl}) => IControl"})," - called to create an instance of the control."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"onAdd"}),": ",(0,t.jsx)(n.code,{children:"({map: MapRef, mapLib: maplibregl}) => void"})," - called when the control has been added to the map."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"onRemove"}),": ",(0,t.jsx)(n.code,{children:"({map: MapRef, mapLib: maplibregl}) => void"})," - called when the control is about to be removed from the map."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"options"}),": object","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"position"}),": 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' - control position relative to the map"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Returns:"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/maplibre/types#icontrol",children:"IControl"})," - the control instance from ",(0,t.jsx)(n.code,{children:"onCreate"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/master/modules/maplibre/src/components/use-control.ts",children:"use-control.ts"})})]})}function d(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},8453:(e,n,o)=>{o.d(n,{R:()=>a,x:()=>s});var r=o(6540);const t={},l=r.createContext(t);function a(e){const n=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),r.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1102cf8d.ad139458.js b/assets/js/1102cf8d.ad139458.js new file mode 100644 index 00000000..cfcf9ec1 --- /dev/null +++ b/assets/js/1102cf8d.ad139458.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[6712],{9262:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>h,contentTitle:()=>g,default:()=>b,frontMatter:()=>f,metadata:()=>n,toc:()=>y});const n=JSON.parse('{"id":"maplibre/draw-polygon","title":"Draw Polygon","description":"","source":"@site/src/examples/maplibre/draw-polygon.mdx","sourceDirName":"maplibre","slug":"/maplibre/draw-polygon","permalink":"/react-map-gl/examples/maplibre/draw-polygon","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"Draggable Marker","permalink":"/react-map-gl/examples/maplibre/draggable-markers"},"next":{"title":"Highlight By Filter","permalink":"/react-map-gl/examples/maplibre/filter"}}');var r=o(4848),s=o(8453),a=o(6540),i=(o(5338),o(5490)),l=o(4604);function c(e){return(0,i.VI)((()=>new l.A(e)),(t=>{let{map:o}=t;o.on("draw.create",e.onCreate),o.on("draw.update",e.onUpdate),o.on("draw.delete",e.onDelete)}),(t=>{let{map:o}=t;o.off("draw.create",e.onCreate),o.off("draw.update",e.onUpdate),o.off("draw.delete",e.onDelete)}),{position:e.position}),null}c.defaultProps={onCreate:()=>{},onUpdate:()=>{},onDelete:()=>{}};var u=o(999);function p(e){let t=0;for(const o of e.polygons)t+=(0,u.A)(o);return(0,r.jsxs)("div",{className:"control-panel",children:[(0,r.jsx)("h3",{children:"Draw Polygon"}),t>0&&(0,r.jsxs)("p",{children:[Math.round(100*t)/100," ",(0,r.jsx)("br",{}),"square meters"]}),(0,r.jsx)("div",{className:"source-link",children:(0,r.jsx)("a",{href:"https://github.com/visgl/react-maplibre/tree/1.0-release/examples/draw-polygon",target:"_new",children:"View Code \u2197"})})]})}const d=a.memo(p);function m(){const[e,t]=(0,a.useState)({}),o=(0,a.useCallback)((e=>{t((t=>{const o=Object.assign({},t);for(const n of e.features)o[n.id]=n;return o}))}),[]),n=(0,a.useCallback)((e=>{t((t=>{const o=Object.assign({},t);for(const n of e.features)delete o[n.id];return o}))}),[]);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.T5,{initialViewState:{longitude:-91.874,latitude:42.76,zoom:12},mapStyle:"https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json",children:(0,r.jsx)(c,{position:"top-left",displayControlsDefault:!1,controls:{polygon:!0,trash:!0},defaultMode:"draw_polygon",onCreate:o,onUpdate:o,onDelete:n})}),(0,r.jsx)(d,{polygons:Object.values(e)})]})}const f={},g="Draw Polygon",h={},y=[];function v(e){const t={h1:"h1",header:"header",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"draw-polygon",children:"Draw Polygon"})}),"\n","\n",(0,r.jsx)(m,{})]})}function b(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(v,{...e})}):v(e)}},5490:(e,t,o)=>{o.d(t,{T3:()=>R,tG:()=>T,Wd:()=>V,T5:()=>w,pH:()=>j,ov:()=>U,zD:()=>P,g0:()=>A,kL:()=>H,jG:()=>N,Ay:()=>w,VI:()=>k});var n=o(6540),r=o(4848);const s=n.createContext(null);function a(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let o=0;o{let o=null;"interactive"in e&&(o=Object.assign({},e),delete o.interactive);const n=t[e.ref];if(n){o=o||Object.assign({},e),delete o.ref;for(const e of c)e in n&&(o[e]=n[e])}return o||e}));return Object.assign({},e,{layers:o})}const p={version:8,sources:{},layers:[]},d={mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",click:"onClick",dblclick:"onDblClick",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",mouseout:"onMouseOut",contextmenu:"onContextMenu",touchstart:"onTouchStart",touchend:"onTouchEnd",touchmove:"onTouchMove",touchcancel:"onTouchCancel"},m={movestart:"onMoveStart",move:"onMove",moveend:"onMoveEnd",dragstart:"onDragStart",drag:"onDrag",dragend:"onDragEnd",zoomstart:"onZoomStart",zoom:"onZoom",zoomend:"onZoomEnd",rotatestart:"onRotateStart",rotate:"onRotate",rotateend:"onRotateEnd",pitchstart:"onPitchStart",pitch:"onPitch",pitchend:"onPitchEnd"},f={wheel:"onWheel",boxzoomstart:"onBoxZoomStart",boxzoomend:"onBoxZoomEnd",boxzoomcancel:"onBoxZoomCancel",resize:"onResize",load:"onLoad",render:"onRender",idle:"onIdle",remove:"onRemove",data:"onData",styledata:"onStyleData",sourcedata:"onSourceData",error:"onError"},g=["minZoom","maxZoom","minPitch","maxPitch","maxBounds","projection","renderWorldCopies"],h=["scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate","touchPitch"];class y{constructor(e,t,o){this._map=null,this._internalUpdate=!1,this._hoveredFeatures=null,this._propsedCameraUpdate=null,this._styleComponents={},this._onEvent=e=>{const t=this.props[f[e.type]];t?t(e):"error"===e.type&&console.error(e.error)},this._onCameraEvent=e=>{if(this._internalUpdate)return;e.viewState=this._propsedCameraUpdate||i(this._map.transform);const t=this.props[m[e.type]];t&&t(e)},this._onCameraUpdate=e=>this._internalUpdate?e:(this._propsedCameraUpdate=i(e),l(e,this.props)),this._onPointerEvent=e=>{"mousemove"!==e.type&&"mouseout"!==e.type||this._updateHover(e);const t=this.props[d[e.type]];t&&(this.props.interactiveLayerIds&&"mouseover"!==e.type&&"mouseout"!==e.type&&(e.features=this._hoveredFeatures||this._queryRenderedFeatures(e.point)),t(e),delete e.features)},this._MapClass=e,this.props=t,this._initialize(o)}get map(){return this._map}setProps(e){const t=this.props;this.props=e;const o=this._updateSettings(e,t),n=this._updateSize(e),r=this._updateViewState(e);this._updateStyle(e,t),this._updateStyleComponents(e),this._updateHandlers(e,t),(o||n||r&&!this._map.isMoving())&&this.redraw()}static reuse(e,t){const o=y.savedMaps.pop();if(!o)return null;const n=o.map,r=n.getContainer();for(t.className=r.className;r.childNodes.length>0;)t.appendChild(r.childNodes[0]);n._container=t;const s=n._resizeObserver;s&&(s.disconnect(),s.observe(t)),o.setProps(Object.assign({},e,{styleDiffing:!1})),n.resize();const{initialViewState:a}=e;return a&&(a.bounds?n.fitBounds(a.bounds,Object.assign({},a.fitBoundsOptions,{duration:0})):o._updateViewState(a)),n.isStyleLoaded()?n.fire("load"):n.once("style.load",(()=>n.fire("load"))),n._update(),o}_initialize(e){const{props:t}=this,{mapStyle:o=p}=t,n=Object.assign({},t,t.initialViewState,{container:e,style:u(o)}),r=n.initialViewState||n.viewState||n;if(Object.assign(n,{center:[r.longitude||0,r.latitude||0],zoom:r.zoom||0,pitch:r.pitch||0,bearing:r.bearing||0}),t.gl){const e=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=e,t.gl)}const s=new this._MapClass(n);r.padding&&s.setPadding(r.padding),t.cursor&&(s.getCanvas().style.cursor=t.cursor),s.transformCameraUpdate=this._onCameraUpdate,s.on("style.load",(()=>{this._styleComponents={light:s.getLight(),sky:s.getSky(),projection:null==s.getProjection?void 0:s.getProjection(),terrain:s.getTerrain()},this._updateStyleComponents(this.props)})),s.on("sourcedata",(()=>{this._updateStyleComponents(this.props)}));for(const a in d)s.on(a,this._onPointerEvent);for(const a in m)s.on(a,this._onCameraEvent);for(const a in f)s.on(a,this._onEvent);this._map=s}recycle(){const e=this.map.getContainer().querySelector("[mapboxgl-children]");null==e||e.remove(),y.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){const e=this._map;e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())}_updateSize(e){const{viewState:t}=e;if(t){const e=this._map;if(t.width!==e.transform.width||t.height!==e.transform.height)return e.resize(),!0}return!1}_updateViewState(e){const t=this._map,o=t.transform;if(!t.isMoving()){const n=l(o,e);if(Object.keys(n).length>0)return this._internalUpdate=!0,t.jumpTo(n),this._internalUpdate=!1,!0}return!1}_updateSettings(e,t){const o=this._map;let n=!1;for(const r of g)if(r in e&&!a(e[r],t[r])){n=!0;const t=o["set"+r[0].toUpperCase()+r.slice(1)];null==t||t.call(o,e[r])}return n}_updateStyle(e,t){if(e.cursor!==t.cursor&&(this._map.getCanvas().style.cursor=e.cursor||""),e.mapStyle!==t.mapStyle){const{mapStyle:t=p,styleDiffing:o=!0}=e,n={diff:o};"localIdeographFontFamily"in e&&(n.localIdeographFontFamily=e.localIdeographFontFamily),this._map.setStyle(u(t),n)}}_updateStyleComponents(e){let{light:t,projection:o,sky:n,terrain:r}=e;const s=this._map,i=this._styleComponents;var l;s.style._loaded&&(t&&!a(t,i.light)&&(i.light=t,s.setLight(t)),o&&!a(o,i.projection)&&o!==(null==(l=i.projection)?void 0:l.type)&&(i.projection="string"==typeof o?{type:o}:o,null==s.setProjection||s.setProjection(i.projection)),n&&!a(n,i.sky)&&(i.sky=n,s.setSky(n)),void 0===r||a(r,i.terrain)||r&&!s.getSource(r.source)||(i.terrain=r,s.setTerrain(r)))}_updateHandlers(e,t){const o=this._map;for(const s of h){var n,r;const i=null==(n=e[s])||n;a(i,null==(r=t[s])||r)||(i?o[s].enable(i):o[s].disable())}}_queryRenderedFeatures(e){const t=this._map,{interactiveLayerIds:o=[]}=this.props;try{return t.queryRenderedFeatures(e,{layers:o.filter(t.getLayer.bind(t))})}catch(n){return[]}}_updateHover(e){const{props:t}=this;if(t.interactiveLayerIds&&(t.onMouseMove||t.onMouseEnter||t.onMouseLeave)){var o;const t=e.type,n=(null==(o=this._hoveredFeatures)?void 0:o.length)>0,r=this._queryRenderedFeatures(e.point),s=r.length>0;!s&&n&&(e.type="mouseleave",this._onPointerEvent(e)),this._hoveredFeatures=r,s&&!n&&(e.type="mouseenter",this._onPointerEvent(e)),e.type=t}else this._hoveredFeatures=null}}y.savedMaps=[];const v=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function b(e){if(!e)return null;const t=e.map,o={getMap:()=>t};for(const n of function(e){const t=new Set;let o=e;for(;o;){for(const n of Object.getOwnPropertyNames(o))"_"!==n[0]&&"function"==typeof e[n]&&"fire"!==n&&"setEventedParent"!==n&&t.add(n);o=Object.getPrototypeOf(o)}return Array.from(t)}(t))n in o||v.includes(n)||(o[n]=t[n].bind(t));return o}const _="undefined"!=typeof document?n.useLayoutEffect:n.useEffect;const x=n.createContext(null);function C(e,t){const a=(0,n.useContext)(s),[i,l]=(0,n.useState)(null),c=(0,n.useRef)(),{current:u}=(0,n.useRef)({mapLib:null,map:null});(0,n.useEffect)((()=>{const t=e.mapLib;let n,r=!0;return Promise.resolve(t||o.e(6443).then(o.t.bind(o,6443,23))).then((t=>{if(!r)return;if(!t)throw new Error("Invalid mapLib");const o="Map"in t?t:t.default;if(!o.Map)throw new Error("Invalid mapLib");if(function(e,t){const{RTLTextPlugin:o,maxParallelImageRequests:n,workerCount:r,workerUrl:s}=t;if(o&&e.getRTLTextPluginStatus&&"unavailable"===e.getRTLTextPluginStatus()){const{pluginUrl:t,lazy:n=!0}="string"==typeof o?{pluginUrl:o}:o;e.setRTLTextPlugin(t,(e=>{e&&console.error(e)}),n)}void 0!==n&&e.setMaxParallelImageRequests(n),void 0!==r&&e.setWorkerCount(r),void 0!==s&&e.setWorkerUrl(s)}(o,e),o.supported&&!o.supported(e))throw new Error("Map is not supported by this browser");e.reuseMaps&&(n=y.reuse(e,c.current)),n||(n=new y(o.Map,e,c.current)),u.map=b(n),u.mapLib=o,l(n),null==a||a.onMapMount(u.map,e.id)})).catch((t=>{const{onError:o}=e;o?o({type:"error",target:null,originalEvent:null,error:t}):console.error(t)})),()=>{r=!1,n&&(null==a||a.onMapUnmount(e.id),e.reuseMaps?n.recycle():n.destroy())}}),[]),_((()=>{i&&i.setProps(e)})),(0,n.useImperativeHandle)(t,(()=>u.map),[i]);const p=(0,n.useMemo)((()=>Object.assign({position:"relative",width:"100%",height:"100%"},e.style)),[e.style]);return(0,r.jsx)("div",{id:e.id,ref:c,style:p,children:i&&(0,r.jsx)(x.Provider,{value:u,children:(0,r.jsx)("div",{"mapboxgl-children":"",style:{height:"100%"},children:e.children})})})}const w=n.forwardRef(C);var L=o(961);const S=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function M(e,t){if(!e||!t)return;const o=e.style;for(const n in t){const e=t[n];Number.isFinite(e)&&!S.test(n)?o[n]=e+"px":o[n]=e}}const j=(0,n.memo)((0,n.forwardRef)(((e,t)=>{const{map:o,mapLib:r}=(0,n.useContext)(x),s=(0,n.useRef)({props:e});s.current.props=e;const a=(0,n.useMemo)((()=>{let t=!1;n.Children.forEach(e.children,(e=>{e&&(t=!0)}));const o=Object.assign({},e,{element:t?document.createElement("div"):null}),i=new r.Marker(o);return i.setLngLat([e.longitude,e.latitude]),i.getElement().addEventListener("click",(e=>{null==s.current.props.onClick||s.current.props.onClick({type:"click",target:i,originalEvent:e})})),i.on("dragstart",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDragStart||s.current.props.onDragStart(t)})),i.on("drag",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDrag||s.current.props.onDrag(t)})),i.on("dragend",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDragEnd||s.current.props.onDragEnd(t)})),i}),[]);(0,n.useEffect)((()=>(a.addTo(o.getMap()),()=>{a.remove()})),[]);const{longitude:i,latitude:l,offset:c,style:u,draggable:p=!1,popup:d=null,rotation:m=0,rotationAlignment:f="auto",pitchAlignment:g="auto"}=e;return(0,n.useEffect)((()=>{M(a.getElement(),u)}),[u]),(0,n.useImperativeHandle)(t,(()=>a),[]),a.getLngLat().lng===i&&a.getLngLat().lat===l||a.setLngLat([i,l]),c&&!function(e,t){const o=Array.isArray(e)?e[0]:e?e.x:0,n=Array.isArray(e)?e[1]:e?e.y:0,r=Array.isArray(t)?t[0]:t?t.x:0,s=Array.isArray(t)?t[1]:t?t.y:0;return o===r&&n===s}(a.getOffset(),c)&&a.setOffset(c),a.isDraggable()!==p&&a.setDraggable(p),a.getRotation()!==m&&a.setRotation(m),a.getRotationAlignment()!==f&&a.setRotationAlignment(f),a.getPitchAlignment()!==g&&a.setPitchAlignment(g),a.getPopup()!==d&&a.setPopup(d),(0,L.createPortal)(e.children,a.getElement())})));function E(e){return new Set(e?e.trim().split(/\s+/):[])}const P=(0,n.memo)((0,n.forwardRef)(((e,t)=>{const{map:o,mapLib:r}=(0,n.useContext)(x),s=(0,n.useMemo)((()=>document.createElement("div")),[]),i=(0,n.useRef)({props:e});i.current.props=e;const l=(0,n.useMemo)((()=>{const t=Object.assign({},e),o=new r.Popup(t);return o.setLngLat([e.longitude,e.latitude]),o.once("open",(e=>{null==i.current.props.onOpen||i.current.props.onOpen(e)})),o}),[]);if((0,n.useEffect)((()=>{const e=e=>{null==i.current.props.onClose||i.current.props.onClose(e)};return l.on("close",e),l.setDOMContent(s).addTo(o.getMap()),()=>{l.off("close",e),l.isOpen()&&l.remove()}}),[]),(0,n.useEffect)((()=>{M(l.getElement(),e.style)}),[e.style]),(0,n.useImperativeHandle)(t,(()=>l),[]),l.isOpen()&&(l.getLngLat().lng===e.longitude&&l.getLngLat().lat===e.latitude||l.setLngLat([e.longitude,e.latitude]),e.offset&&!a(l.options.offset,e.offset)&&l.setOffset(e.offset),l.options.anchor===e.anchor&&l.options.maxWidth===e.maxWidth||(l.options.anchor=e.anchor,l.setMaxWidth(e.maxWidth)),l.options.className!==e.className)){const t=E(l.options.className),o=E(e.className);for(const e of t)o.has(e)||l.removeClassName(e);for(const e of o)t.has(e)||l.addClassName(e);l.options.className=e.className}return(0,L.createPortal)(e.children,s)})));function k(e,t,o,r){const s=(0,n.useContext)(x),a=(0,n.useMemo)((()=>e(s)),[]);return(0,n.useEffect)((()=>{const e=r||o||t,n="function"==typeof t&&"function"==typeof o?t:null,i="function"==typeof o?o:"function"==typeof t?t:null,{map:l}=s;return l.hasControl(a)||(l.addControl(a,null==e?void 0:e.position),n&&n(s)),()=>{i&&i(s),l.hasControl(a)&&l.removeControl(a)}}),[]),a}function O(e){const t=k((t=>{let{mapLib:o}=t;return new o.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)})}),{position:e.position});return(0,n.useEffect)((()=>{M(t._controlContainer,e.style)}),[e.style]),null}const R=(0,n.memo)(O);function z(e,t){const o=(0,n.useRef)({props:e}),r=k((t=>{let{mapLib:n}=t;const r=new n.GeolocateControl(e),s=r._setupUI;return r._setupUI=()=>{r._container.hasChildNodes()||s()},r.on("geolocate",(e=>{null==o.current.props.onGeolocate||o.current.props.onGeolocate(e)})),r.on("error",(e=>{null==o.current.props.onError||o.current.props.onError(e)})),r.on("outofmaxbounds",(e=>{null==o.current.props.onOutOfMaxBounds||o.current.props.onOutOfMaxBounds(e)})),r.on("trackuserlocationstart",(e=>{null==o.current.props.onTrackUserLocationStart||o.current.props.onTrackUserLocationStart(e)})),r.on("trackuserlocationend",(e=>{null==o.current.props.onTrackUserLocationEnd||o.current.props.onTrackUserLocationEnd(e)})),r}),{position:e.position});return o.current.props=e,(0,n.useImperativeHandle)(t,(()=>r),[]),(0,n.useEffect)((()=>{M(r._container,e.style)}),[e.style]),null}const T=(0,n.memo)((0,n.forwardRef)(z));function D(e){const t=k((t=>{let{mapLib:o}=t;return new o.NavigationControl(e)}),{position:e.position});return(0,n.useEffect)((()=>{M(t._container,e.style)}),[e.style]),null}const U=(0,n.memo)(D);function I(e){const t=k((t=>{let{mapLib:o}=t;return new o.ScaleControl(e)}),{position:e.position}),o=(0,n.useRef)(e),r=o.current;o.current=e;const{style:s}=e;return void 0!==e.maxWidth&&e.maxWidth!==r.maxWidth&&(t.options.maxWidth=e.maxWidth),void 0!==e.unit&&e.unit!==r.unit&&t.setUnit(e.unit),(0,n.useEffect)((()=>{M(t._container,s)}),[s]),null}const A=(0,n.memo)(I);function F(e){const t=k((t=>{let{mapLib:o}=t;return new o.TerrainControl(e)}),{position:e.position});return(0,n.useEffect)((()=>{M(t._container,e.style)}),[e.style]),null}const N=(0,n.memo)(F);function W(e,t){if(!e)throw new Error(t)}let Z=0;function H(e){const t=(0,n.useContext)(x).map.getMap(),o=(0,n.useRef)(e),[,r]=(0,n.useState)(0),s=(0,n.useMemo)((()=>e.id||"jsx-source-"+Z++),[]);(0,n.useEffect)((()=>{if(t){const e=()=>setTimeout((()=>r((e=>e+1))),0);return t.on("styledata",e),e(),()=>{if(t.off("styledata",e),t.style&&t.style._loaded&&t.getSource(s)){var o;const e=null==(o=t.getStyle())?void 0:o.layers;if(e)for(const o of e)o.source===s&&t.removeLayer(o.id);t.removeSource(s)}}}}),[t]);let i=t&&t.style&&t.getSource(s);return i?function(e,t,o){W(t.id===o.id,"source id changed"),W(t.type===o.type,"source type changed");let n="",r=0;for(const i in t)"children"===i||"id"===i||a(o[i],t[i])||(n=i,r++);if(!r)return;const s=t.type;if("geojson"===s)e.setData(t.data);else if("image"===s)e.updateImage({url:t.url,coordinates:t.coordinates});else switch(n){case"coordinates":null==e.setCoordinates||e.setCoordinates(t.coordinates);break;case"url":null==e.setUrl||e.setUrl(t.url);break;case"tiles":null==e.setTiles||e.setTiles(t.tiles);break;default:console.warn("Unable to update prop: "+n)}}(i,e,o.current):i=function(e,t,o){if(e.style&&e.style._loaded){const n=Object.assign({},o);return delete n.id,delete n.children,e.addSource(t,n),e.getSource(t)}return null}(t,s,e),o.current=e,i&&n.Children.map(e.children,(e=>e&&(0,n.cloneElement)(e,{source:s})))||null}let B=0;function V(e){const t=(0,n.useContext)(x).map.getMap(),o=(0,n.useRef)(e),[,r]=(0,n.useState)(0),s=(0,n.useMemo)((()=>e.id||"jsx-layer-"+B++),[]);(0,n.useEffect)((()=>{if(t){const e=()=>r((e=>e+1));return t.on("styledata",e),e(),()=>{t.off("styledata",e),t.style&&t.style._loaded&&t.getLayer(s)&&t.removeLayer(s)}}}),[t]);if(t&&t.style&&t.getLayer(s))try{!function(e,t,o,n){if(W(o.id===n.id,"layer id changed"),W(o.type===n.type,"layer type changed"),"custom"===o.type||"custom"===n.type)return;const{layout:r={},paint:s={},filter:i,minzoom:l,maxzoom:c,beforeId:u}=o;if(u!==n.beforeId&&e.moveLayer(t,u),r!==n.layout){const o=n.layout||{};for(const n in r)a(r[n],o[n])||e.setLayoutProperty(t,n,r[n]);for(const n in o)r.hasOwnProperty(n)||e.setLayoutProperty(t,n,void 0)}if(s!==n.paint){const o=n.paint||{};for(const n in s)a(s[n],o[n])||e.setPaintProperty(t,n,s[n]);for(const n in o)s.hasOwnProperty(n)||e.setPaintProperty(t,n,void 0)}a(i,n.filter)||e.setFilter(t,i),l===n.minzoom&&c===n.maxzoom||e.setLayerZoomRange(t,l,c)}(t,s,e,o.current)}catch(i){console.warn(i)}else!function(e,t,o){if(e.style&&e.style._loaded&&(!("source"in o)||e.getSource(o.source))){const n=Object.assign({},o,{id:t});delete n.beforeId,e.addLayer(n,o.beforeId)}}(t,s,e);return o.current=e,null}}}]); \ No newline at end of file diff --git a/assets/js/12488a06.d1f525e6.js b/assets/js/12488a06.d1f525e6.js deleted file mode 100644 index a9e58e66..00000000 --- a/assets/js/12488a06.d1f525e6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[5004],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>m});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),c=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=c(e.components);return n.createElement(u.Provider,{value:t},e.children)},f="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),f=c(r),d=o,m=f["".concat(u,".").concat(d)]||f[d]||p[d]||a;return r?n.createElement(m,i(i({ref:t},l),{},{components:r})):n.createElement(m,i({ref:t},l))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[f]="string"==typeof e?e:o,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>b,contentTitle:()=>h,default:()=>w,frontMatter:()=>g,metadata:()=>y,toc:()=>_});var n=r(7462),o=r(3366),a=r(7294),i=r(3905),s=(r(745),r(945));function u(){return a.createElement("div",{className:"control-panel"},a.createElement("h3",null,"Create and Style Clusters"),a.createElement("p",null,"Use Mapbox GL JS' built-in functions to visualize points as clusters."),a.createElement("div",{className:"source-link"},a.createElement("a",{href:"https://github.com/visgl/react-map-gl/tree/7.1-release/examples/clusters",target:"_new"},"View Code \u2197")))}const c=a.memo(u);var l={id:"clusters",type:"circle",source:"earthquakes",filter:["has","point_count"],paint:{"circle-color":["step",["get","point_count"],"#51bbd6",100,"#f1f075",750,"#f28cb1"],"circle-radius":["step",["get","point_count"],20,100,30,750,40]}},f={id:"cluster-count",type:"symbol",source:"earthquakes",filter:["has","point_count"],layout:{"text-field":"{point_count_abbreviated}","text-font":["DIN Offc Pro Medium","Arial Unicode MS Bold"],"text-size":12}},p={id:"unclustered-point",type:"circle",source:"earthquakes",filter:["!",["has","point_count"]],paint:{"circle-color":"#11b4da","circle-radius":4,"circle-stroke-width":1,"circle-stroke-color":"#fff"}},d="";function m(){var e=(0,a.useRef)(null);return a.createElement(a.Fragment,null,a.createElement(s.D5,{initialViewState:{latitude:40.67,longitude:-103.59,zoom:3},mapStyle:"mapbox://styles/mapbox/dark-v9",mapboxAccessToken:d,interactiveLayerIds:[l.id],onClick:function(t){var r=t.features[0],n=r.properties.cluster_id;e.current.getSource("earthquakes").getClusterExpansionZoom(n,(function(t,n){t||e.current.easeTo({center:r.geometry.coordinates,zoom:n,duration:500})}))},ref:e},a.createElement(s.Hw,{id:"earthquakes",type:"geojson",data:"https://docs.mapbox.com/mapbox-gl-js/assets/earthquakes.geojson",cluster:!0,clusterMaxZoom:14,clusterRadius:50},a.createElement(s.mh,l),a.createElement(s.mh,f),a.createElement(s.mh,p))),a.createElement(c,null))}var v=["components"],g={},h="Clusters",y={unversionedId:"clusters",id:"clusters",title:"Clusters",description:"",source:"@site/src/examples/clusters.mdx",sourceDirName:".",slug:"/clusters",permalink:"/react-map-gl/examples/clusters",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"examplesSidebar",previous:{title:"GeoJSON Animation",permalink:"/react-map-gl/examples/geojson-animation"},next:{title:"Limit Map Interaction",permalink:"/react-map-gl/examples/interaction"}},b={},_=[],E={toc:_},x="wrapper";function w(e){var t=e.components,r=(0,o.Z)(e,v);return(0,i.kt)(x,(0,n.Z)({},E,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"clusters"},"Clusters"),(0,i.kt)(m,{mdxType:"App"}))}w.isMDXComponent=!0},945:(e,t,r)=>{r.d(t,{ot:()=>$,$j:()=>te,mh:()=>ne,D5:()=>X,Jx:()=>K,Pv:()=>ee,GI:()=>Y,jf:()=>re,Hw:()=>oe,ZP:()=>ae,PE:()=>Z});var n=r(7294),o=n.createContext(null);var a=r(1202);function i(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(var r=0;r0;)r.appendChild(a.childNodes[0]);o._container=r;var i=o._resizeObserver;i&&(i.disconnect(),i.observe(r)),n.setProps(Object.assign({},t,{styleDiffing:!1})),o.resize();var s=t.initialViewState;return s&&(s.bounds?o.fitBounds(s.bounds,Object.assign({},s.fitBoundsOptions,{duration:0})):n._updateViewState(s,!1)),o.isStyleLoaded()?o.fire("load"):o.once("styledata",(function(){return o.fire("load")})),o._update(),n},t._initialize=function(e){var t=this,r=this.props,n=r.mapStyle,o=void 0===n?d:n,a=Object.assign({},r,r.initialViewState,{accessToken:r.mapboxAccessToken||_()||null,container:e,style:p(o)}),i=a.initialViewState||a.viewState||a;if(Object.assign(a,{center:[i.longitude||0,i.latitude||0],zoom:i.zoom||0,pitch:i.pitch||0,bearing:i.bearing||0}),r.gl){var u=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=function(){return HTMLCanvasElement.prototype.getContext=u,r.gl}}var c=new this._MapClass(a);i.padding&&c.setPadding(i.padding),r.cursor&&(c.getCanvas().style.cursor=r.cursor),this._createShadowTransform(c);var l=c._render;c._render=function(e){t._inRender=!0,l.call(c,e),t._inRender=!1};var f=c._renderTaskQueue.run;c._renderTaskQueue.run=function(e){f.call(c._renderTaskQueue,e),t._onBeforeRepaint()},c.on("render",(function(){return t._onAfterRepaint()}));var h=c.fire;for(var y in c.fire=this._fireEvent.bind(this,h),c.on("resize",(function(){t._renderTransform.resize(c.transform.width,c.transform.height)})),c.on("styledata",(function(){t._updateStyleComponents(t.props,{}),s(c.transform,t._renderTransform)})),c.on("sourcedata",(function(){return t._updateStyleComponents(t.props,{})})),m)c.on(y,this._onPointerEvent);for(var b in v)c.on(b,this._onCameraEvent);for(var E in g)c.on(E,this._onEvent);this._map=c},t.recycle=function(){var t=this.map.getContainer().querySelector("[mapboxgl-children]");null==t||t.remove(),e.savedMaps.push(this)},t.destroy=function(){this._map.remove()},t.redraw=function(){var e=this._map;!this._inRender&&e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())},t._createShadowTransform=function(e){var t,r,n=(t=e.transform,(r=t.clone()).pixelsToGLUnits=t.pixelsToGLUnits,r);e.painter.transform=n,this._renderTransform=n},t._updateSize=function(e){var t=e.viewState;if(t){var r=this._map;if(t.width!==r.transform.width||t.height!==r.transform.height)return r.resize(),!0}return!1},t._updateViewState=function(e,t){if(this._internalUpdate)return!1;var r=this._map,n=this._renderTransform,o=n.zoom,a=n.pitch,i=n.bearing,s=r.isMoving();s&&(n.cameraElevationReference="sea");var l=c(n,Object.assign({},u(r.transform),e));if(s&&(n.cameraElevationReference="ground"),l&&t){var f=this._deferredEvents;f.move=!0,f.zoom||(f.zoom=o!==n.zoom),f.rotate||(f.rotate=i!==n.bearing),f.pitch||(f.pitch=a!==n.pitch)}return s||c(r.transform,e),l},t._updateSettings=function(e,t){for(var r=this._map,n=!1,o=0,a=h;o0,a=this._queryRenderedFeatures(e.point),i=a.length>0;!i&&o&&(e.type="mouseleave",this._onPointerEvent(e)),this._hoveredFeatures=a,i&&!o&&(e.type="mouseenter",this._onPointerEvent(e)),e.type=n}else this._hoveredFeatures=null},t._fireEvent=function(e,t,r){var n=this._map,o=n.transform,a="string"==typeof t?t:t.type;return"move"===a&&this._updateViewState(this.props,!1),a in v&&("object"==typeof t&&(t.viewState=u(o)),this._map.isMoving())?(n.transform=this._renderTransform,e.call(n,t,r),n.transform=o,n):(e.call(n,t,r),n)},t._onBeforeRepaint=function(){var e=this,t=this._map;for(var r in this._internalUpdate=!0,this._deferredEvents)this._deferredEvents[r]&&t.fire(r);this._internalUpdate=!1;var n=this._map.transform;t.transform=this._renderTransform,this._onAfterRepaint=function(){s(e._renderTransform,n),t.transform=n}},(0,a.Z)(e,[{key:"map",get:function(){return this._map}},{key:"transform",get:function(){return this._renderTransform}}]),e}();function _(){var e=null;if("undefined"!=typeof location){var t=/access_token=([^&\/]*)/.exec(location.search);e=t&&t[1]}try{e=e||"pk.eyJ1IjoidWNmLW1hcGJveCIsImEiOiJja2tyNHQzdnIzYmNnMndwZGI3djNzdjVyIn0.xgCXV9mLZ47q7easx6WLCQ"}catch(r){}try{e=e||process.env.REACT_APP_MAPBOX_ACCESS_TOKEN}catch(n){}return e}b.savedMaps=[];var E=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function x(e){if(!e)return null;for(var t,r=e.map,n={getMap:function(){return r},getCenter:function(){return e.transform.center},getZoom:function(){return e.transform.zoom},getBearing:function(){return e.transform.bearing},getPitch:function(){return e.transform.pitch},getPadding:function(){return e.transform.padding},getBounds:function(){return e.transform.getBounds()},project:function(t){var n=r.transform;r.transform=e.transform;var o=r.project(t);return r.transform=n,o},unproject:function(t){var n=r.transform;r.transform=e.transform;var o=r.unproject(t);return r.transform=n,o},queryTerrainElevation:function(t,n){var o=r.transform;r.transform=e.transform;var a=r.queryTerrainElevation(t,n);return r.transform=o,a},queryRenderedFeatures:function(t,n){var o=r.transform;r.transform=e.transform;var a=r.queryRenderedFeatures(t,n);return r.transform=o,a}},o=(0,l.Z)(function(e){var t=new Set,r=e;for(;r;){for(var n,o=(0,l.Z)(Object.getOwnPropertyNames(r));!(n=o()).done;){var a=n.value;"_"!==a[0]&&"function"==typeof e[a]&&"fire"!==a&&"setEventedParent"!==a&&t.add(a)}r=Object.getPrototypeOf(r)}return Array.from(t)}(r));!(t=o()).done;){var a=t.value;a in n||E.includes(a)||(n[a]=r[a].bind(r))}return n}const w="undefined"!=typeof document?n.useLayoutEffect:n.useEffect;var S=["baseApiUrl","maxParallelImageRequests","workerClass","workerCount","workerUrl"];var L=n.createContext(null);function C(e,t,r){var a=(0,n.useContext)(o),i=(0,n.useState)(null),s=i[0],u=i[1],c=(0,n.useRef)(),f=(0,n.useRef)({mapLib:null,map:null}).current;(0,n.useEffect)((function(){var t,n=e.mapLib,o=!0;return Promise.resolve(n||r).then((function(r){if(o){if(!r)throw new Error("Invalid mapLib");var n="Map"in r?r:r.default;if(!n.Map)throw new Error("Invalid mapLib");if(function(e,t){for(var r,n=(0,l.Z)(S);!(r=n()).done;){var o=r.value;o in t&&(e[o]=t[o])}var a=t.RTLTextPlugin,i=void 0===a?"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js":a;i&&e.getRTLTextPluginStatus&&"unavailable"===e.getRTLTextPluginStatus()&&e.setRTLTextPlugin(i,(function(e){e&&console.error(e)}),!0)}(n,e),n.supported&&!n.supported(e))throw new Error("Map is not supported by this browser");e.reuseMaps&&(t=b.reuse(e,c.current)),t||(t=new b(n.Map,e,c.current)),f.map=x(t),f.mapLib=n,u(t),null==a||a.onMapMount(f.map,e.id)}})).catch((function(t){var r=e.onError;r?r({type:"error",target:null,originalEvent:null,error:t}):console.error(t)})),function(){o=!1,t&&(null==a||a.onMapUnmount(e.id),e.reuseMaps?t.recycle():t.destroy())}}),[]),w((function(){s&&s.setProps(e)})),(0,n.useImperativeHandle)(t,(function(){return f.map}),[s]);var p=(0,n.useMemo)((function(){return Object.assign({position:"relative",width:"100%",height:"100%"},e.style)}),[e.style]);return n.createElement("div",{id:e.id,ref:c,style:p},s&&n.createElement(L.Provider,{value:f},n.createElement("div",{"mapboxgl-children":"",style:{height:"100%"}},e.children)))}var P=r(3935),O=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function M(e,t){if(e&&t){var r=e.style;for(var n in t){var o=t[n];Number.isFinite(o)&&!O.test(n)?r[n]=o+"px":r[n]=o}}}function j(e,t){var r=(0,n.useContext)(L),o=r.map,a=r.mapLib,i=(0,n.useRef)({props:e});i.current.props=e;var s=(0,n.useMemo)((function(){var t=!1;n.Children.forEach(e.children,(function(e){e&&(t=!0)}));var r=Object.assign({},e,{element:t?document.createElement("div"):null}),o=new a.Marker(r);return o.setLngLat([e.longitude,e.latitude]),o.getElement().addEventListener("click",(function(e){null==i.current.props.onClick||i.current.props.onClick({type:"click",target:o,originalEvent:e})})),o.on("dragstart",(function(e){var t=e;t.lngLat=s.getLngLat(),null==i.current.props.onDragStart||i.current.props.onDragStart(t)})),o.on("drag",(function(e){var t=e;t.lngLat=s.getLngLat(),null==i.current.props.onDrag||i.current.props.onDrag(t)})),o.on("dragend",(function(e){var t=e;t.lngLat=s.getLngLat(),null==i.current.props.onDragEnd||i.current.props.onDragEnd(t)})),o}),[]);(0,n.useEffect)((function(){return s.addTo(o.getMap()),function(){s.remove()}}),[]);var u,c,l,f,p,d,m=e.longitude,v=e.latitude,g=e.offset,h=e.style,y=e.draggable,b=void 0!==y&&y,_=e.popup,E=void 0===_?null:_,x=e.rotation,w=void 0===x?0:x,S=e.rotationAlignment,C=void 0===S?"auto":S,O=e.pitchAlignment,j=void 0===O?"auto":O;return(0,n.useEffect)((function(){M(s.getElement(),h)}),[h]),(0,n.useImperativeHandle)(t,(function(){return s}),[]),s.getLngLat().lng===m&&s.getLngLat().lat===v||s.setLngLat([m,v]),g&&(u=s.getOffset(),c=g,l=Array.isArray(u)?u[0]:u?u.x:0,f=Array.isArray(u)?u[1]:u?u.y:0,p=Array.isArray(c)?c[0]:c?c.x:0,d=Array.isArray(c)?c[1]:c?c.y:0,l!==p||f!==d)&&s.setOffset(g),s.isDraggable()!==b&&s.setDraggable(b),s.getRotation()!==w&&s.setRotation(w),s.getRotationAlignment()!==C&&s.setRotationAlignment(C),s.getPitchAlignment()!==j&&s.setPitchAlignment(j),s.getPopup()!==E&&s.setPopup(E),(0,P.createPortal)(e.children,s.getElement())}const T=(0,n.memo)((0,n.forwardRef)(j));function k(e){return new Set(e?e.trim().split(/\s+/):[])}function R(e,t){var r=(0,n.useContext)(L),o=r.map,a=r.mapLib,s=(0,n.useMemo)((function(){return document.createElement("div")}),[]),u=(0,n.useRef)({props:e});u.current.props=e;var c=(0,n.useMemo)((function(){var t=Object.assign({},e),r=new a.Popup(t);return r.setLngLat([e.longitude,e.latitude]),r.once("open",(function(e){null==u.current.props.onOpen||u.current.props.onOpen(e)})),r}),[]);if((0,n.useEffect)((function(){var e=function(e){null==u.current.props.onClose||u.current.props.onClose(e)};return c.on("close",e),c.setDOMContent(s).addTo(o.getMap()),function(){c.off("close",e),c.isOpen()&&c.remove()}}),[]),(0,n.useEffect)((function(){M(c.getElement(),e.style)}),[e.style]),(0,n.useImperativeHandle)(t,(function(){return c}),[]),c.isOpen()&&(c.getLngLat().lng===e.longitude&&c.getLngLat().lat===e.latitude||c.setLngLat([e.longitude,e.latitude]),e.offset&&!i(c.options.offset,e.offset)&&c.setOffset(e.offset),c.options.anchor===e.anchor&&c.options.maxWidth===e.maxWidth||(c.options.anchor=e.anchor,c.setMaxWidth(e.maxWidth)),c.options.className!==e.className)){for(var f,p=k(c.options.className),d=k(e.className),m=(0,l.Z)(p);!(f=m()).done;){var v=f.value;d.has(v)||c.removeClassName(v)}for(var g,h=(0,l.Z)(d);!(g=h()).done;){var y=g.value;p.has(y)||c.addClassName(y)}c.options.className=e.className}return(0,P.createPortal)(e.children,s)}const z=(0,n.memo)((0,n.forwardRef)(R));const Z=function(e,t,r,o){var a=(0,n.useContext)(L),i=(0,n.useMemo)((function(){return e(a)}),[]);return(0,n.useEffect)((function(){var e=o||r||t,n="function"==typeof t&&"function"==typeof r?t:null,s="function"==typeof r?r:"function"==typeof t?t:null,u=a.map;return u.hasControl(i)||(u.addControl(i,null==e?void 0:e.position),n&&n(a)),function(){s&&s(a),u.hasControl(i)&&u.removeControl(i)}}),[]),i};function I(e){var t=Z((function(t){return new t.mapLib.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)})}),{position:e.position});return(0,n.useEffect)((function(){M(t._controlContainer,e.style)}),[e.style]),null}const A=(0,n.memo)(I);function D(e,t){var r=(0,n.useRef)({props:e}),o=Z((function(t){var n=new t.mapLib.GeolocateControl(e),o=n._setupUI;return n._setupUI=function(e){n._container.hasChildNodes()||o(e)},n.on("geolocate",(function(e){null==r.current.props.onGeolocate||r.current.props.onGeolocate(e)})),n.on("error",(function(e){null==r.current.props.onError||r.current.props.onError(e)})),n.on("outofmaxbounds",(function(e){null==r.current.props.onOutOfMaxBounds||r.current.props.onOutOfMaxBounds(e)})),n.on("trackuserlocationstart",(function(e){null==r.current.props.onTrackUserLocationStart||r.current.props.onTrackUserLocationStart(e)})),n.on("trackuserlocationend",(function(e){null==r.current.props.onTrackUserLocationEnd||r.current.props.onTrackUserLocationEnd(e)})),n}),{position:e.position});return r.current.props=e,(0,n.useImperativeHandle)(t,(function(){return o}),[]),(0,n.useEffect)((function(){M(o._container,e.style)}),[e.style]),null}const N=(0,n.memo)((0,n.forwardRef)(D));function F(e){var t=Z((function(t){return new t.mapLib.NavigationControl(e)}),{position:e.position});return(0,n.useEffect)((function(){M(t._container,e.style)}),[e.style]),null}const U=(0,n.memo)(F);function q(e){var t=Z((function(t){return new t.mapLib.ScaleControl(e)}),{position:e.position}),r=(0,n.useRef)(e),o=r.current;r.current=e;var a=e.style;return void 0!==e.maxWidth&&e.maxWidth!==o.maxWidth&&(t.options.maxWidth=e.maxWidth),void 0!==e.unit&&e.unit!==o.unit&&t.setUnit(e.unit),(0,n.useEffect)((function(){M(t._container,a)}),[a]),null}const B=(0,n.memo)(q);function W(e,t){if(!e)throw new Error(t)}var H=0;const V=function(e){var t=(0,n.useContext)(L).map.getMap(),r=(0,n.useRef)(e),o=(0,n.useState)(0)[1],a=(0,n.useMemo)((function(){return e.id||"jsx-layer-"+H++}),[]);if((0,n.useEffect)((function(){if(t){var e=function(){return o((function(e){return e+1}))};return t.on("styledata",e),e(),function(){t.off("styledata",e),t.style&&t.style._loaded&&t.getLayer(a)&&t.removeLayer(a)}}}),[t]),t&&t.style&&t.getLayer(a))try{!function(e,t,r,n){if(W(r.id===n.id,"layer id changed"),W(r.type===n.type,"layer type changed"),"custom"!==r.type&&"custom"!==n.type){var o=r.layout,a=void 0===o?{}:o,s=r.paint,u=void 0===s?{}:s,c=r.filter,l=r.minzoom,f=r.maxzoom,p=r.beforeId;if(p!==n.beforeId&&e.moveLayer(t,p),a!==n.layout){var d=n.layout||{};for(var m in a)i(a[m],d[m])||e.setLayoutProperty(t,m,a[m]);for(var v in d)a.hasOwnProperty(v)||e.setLayoutProperty(t,v,void 0)}if(u!==n.paint){var g=n.paint||{};for(var h in u)i(u[h],g[h])||e.setPaintProperty(t,h,u[h]);for(var y in g)u.hasOwnProperty(y)||e.setPaintProperty(t,y,void 0)}i(c,n.filter)||e.setFilter(t,c),l===n.minzoom&&f===n.maxzoom||e.setLayerZoomRange(t,l,f)}}(t,a,e,r.current)}catch(s){console.warn(s)}else!function(e,t,r){if(e.style&&e.style._loaded&&(!("source"in r)||e.getSource(r.source))){var n=Object.assign({},r,{id:t});delete n.beforeId,e.addLayer(n,r.beforeId)}}(t,a,e);return r.current=e,null};var G=0;const J=function(e){var t=(0,n.useContext)(L).map.getMap(),r=(0,n.useRef)(e),o=(0,n.useState)(0)[1],a=(0,n.useMemo)((function(){return e.id||"jsx-source-"+G++}),[]);(0,n.useEffect)((function(){if(t){var e=function(){return setTimeout((function(){return o((function(e){return e+1}))}),0)};return t.on("styledata",e),e(),function(){if(t.off("styledata",e),t.style&&t.style._loaded&&t.getSource(a)){var r,n=null==(r=t.getStyle())?void 0:r.layers;if(n)for(var o,i=(0,l.Z)(n);!(o=i()).done;){var s=o.value;s.source===a&&t.removeLayer(s.id)}t.removeSource(a)}}}}),[t]);var s=t&&t.style&&t.getSource(a);return s?function(e,t,r){W(t.id===r.id,"source id changed"),W(t.type===r.type,"source type changed");var n="",o=0;for(var a in t)"children"===a||"id"===a||i(r[a],t[a])||(n=a,o++);if(o){var s=t.type;if("geojson"===s)e.setData(t.data);else if("image"===s)e.updateImage({url:t.url,coordinates:t.coordinates});else if("setCoordinates"in e&&1===o&&"coordinates"===n)e.setCoordinates(t.coordinates);else if("setUrl"in e)switch(n){case"url":e.setUrl(t.url);break;case"tiles":e.setTiles(t.tiles)}else console.warn("Unable to update prop: "+n)}}(s,e,r.current):s=function(e,t,r){if(e.style&&e.style._loaded){var n=Object.assign({},r);return delete n.id,delete n.children,e.addSource(t,n),e.getSource(t)}return null}(t,a,e),r.current=e,s&&n.Children.map(e.children,(function(e){return e&&(0,n.cloneElement)(e,{source:a})}))||null};var Q=r.e(8539).then(r.t.bind(r,8539,23)),X=n.forwardRef((function(e,t){return C(e,t,Q)})),K=T,Y=z,$=A,ee=U,te=N,re=B,ne=V,oe=J;const ae=X},745:(e,t,r)=>{var n=r(3935);n.createRoot,n.hydrateRoot},1202:(e,t,r)=>{r.d(t,{Z:()=>i});var n=r(1002);function o(e){var t=function(e,t){if("object"!==(0,n.Z)(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!==(0,n.Z)(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===(0,n.Z)(t)?t:String(t)}function a(e,t){for(var r=0;r{"use strict";n.r(t),n.d(t,{default:()=>gn});var s=n(6540),a=n(1003),i=n(9532),o=n(4848);const l=s.createContext(null);function c(e){let{children:t,content:n}=e;const a=function(e){return(0,s.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return(0,o.jsx)(l.Provider,{value:a,children:t})}function r(){const e=(0,s.useContext)(l);if(null===e)throw new i.dV("DocProvider");return e}function d(){var e;const{metadata:t,frontMatter:n,assets:s}=r();return(0,o.jsx)(a.be,{title:t.title,description:t.description,keywords:n.keywords,image:null!=(e=s.image)?e:n.image})}var u=n(4164),m=n(4581),h=n(1312),b=n(8774);function p(e){const{permalink:t,title:n,subLabel:s,isNext:a}=e;return(0,o.jsxs)(b.A,{className:(0,u.A)("pagination-nav__link",a?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[s&&(0,o.jsx)("div",{className:"pagination-nav__sublabel",children:s}),(0,o.jsx)("div",{className:"pagination-nav__label",children:n})]})}function g(e){const{previous:t,next:n}=e;return(0,o.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,h.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,o.jsx)(p,Object.assign({},t,{subLabel:(0,o.jsx)(h.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})})),n&&(0,o.jsx)(p,Object.assign({},n,{subLabel:(0,o.jsx)(h.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0}))]})}function f(){const{metadata:e}=r();return(0,o.jsx)(g,{previous:e.previous,next:e.next})}var j=n(4586),x=n(8295),v=n(7559),N=n(3886),A=n(3025);const C={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,o.jsx)(h.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,o.jsx)("b",{children:n.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,o.jsx)(h.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,o.jsx)("b",{children:n.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function y(e){const t=C[e.versionMetadata.banner];return(0,o.jsx)(t,Object.assign({},e))}function k(e){let{versionLabel:t,to:n,onClick:s}=e;return(0,o.jsx)(h.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,o.jsx)("b",{children:(0,o.jsx)(b.A,{to:n,onClick:s,children:(0,o.jsx)(h.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function L(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:s}}=(0,j.A)(),{pluginId:a}=(0,x.vT)({failfast:!0}),{savePreferredVersionName:i}=(0,N.g1)(a),{latestDocSuggestion:l,latestVersionSuggestion:c}=(0,x.HW)(a),r=null!=l?l:(d=c).docs.find((e=>e.id===d.mainDocId));var d;return(0,o.jsxs)("div",{className:(0,u.A)(t,v.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,o.jsx)("div",{children:(0,o.jsx)(y,{siteTitle:s,versionMetadata:n})}),(0,o.jsx)("div",{className:"margin-top--md",children:(0,o.jsx)(k,{versionLabel:c.label,to:r.path,onClick:()=>i(c.name)})})]})}function _(e){let{className:t}=e;const n=(0,A.r)();return n.banner?(0,o.jsx)(L,{className:t,versionMetadata:n}):null}function B(e){let{className:t}=e;const n=(0,A.r)();return n.badge?(0,o.jsx)("span",{className:(0,u.A)(t,v.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,o.jsx)(h.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label},children:"Version: {versionLabel}"})}):null}const w={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function T(e){let{permalink:t,label:n,count:s,description:a}=e;return(0,o.jsxs)(b.A,{href:t,title:a,className:(0,u.A)(w.tag,s?w.tagWithCount:w.tagRegular),children:[n,s&&(0,o.jsx)("span",{children:s})]})}const O={tags:"tags_jXut",tag:"tag_QGVx"};function E(e){let{tags:t}=e;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("b",{children:(0,o.jsx)(h.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,o.jsx)("ul",{className:(0,u.A)(O.tags,"padding--none","margin-left--sm"),children:t.map((e=>(0,o.jsx)("li",{className:O.tag,children:(0,o.jsx)(T,Object.assign({},e))},e.permalink)))})]})}var H=n(8587);const M={iconEdit:"iconEdit_Z9Sw"},I=["className"];function S(e){let{className:t}=e,n=(0,H.A)(e,I);return(0,o.jsx)("svg",Object.assign({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,u.A)(M.iconEdit,t),"aria-hidden":"true"},n,{children:(0,o.jsx)("g",{children:(0,o.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})}))}function U(e){let{editUrl:t}=e;return(0,o.jsxs)(b.A,{to:t,className:v.G.common.editThisPage,children:[(0,o.jsx)(S,{}),(0,o.jsx)(h.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}function V(e){void 0===e&&(e={});const{i18n:{currentLocale:t}}=(0,j.A)(),n=function(){const{i18n:{currentLocale:e,localeConfigs:t}}=(0,j.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,Object.assign({calendar:n},e))}function R(e){let{lastUpdatedAt:t}=e;const n=new Date(t),s=V({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(n);return(0,o.jsx)(h.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,o.jsx)("b",{children:(0,o.jsx)("time",{dateTime:n.toISOString(),itemProp:"dateModified",children:s})})},children:" on {date}"})}function z(e){let{lastUpdatedBy:t}=e;return(0,o.jsx)(h.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,o.jsx)("b",{children:t})},children:" by {user}"})}function P(e){let{lastUpdatedAt:t,lastUpdatedBy:n}=e;return(0,o.jsxs)("span",{className:v.G.common.lastUpdated,children:[(0,o.jsx)(h.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t?(0,o.jsx)(R,{lastUpdatedAt:t}):"",byUser:n?(0,o.jsx)(z,{lastUpdatedBy:n}):""},children:"Last updated{atDate}{byUser}"}),!1]})}const G={lastUpdated:"lastUpdated_JAkA"};function D(e){let{className:t,editUrl:n,lastUpdatedAt:s,lastUpdatedBy:a}=e;return(0,o.jsxs)("div",{className:(0,u.A)("row",t),children:[(0,o.jsx)("div",{className:"col",children:n&&(0,o.jsx)(U,{editUrl:n})}),(0,o.jsx)("div",{className:(0,u.A)("col",G.lastUpdated),children:(s||a)&&(0,o.jsx)(P,{lastUpdatedAt:s,lastUpdatedBy:a})})]})}function F(){const{metadata:e}=r(),{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s,tags:a}=e,i=a.length>0,l=!!(t||n||s);return i||l?(0,o.jsxs)("footer",{className:(0,u.A)(v.G.docs.docFooter,"docusaurus-mt-lg"),children:[i&&(0,o.jsx)("div",{className:(0,u.A)("row margin-top--sm",v.G.docs.docFooterTagsRow),children:(0,o.jsx)("div",{className:"col",children:(0,o.jsx)(E,{tags:a})})}),l&&(0,o.jsx)(D,{className:(0,u.A)("margin-top--sm",v.G.docs.docFooterEditMetaRow),editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s})]}):null}var W=n(1422),q=n(6342);const Z=["parentIndex"];function $(e){const t=e.map((e=>Object.assign({},e,{parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const s=n.slice(2,e.level);e.parentIndex=Math.max(...s),n[e.level]=t}));const s=[];return t.forEach((e=>{const{parentIndex:n}=e,a=(0,H.A)(e,Z);n>=0?t[n].children.push(a):s.push(a)})),s}function J(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:s}=e;return t.flatMap((e=>{const t=J({toc:e.children,minHeadingLevel:n,maxHeadingLevel:s});return function(e){return e.level>=n&&e.level<=s}(e)?[Object.assign({},e,{children:t})]:t}))}function Y(e){const t=e.getBoundingClientRect();return t.top===t.bottom?Y(e.parentNode):t}function K(e,t){var n;let{anchorTopOffset:s}=t;const a=e.find((e=>Y(e).top>=s));if(a){var i;return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function X(e){const t=(0,s.useRef)(void 0),n=Q();(0,s.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:i,maxHeadingLevel:o}=e;function l(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),l=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const s=[];for(let a=t;a<=n;a+=1)s.push("h"+a+".anchor");return Array.from(document.querySelectorAll(s.join()))}({minHeadingLevel:i,maxHeadingLevel:o}),c=K(l,{anchorTopOffset:n.current}),r=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(a),e.classList.add(a),t.current=e):e.classList.remove(a)}(e,e===r)}))}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}}),[e,n])}function ee(e){let{toc:t,className:n,linkClassName:s,isChild:a}=e;return t.length?(0,o.jsx)("ul",{className:a?void 0:n,children:t.map((e=>(0,o.jsxs)("li",{children:[(0,o.jsx)(b.A,{to:"#"+e.id,className:null!=s?s:void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,o.jsx)(ee,{isChild:!0,toc:e.children,className:n,linkClassName:s})]},e.id)))}):null}const te=s.memo(ee),ne=["toc","className","linkClassName","linkActiveClassName","minHeadingLevel","maxHeadingLevel"];function se(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:a="table-of-contents__link",linkActiveClassName:i,minHeadingLevel:l,maxHeadingLevel:c}=e,r=(0,H.A)(e,ne);const d=(0,q.p)(),u=null!=l?l:d.tableOfContents.minHeadingLevel,m=null!=c?c:d.tableOfContents.maxHeadingLevel,h=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,s.useMemo)((()=>J({toc:$(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:u,maxHeadingLevel:m});return X((0,s.useMemo)((()=>{if(a&&i)return{linkClassName:a,linkActiveClassName:i,minHeadingLevel:u,maxHeadingLevel:m}}),[a,i,u,m])),(0,o.jsx)(te,Object.assign({toc:h,className:n,linkClassName:a},r))}const ae={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"},ie=["collapsed"];function oe(e){let{collapsed:t}=e,n=(0,H.A)(e,ie);return(0,o.jsx)("button",Object.assign({type:"button"},n,{className:(0,u.A)("clean-btn",ae.tocCollapsibleButton,!t&&ae.tocCollapsibleButtonExpanded,n.className),children:(0,o.jsx)(h.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})}))}const le={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function ce(e){let{toc:t,className:n,minHeadingLevel:s,maxHeadingLevel:a}=e;const{collapsed:i,toggleCollapsed:l}=(0,W.u)({initialState:!0});return(0,o.jsxs)("div",{className:(0,u.A)(le.tocCollapsible,!i&&le.tocCollapsibleExpanded,n),children:[(0,o.jsx)(oe,{collapsed:i,onClick:l}),(0,o.jsx)(W.N,{lazy:!0,className:le.tocCollapsibleContent,collapsed:i,children:(0,o.jsx)(se,{toc:t,minHeadingLevel:s,maxHeadingLevel:a})})]})}const re={tocMobile:"tocMobile_ITEo"};function de(){const{toc:e,frontMatter:t}=r();return(0,o.jsx)(ce,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,u.A)(v.G.docs.docTocMobile,re.tocMobile)})}const ue={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"},me=["className"],he="table-of-contents__link toc-highlight",be="table-of-contents__link--active";function pe(e){let{className:t}=e,n=(0,H.A)(e,me);return(0,o.jsx)("div",{className:(0,u.A)(ue.tableOfContents,"thin-scrollbar",t),children:(0,o.jsx)(se,Object.assign({},n,{linkClassName:he,linkActiveClassName:be}))})}function ge(){const{toc:e,frontMatter:t}=r();return(0,o.jsx)(pe,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:v.G.docs.docTocDesktop})}var fe=n(1107),je=n(8453),xe=n(5260),ve=n(2303),Ne=n(5293);function Ae(){const{prism:e}=(0,q.p)(),{colorMode:t}=(0,Ne.G)(),n=e.theme,s=e.darkTheme||n;return"dark"===t?s:n}var Ce=n(8634),ye=n(8426),ke=n.n(ye);const Le=(0,Ce.A)(/title=(["'])(.*?)\1/,{quote:1,title:2}),_e=(0,Ce.A)(/\{([\d,-]+)\}/,{range:1}),Be={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},we=Object.assign({},Be,{lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}}),Te=Object.keys(Be);function Oe(e,t){const n=e.map((e=>{const{start:n,end:s}=we[e];return"(?:"+n+"\\s*("+t.flatMap((e=>{var t,n;return[e.line,null==(t=e.block)?void 0:t.start,null==(n=e.block)?void 0:n.end].filter(Boolean)})).join("|")+")\\s*"+s+")"})).join("|");return new RegExp("^\\s*(?:"+n+")\\s*$")}function Ee(e,t){let n=e.replace(/\n$/,"");const{language:s,magicComments:a,metastring:i}=t;if(i&&_e.test(i)){const e=i.match(_e).groups.range;if(0===a.length)throw new Error("A highlight range has been given in code block's metastring (``` "+i+"), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.");const t=a[0].className,s=ke()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(s),code:n}}if(void 0===s)return{lineClassNames:{},code:n};const o=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return Oe(["js","jsBlock"],t);case"jsx":case"tsx":return Oe(["js","jsBlock","jsx"],t);case"html":return Oe(["js","jsBlock","html"],t);case"python":case"py":case"bash":return Oe(["bash"],t);case"markdown":case"md":return Oe(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return Oe(["tex"],t);case"lua":case"haskell":return Oe(["lua"],t);case"sql":return Oe(["lua","jsBlock"],t);case"wasm":return Oe(["wasm"],t);case"vb":case"vba":case"visual-basic":return Oe(["vb","rem"],t);case"vbnet":return Oe(["vbnet","rem"],t);case"batch":return Oe(["rem"],t);case"basic":return Oe(["rem","f90"],t);case"fsharp":return Oe(["js","ml"],t);case"ocaml":case"sml":return Oe(["ml"],t);case"fortran":return Oe(["f90"],t);case"cobol":return Oe(["cobol"],t);default:return Oe(Te,t)}}(s,a),l=n.split("\n"),c=Object.fromEntries(a.map((e=>[e.className,{start:0,range:""}]))),r=Object.fromEntries(a.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),u=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let h=0;hvoid 0!==e));r[t]?c[r[t]].range+=h+",":d[t]?c[d[t]].start=h:u[t]&&(c[u[t]].range+=c[u[t]].start+"-"+(h-1)+","),l.splice(h,1)}n=l.join("\n");const m={};return Object.entries(c).forEach((e=>{let[t,{range:n}]=e;ke()(n).forEach((e=>{null!=m[e]||(m[e]=[]),m[e].push(t)}))})),{lineClassNames:m,code:n}}const He="codeBlockContainer_Ckt0",Me=["as"];function Ie(e){let{as:t}=e,n=(0,H.A)(e,Me);const s=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[s,a]=e;const i=t[s];i&&"string"==typeof a&&(n[i]=a)})),n}(Ae());return(0,o.jsx)(t,Object.assign({},n,{style:s,className:(0,u.A)(n.className,He,v.G.common.codeBlock)}))}const Se={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function Ue(e){let{children:t,className:n}=e;return(0,o.jsx)(Ie,{as:"pre",tabIndex:0,className:(0,u.A)(Se.codeBlockStandalone,"thin-scrollbar",n),children:(0,o.jsx)("code",{className:Se.codeBlockLines,children:t})})}const Ve={attributes:!0,characterData:!0,childList:!0,subtree:!0};function Re(e,t){const[n,a]=(0,s.useState)(),o=(0,s.useCallback)((()=>{var t;a(null==(t=e.current)?void 0:t.closest("[role=tabpanel][hidden]"))}),[e,a]);(0,s.useEffect)((()=>{o()}),[o]),function(e,t,n){void 0===n&&(n=Ve);const a=(0,i._q)(t),o=(0,i.Be)(n);(0,s.useEffect)((()=>{const t=new MutationObserver(a);return e&&t.observe(e,o),()=>t.disconnect()}),[e,a,o])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var ze=n(1765);const Pe="codeLine_lJS_",Ge="codeLineNumber_Tfdd",De="codeLineContent_feaV";function Fe(e){let{line:t,classNames:n,showLineNumbers:s,getLineProps:a,getTokenProps:i}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const l=a({line:t,className:(0,u.A)(n,s&&Pe)}),c=t.map(((e,t)=>(0,o.jsx)("span",Object.assign({},i({token:e})),t)));return(0,o.jsxs)("span",Object.assign({},l,{children:[s?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("span",{className:Ge}),(0,o.jsx)("span",{className:De,children:c})]}):c,(0,o.jsx)("br",{})]}))}function We(e){return(0,o.jsx)("svg",Object.assign({viewBox:"0 0 24 24"},e,{children:(0,o.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})}))}function qe(e){return(0,o.jsx)("svg",Object.assign({viewBox:"0 0 24 24"},e,{children:(0,o.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})}))}const Ze={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function $e(e){let{code:t,className:n}=e;const[a,i]=(0,s.useState)(!1),l=(0,s.useRef)(void 0),c=(0,s.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError("Expected parameter `text` to be a `string`, got `"+typeof e+"`.");const s=document.createElement("textarea"),a=document.activeElement;s.value=e,s.setAttribute("readonly",""),s.style.contain="strict",s.style.position="absolute",s.style.left="-9999px",s.style.fontSize="12pt";const i=document.getSelection(),o=i.rangeCount>0&&i.getRangeAt(0);n.append(s),s.select(),s.selectionStart=0,s.selectionEnd=e.length;let l=!1;try{l=document.execCommand("copy")}catch(c){}s.remove(),o&&(i.removeAllRanges(),i.addRange(o)),a&&a.focus()}(t),i(!0),l.current=window.setTimeout((()=>{i(!1)}),1e3)}),[t]);return(0,s.useEffect)((()=>()=>window.clearTimeout(l.current)),[]),(0,o.jsx)("button",{type:"button","aria-label":a?(0,h.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,h.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,h.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,u.A)("clean-btn",n,Ze.copyButton,a&&Ze.copyButtonCopied),onClick:c,children:(0,o.jsxs)("span",{className:Ze.copyButtonIcons,"aria-hidden":"true",children:[(0,o.jsx)(We,{className:Ze.copyButtonIcon}),(0,o.jsx)(qe,{className:Ze.copyButtonSuccessIcon})]})})}function Je(e){return(0,o.jsx)("svg",Object.assign({viewBox:"0 0 24 24"},e,{children:(0,o.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})}))}const Ye="wordWrapButtonIcon_Bwma",Ke="wordWrapButtonEnabled_EoeP";function Qe(e){let{className:t,onClick:n,isEnabled:s}=e;const a=(0,h.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,o.jsx)("button",{type:"button",onClick:n,className:(0,u.A)("clean-btn",t,s&&Ke),"aria-label":a,title:a,children:(0,o.jsx)(Je,{className:Ye,"aria-hidden":"true"})})}function Xe(e){var t;let{children:n,className:a="",metastring:i,title:l,showLineNumbers:c,language:r}=e;const{prism:{defaultLanguage:d,magicComments:m}}=(0,q.p)(),h=function(e){return null==e?void 0:e.toLowerCase()}(null!=(t=null!=r?r:function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return null==t?void 0:t.replace(/language-/,"")}(a))?t:d),b=Ae(),p=function(){const[e,t]=(0,s.useState)(!1),[n,a]=(0,s.useState)(!1),i=(0,s.useRef)(null),o=(0,s.useCallback)((()=>{const n=i.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[i,e]),l=(0,s.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=i.current,n=e>t||i.current.querySelector("code").hasAttribute("style");a(n)}),[i]);return Re(i,l),(0,s.useEffect)((()=>{l()}),[e,l]),(0,s.useEffect)((()=>(window.addEventListener("resize",l,{passive:!0}),()=>{window.removeEventListener("resize",l)})),[l]),{codeBlockRef:i,isEnabled:e,isCodeScrollable:n,toggle:o}}(),g=function(e){var t,n;return null!=(t=null==e||null==(n=e.match(Le))?void 0:n.groups.title)?t:""}(i)||l,{lineClassNames:f,code:j}=Ee(n,{metastring:i,language:h,magicComments:m}),x=null!=c?c:function(e){return Boolean(null==e?void 0:e.includes("showLineNumbers"))}(i);return(0,o.jsxs)(Ie,{as:"div",className:(0,u.A)(a,h&&!a.includes("language-"+h)&&"language-"+h),children:[g&&(0,o.jsx)("div",{className:Se.codeBlockTitle,children:g}),(0,o.jsxs)("div",{className:Se.codeBlockContent,children:[(0,o.jsx)(ze.f4,{theme:b,code:j,language:null!=h?h:"text",children:e=>{let{className:t,style:n,tokens:s,getLineProps:a,getTokenProps:i}=e;return(0,o.jsx)("pre",{tabIndex:0,ref:p.codeBlockRef,className:(0,u.A)(t,Se.codeBlock,"thin-scrollbar"),style:n,children:(0,o.jsx)("code",{className:(0,u.A)(Se.codeBlockLines,x&&Se.codeBlockLinesWithNumbering),children:s.map(((e,t)=>(0,o.jsx)(Fe,{line:e,getLineProps:a,getTokenProps:i,classNames:f[t],showLineNumbers:x},t)))})})}}),(0,o.jsxs)("div",{className:Se.buttonGroup,children:[(p.isEnabled||p.isCodeScrollable)&&(0,o.jsx)(Qe,{className:Se.codeButton,onClick:()=>p.toggle(),isEnabled:p.isEnabled}),(0,o.jsx)($e,{className:Se.codeButton,code:j})]})]})]})}const et=["children"];function tt(e){let{children:t}=e,n=(0,H.A)(e,et);const a=(0,ve.A)(),i=function(e){return s.Children.toArray(e).some((e=>(0,s.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof i?Xe:Ue;return(0,o.jsx)(l,Object.assign({},n,{children:i}),String(a))}function nt(e){return(0,o.jsx)("code",Object.assign({},e))}var st=n(3427);const at="details_lb9f",it="isBrowser_bmU9",ot="collapsibleContent_i85q",lt=["summary","children"];function ct(e){return!!e&&("SUMMARY"===e.tagName||ct(e.parentElement))}function rt(e,t){return!!e&&(e===t||rt(e.parentElement,t))}function dt(e){let{summary:t,children:n}=e,a=(0,H.A)(e,lt);(0,st.A)().collectAnchor(a.id);const i=(0,ve.A)(),l=(0,s.useRef)(null),{collapsed:c,setCollapsed:r}=(0,W.u)({initialState:!a.open}),[d,m]=(0,s.useState)(a.open),h=s.isValidElement(t)?t:(0,o.jsx)("summary",{children:null!=t?t:"Details"});return(0,o.jsxs)("details",Object.assign({},a,{ref:l,open:d,"data-collapsed":c,className:(0,u.A)(at,i&&it,a.className),onMouseDown:e=>{ct(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;ct(t)&&rt(t,l.current)&&(e.preventDefault(),c?(r(!1),m(!0)):r(!0))},children:[h,(0,o.jsx)(W.N,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{r(e),m(!e)},children:(0,o.jsx)("div",{className:ot,children:n})})]}))}const ut="details_b_Ee";function mt(e){let t=Object.assign({},(function(e){if(null==e)throw new TypeError("Cannot destructure "+e)}(e),e));return(0,o.jsx)(dt,Object.assign({},t,{className:(0,u.A)("alert alert--info",ut,t.className)}))}function ht(e){const t=s.Children.toArray(e.children),n=t.find((e=>s.isValidElement(e)&&"summary"===e.type)),a=(0,o.jsx)(o.Fragment,{children:t.filter((e=>e!==n))});return(0,o.jsx)(mt,Object.assign({},e,{summary:n,children:a}))}function bt(e){return(0,o.jsx)(fe.A,Object.assign({},e))}const pt="containsTaskList_mC6p";function gt(e){if(void 0!==e)return(0,u.A)(e,(null==e?void 0:e.includes("contains-task-list"))&&pt)}const ft="img_ev3q";function jt(e){var t;const{mdxAdmonitionTitle:n,rest:a}=function(e){const t=s.Children.toArray(e),n=t.find((e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),a=t.filter((e=>e!==n));return{mdxAdmonitionTitle:null==n?void 0:n.props.children,rest:a.length>0?(0,o.jsx)(o.Fragment,{children:a}):null}}(e.children),i=null!=(t=e.title)?t:n;return Object.assign({},e,i&&{title:i},{children:a})}const xt="admonition_xJq3",vt="admonitionHeading_Gvgb",Nt="admonitionIcon_Rf37",At="admonitionContent_BuS1";function Ct(e){let{type:t,className:n,children:s}=e;return(0,o.jsx)("div",{className:(0,u.A)(v.G.common.admonition,v.G.common.admonitionType(t),xt,n),children:s})}function yt(e){let{icon:t,title:n}=e;return(0,o.jsxs)("div",{className:vt,children:[(0,o.jsx)("span",{className:Nt,children:t}),n]})}function kt(e){let{children:t}=e;return t?(0,o.jsx)("div",{className:At,children:t}):null}function Lt(e){const{type:t,icon:n,title:s,children:a,className:i}=e;return(0,o.jsxs)(Ct,{type:t,className:i,children:[s||n?(0,o.jsx)(yt,{title:s,icon:n}):null,(0,o.jsx)(kt,{children:a})]})}function _t(e){return(0,o.jsx)("svg",Object.assign({viewBox:"0 0 14 16"},e,{children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})}))}const Bt={icon:(0,o.jsx)(_t,{}),title:(0,o.jsx)(h.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function wt(e){return(0,o.jsx)(Lt,Object.assign({},Bt,e,{className:(0,u.A)("alert alert--secondary",e.className),children:e.children}))}function Tt(e){return(0,o.jsx)("svg",Object.assign({viewBox:"0 0 12 16"},e,{children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})}))}const Ot={icon:(0,o.jsx)(Tt,{}),title:(0,o.jsx)(h.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function Et(e){return(0,o.jsx)(Lt,Object.assign({},Ot,e,{className:(0,u.A)("alert alert--success",e.className),children:e.children}))}function Ht(e){return(0,o.jsx)("svg",Object.assign({viewBox:"0 0 14 16"},e,{children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})}))}const Mt={icon:(0,o.jsx)(Ht,{}),title:(0,o.jsx)(h.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function It(e){return(0,o.jsx)(Lt,Object.assign({},Mt,e,{className:(0,u.A)("alert alert--info",e.className),children:e.children}))}function St(e){return(0,o.jsx)("svg",Object.assign({viewBox:"0 0 16 16"},e,{children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})}))}const Ut={icon:(0,o.jsx)(St,{}),title:(0,o.jsx)(h.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function Vt(e){return(0,o.jsx)("svg",Object.assign({viewBox:"0 0 12 16"},e,{children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})}))}const Rt={icon:(0,o.jsx)(Vt,{}),title:(0,o.jsx)(h.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const zt={icon:(0,o.jsx)(St,{}),title:(0,o.jsx)(h.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const Pt={note:wt,tip:Et,info:It,warning:function(e){return(0,o.jsx)(Lt,Object.assign({},Ut,e,{className:(0,u.A)("alert alert--warning",e.className),children:e.children}))},danger:function(e){return(0,o.jsx)(Lt,Object.assign({},Rt,e,{className:(0,u.A)("alert alert--danger",e.className),children:e.children}))}},Gt={secondary:e=>(0,o.jsx)(wt,Object.assign({title:"secondary"},e)),important:e=>(0,o.jsx)(It,Object.assign({title:"important"},e)),success:e=>(0,o.jsx)(Et,Object.assign({title:"success"},e)),caution:function(e){return(0,o.jsx)(Lt,Object.assign({},zt,e,{className:(0,u.A)("alert alert--warning",e.className),children:e.children}))}},Dt=Object.assign({},Pt,Gt);function Ft(e){const t=jt(e),n=(s=t.type,Dt[s]||(console.warn('No admonition component found for admonition type "'+s+'". Using Info as fallback.'),Dt.info));var s;return(0,o.jsx)(n,Object.assign({},t))}const Wt={Head:xe.A,details:ht,Details:ht,code:function(e){return function(e){return void 0!==e.children&&s.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")))}(e)?(0,o.jsx)(nt,Object.assign({},e)):(0,o.jsx)(tt,Object.assign({},e))},a:function(e){return(0,o.jsx)(b.A,Object.assign({},e))},pre:function(e){return(0,o.jsx)(o.Fragment,{children:e.children})},ul:function(e){return(0,o.jsx)("ul",Object.assign({},e,{className:gt(e.className)}))},li:function(e){return(0,st.A)().collectAnchor(e.id),(0,o.jsx)("li",Object.assign({},e))},img:function(e){return(0,o.jsx)("img",Object.assign({decoding:"async",loading:"lazy"},e,{className:(t=e.className,(0,u.A)(t,ft))}));var t},h1:e=>(0,o.jsx)(bt,Object.assign({as:"h1"},e)),h2:e=>(0,o.jsx)(bt,Object.assign({as:"h2"},e)),h3:e=>(0,o.jsx)(bt,Object.assign({as:"h3"},e)),h4:e=>(0,o.jsx)(bt,Object.assign({as:"h4"},e)),h5:e=>(0,o.jsx)(bt,Object.assign({as:"h5"},e)),h6:e=>(0,o.jsx)(bt,Object.assign({as:"h6"},e)),admonition:Ft,mermaid:()=>null};function qt(e){let{children:t}=e;return(0,o.jsx)(je.x,{components:Wt,children:t})}function Zt(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=r();return t.hide_title||void 0!==n?null:e.title}();return(0,o.jsxs)("div",{className:(0,u.A)(v.G.docs.docMarkdown,"markdown"),children:[n&&(0,o.jsx)("header",{children:(0,o.jsx)(fe.A,{as:"h1",children:n})}),(0,o.jsx)(qt,{children:t})]})}var $t=n(6972),Jt=n(9169),Yt=n(6025);function Kt(e){return(0,o.jsx)("svg",Object.assign({viewBox:"0 0 24 24"},e,{children:(0,o.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})}))}const Qt={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function Xt(){const e=(0,Yt.Ay)("/");return(0,o.jsx)("li",{className:"breadcrumbs__item",children:(0,o.jsx)(b.A,{"aria-label":(0,h.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,o.jsx)(Kt,{className:Qt.breadcrumbHomeIcon})})})}const en={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function tn(e){let{children:t,href:n,isLast:s}=e;const a="breadcrumbs__link";return s?(0,o.jsx)("span",{className:a,itemProp:"name",children:t}):n?(0,o.jsx)(b.A,{className:a,href:n,itemProp:"item",children:(0,o.jsx)("span",{itemProp:"name",children:t})}):(0,o.jsx)("span",{className:a,children:t})}function nn(e){let{children:t,active:n,index:s,addMicrodata:a}=e;return(0,o.jsxs)("li",Object.assign({},a&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,u.A)("breadcrumbs__item",{"breadcrumbs__item--active":n}),children:[t,(0,o.jsx)("meta",{itemProp:"position",content:String(s+1)})]}))}function sn(){const e=(0,$t.OF)(),t=(0,Jt.Dt)();return e?(0,o.jsx)("nav",{className:(0,u.A)(v.G.docs.docBreadcrumbs,en.breadcrumbsContainer),"aria-label":(0,h.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,o.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,o.jsx)(Xt,{}),e.map(((t,n)=>{const s=n===e.length-1,a="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,o.jsx)(nn,{active:s,index:n,addMicrodata:!!a,children:(0,o.jsx)(tn,{href:a,isLast:s,children:t.label})},n)}))]})}):null}function an(){return(0,o.jsx)(h.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function on(){return(0,o.jsx)(h.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function ln(){return(0,o.jsx)(xe.A,{children:(0,o.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function cn(){return(0,o.jsx)(h.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function rn(){return(0,o.jsx)(h.A,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}function dn(e){let{className:t}=e;return(0,o.jsx)(Ft,{type:"caution",title:(0,o.jsx)(cn,{}),className:(0,u.A)(t,v.G.common.draftBanner),children:(0,o.jsx)(rn,{})})}function un(e){let{className:t}=e;return(0,o.jsx)(Ft,{type:"caution",title:(0,o.jsx)(an,{}),className:(0,u.A)(t,v.G.common.unlistedBanner),children:(0,o.jsx)(on,{})})}function mn(e){return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(ln,{}),(0,o.jsx)(un,Object.assign({},e))]})}function hn(e){let{metadata:t}=e;const{unlisted:n,frontMatter:s}=t;return(0,o.jsxs)(o.Fragment,{children:[(n||s.unlisted)&&(0,o.jsx)(mn,{}),s.draft&&(0,o.jsx)(dn,{})]})}const bn={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function pn(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=r(),n=(0,m.l)(),s=e.hide_table_of_contents,a=!s&&t.length>0;return{hidden:s,mobile:a?(0,o.jsx)(de,{}):void 0,desktop:!a||"desktop"!==n&&"ssr"!==n?void 0:(0,o.jsx)(ge,{})}}(),{metadata:s}=r();return(0,o.jsxs)("div",{className:"row",children:[(0,o.jsxs)("div",{className:(0,u.A)("col",!n.hidden&&bn.docItemCol),children:[(0,o.jsx)(hn,{metadata:s}),(0,o.jsx)(_,{}),(0,o.jsxs)("div",{className:bn.docItemContainer,children:[(0,o.jsxs)("article",{children:[(0,o.jsx)(sn,{}),(0,o.jsx)(B,{}),n.mobile,(0,o.jsx)(Zt,{children:t}),(0,o.jsx)(F,{})]}),(0,o.jsx)(f,{})]})]}),n.desktop&&(0,o.jsx)("div",{className:"col col--3",children:n.desktop})]})}function gn(e){const t="docs-doc-id-"+e.content.metadata.id,n=e.content;return(0,o.jsx)(c,{content:e.content,children:(0,o.jsxs)(a.e3,{className:t,children:[(0,o.jsx)(d,{}),(0,o.jsx)(pn,{children:(0,o.jsx)(n,{})})]})})}},8426:(e,t)=>{function n(e){let t,n=[];for(let s of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(s))n.push(parseInt(s,10));else if(t=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,a,i]=t;if(s&&i){s=parseInt(s),i=parseInt(i);const e=s{"use strict";n.d(t,{R:()=>o,x:()=>l});var s=n(6540);const a={},i=s.createContext(a);function o(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/17896441.a133d223.js b/assets/js/17896441.a133d223.js deleted file mode 100644 index 6872edff..00000000 --- a/assets/js/17896441.a133d223.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[7918],{3905:(e,t,n)=>{"use strict";n.d(t,{Zo:()=>u,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),s=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=s(e.components);return a.createElement(c.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=s(n),p=r,f=d["".concat(c,".").concat(p)]||d[p]||m[p]||o;return n?a.createElement(f,l(l({ref:t},u),{},{components:n})):a.createElement(f,l({ref:t},u))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=p;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var s=2;s{"use strict";n.r(t),n.d(t,{default:()=>Dt});var a=n(7294),r=n(1944),o=n(9688),l=a.createContext(null);function i(e){var t=e.children,n=function(e){return(0,a.useMemo)((function(){return{metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc}}),[e])}(e.content);return a.createElement(l.Provider,{value:n},t)}function c(){var e=(0,a.useContext)(l);if(null===e)throw new o.i6("DocProvider");return e}function s(){var e,t=c(),n=t.metadata,o=t.frontMatter,l=t.assets;return a.createElement(r.d,{title:n.title,description:n.description,keywords:o.keywords,image:null!=(e=l.image)?e:o.image})}var u=n(6010),d=n(7524),m=n(7462),p=n(5999),f=n(9960);function v(e){var t=e.permalink,n=e.title,r=e.subLabel,o=e.isNext;return a.createElement(f.Z,{className:(0,u.Z)("pagination-nav__link",o?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},r&&a.createElement("div",{className:"pagination-nav__sublabel"},r),a.createElement("div",{className:"pagination-nav__label"},n))}function h(e){var t=e.previous,n=e.next;return a.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,p.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&a.createElement(v,(0,m.Z)({},t,{subLabel:a.createElement(p.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),n&&a.createElement(v,(0,m.Z)({},n,{subLabel:a.createElement(p.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}function g(){var e=c().metadata;return a.createElement(h,{previous:e.previous,next:e.next})}var b=n(2263),E=n(143),y=n(5281),k=n(373),N=n(4477);var C={unreleased:function(e){var t=e.siteTitle,n=e.versionMetadata;return a.createElement(p.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){var t=e.siteTitle,n=e.versionMetadata;return a.createElement(p.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function L(e){var t=C[e.versionMetadata.banner];return a.createElement(t,e)}function T(e){var t=e.versionLabel,n=e.to,r=e.onClick;return a.createElement(p.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:a.createElement("b",null,a.createElement(f.Z,{to:n,onClick:r},a.createElement(p.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function Z(e){var t,n=e.className,r=e.versionMetadata,o=(0,b.Z)().siteConfig.title,l=(0,E.gA)({failfast:!0}).pluginId,i=(0,k.J)(l).savePreferredVersionName,c=(0,E.Jo)(l),s=c.latestDocSuggestion,d=c.latestVersionSuggestion,m=null!=s?s:(t=d).docs.find((function(e){return e.id===t.mainDocId}));return a.createElement("div",{className:(0,u.Z)(n,y.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},a.createElement("div",null,a.createElement(L,{siteTitle:o,versionMetadata:r})),a.createElement("div",{className:"margin-top--md"},a.createElement(T,{versionLabel:d.label,to:m.path,onClick:function(){return i(d.name)}})))}function _(e){var t=e.className,n=(0,N.E)();return n.banner?a.createElement(Z,{className:t,versionMetadata:n}):null}function w(e){var t=e.className,n=(0,N.E)();return n.badge?a.createElement("span",{className:(0,u.Z)(t,y.k.docs.docVersionBadge,"badge badge--secondary")},a.createElement(p.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label}},"Version: {versionLabel}")):null}function x(e){var t=e.lastUpdatedAt,n=e.formattedLastUpdatedAt;return a.createElement(p.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:a.createElement("b",null,a.createElement("time",{dateTime:new Date(1e3*t).toISOString()},n))}}," on {date}")}function B(e){var t=e.lastUpdatedBy;return a.createElement(p.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:a.createElement("b",null,t)}}," by {user}")}function O(e){var t=e.lastUpdatedAt,n=e.formattedLastUpdatedAt,r=e.lastUpdatedBy;return a.createElement("span",{className:y.k.common.lastUpdated},a.createElement(p.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?a.createElement(x,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:r?a.createElement(B,{lastUpdatedBy:r}):""}},"Last updated{atDate}{byUser}"),!1)}var H=n(3366);const j={iconEdit:"iconEdit_Z9Sw"};var A=["className"];function I(e){var t=e.className,n=(0,H.Z)(e,A);return a.createElement("svg",(0,m.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,u.Z)(j.iconEdit,t),"aria-hidden":"true"},n),a.createElement("g",null,a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function S(e){var t=e.editUrl;return a.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:y.k.common.editThisPage},a.createElement(I,null),a.createElement(p.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}const M={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function P(e){var t=e.permalink,n=e.label,r=e.count;return a.createElement(f.Z,{href:t,className:(0,u.Z)(M.tag,r?M.tagWithCount:M.tagRegular)},n,r&&a.createElement("span",null,r))}const U={tags:"tags_jXut",tag:"tag_QGVx"};function z(e){var t=e.tags;return a.createElement(a.Fragment,null,a.createElement("b",null,a.createElement(p.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),a.createElement("ul",{className:(0,u.Z)(U.tags,"padding--none","margin-left--sm")},t.map((function(e){var t=e.label,n=e.permalink;return a.createElement("li",{key:n,className:U.tag},a.createElement(P,{label:t,permalink:n}))}))))}const V={lastUpdated:"lastUpdated_vwxv"};function D(e){return a.createElement("div",{className:(0,u.Z)(y.k.docs.docFooterTagsRow,"row margin-bottom--sm")},a.createElement("div",{className:"col"},a.createElement(z,e)))}function R(e){var t=e.editUrl,n=e.lastUpdatedAt,r=e.lastUpdatedBy,o=e.formattedLastUpdatedAt;return a.createElement("div",{className:(0,u.Z)(y.k.docs.docFooterEditMetaRow,"row")},a.createElement("div",{className:"col"},t&&a.createElement(S,{editUrl:t})),a.createElement("div",{className:(0,u.Z)("col",V.lastUpdated)},(n||r)&&a.createElement(O,{lastUpdatedAt:n,formattedLastUpdatedAt:o,lastUpdatedBy:r})))}function W(){var e=c().metadata,t=e.editUrl,n=e.lastUpdatedAt,r=e.formattedLastUpdatedAt,o=e.lastUpdatedBy,l=e.tags,i=l.length>0,s=!!(t||n||o);return i||s?a.createElement("footer",{className:(0,u.Z)(y.k.docs.docFooter,"docusaurus-mt-lg")},i&&a.createElement(D,{tags:l}),s&&a.createElement(R,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:o,formattedLastUpdatedAt:r})):null}var F=n(6043),q=n(6668),G=["parentIndex"];function Y(e){var t=e.map((function(e){return Object.assign({},e,{parentIndex:-1,children:[]})})),n=Array(7).fill(-1);t.forEach((function(e,t){var a=n.slice(2,e.level);e.parentIndex=Math.max.apply(Math,a),n[e.level]=t}));var a=[];return t.forEach((function(e){var n=e.parentIndex,r=(0,H.Z)(e,G);n>=0?t[n].children.push(r):a.push(r)})),a}function $(e){var t=e.toc,n=e.minHeadingLevel,a=e.maxHeadingLevel;return t.flatMap((function(e){var t=$({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[Object.assign({},e,{children:t})]:t}))}function J(e){var t=e.getBoundingClientRect();return t.top===t.bottom?J(e.parentNode):t}function Q(e,t){var n,a,r=t.anchorTopOffset,o=e.find((function(e){return J(e).top>=r}));return o?function(e){return e.top>0&&e.bottom0})).map((function(e){return[e-1,[i]]}));return{lineClassNames:Object.fromEntries(c),code:n}}if(void 0===a)return{lineClassNames:{},code:n};for(var s=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return He(["js","jsBlock"],t);case"jsx":case"tsx":return He(["js","jsBlock","jsx"],t);case"html":return He(["js","jsBlock","html"],t);case"python":case"py":case"bash":return He(["bash"],t);case"markdown":case"md":return He(["html","jsx","bash"],t);default:return He(Object.keys(Oe),t)}}(a,r),u=n.split("\n"),d=Object.fromEntries(r.map((function(e){return[e.className,{start:0,range:""}]}))),m=Object.fromEntries(r.filter((function(e){return e.line})).map((function(e){var t=e.className;return[e.line,t]}))),p=Object.fromEntries(r.filter((function(e){return e.block})).map((function(e){var t=e.className;return[e.block.start,t]}))),f=Object.fromEntries(r.filter((function(e){return e.block})).map((function(e){var t=e.className;return[e.block.end,t]}))),v=0;v0&&e[n-1]===t?e:e.concat(t)};function Ye(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}var $e=function(e){function t(){for(var t=this,n=[],a=arguments.length;a--;)n[a]=arguments[a];e.apply(this,n),Re(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?function(e,t){var n=e.plain,a=Object.create(null),r=e.styles.reduce((function(e,n){var a=n.languages,r=n.style;return a&&!a.includes(t)||n.types.forEach((function(t){var n=We({},e[t],r);e[t]=n})),e}),a);return r.root=n,r.plain=We({},n,{backgroundColor:null}),r}(e.theme,e.language):void 0;return t.themeDict=n})),Re(this,"getLineProps",(function(e){var n=e.key,a=e.className,r=e.style,o=We({},Ye(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),l=t.getThemeDict(t.props);return void 0!==l&&(o.style=l.plain),void 0!==r&&(o.style=void 0!==o.style?We({},o.style,r):r),void 0!==n&&(o.key=n),a&&(o.className+=" "+a),o})),Re(this,"getStyleForToken",(function(e){var n=e.types,a=e.empty,r=n.length,o=t.getThemeDict(t.props);if(void 0!==o){if(1===r&&"plain"===n[0])return a?{display:"inline-block"}:void 0;if(1===r&&!a)return o[n[0]];var l=a?{display:"inline-block"}:{},i=n.map((function(e){return o[e]}));return Object.assign.apply(Object,[l].concat(i))}})),Re(this,"getTokenProps",(function(e){var n=e.key,a=e.className,r=e.style,o=e.token,l=We({},Ye(e,["key","className","style","token"]),{className:"token "+o.types.join(" "),children:o.content,style:t.getStyleForToken(o),key:void 0});return void 0!==r&&(l.style=void 0!==l.style?We({},l.style,r):r),void 0!==n&&(l.key=n),a&&(l.className+=" "+a),l})),Re(this,"tokenize",(function(e,t,n,a){var r={code:t,grammar:n,language:a,tokens:[]};e.hooks.run("before-tokenize",r);var o=r.tokens=e.tokenize(r.code,r.grammar,r.language);return e.hooks.run("after-tokenize",r),o}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,a=e.code,r=e.children,o=this.getThemeDict(this.props),l=t.languages[n];return r({tokens:function(e){for(var t=[[]],n=[e],a=[0],r=[e.length],o=0,l=0,i=[],c=[i];l>-1;){for(;(o=a[l]++)0?u:["plain"],s=d):(u=Ge(u,d.type),d.alias&&(u=Ge(u,d.alias)),s=d.content),"string"==typeof s){var m=s.split(Fe),p=m.length;i.push({types:u,content:m[0]});for(var f=1;f0&&l.getRangeAt(0);a.append(r),r.select(),r.selectionStart=0,r.selectionEnd=e.length;var c=!1;try{c=document.execCommand("copy")}catch(s){}r.remove(),i&&(l.removeAllRanges(),l.addRange(i)),o&&o.focus()}(t),l(!0),i.current=window.setTimeout((function(){l(!1)}),1e3)}),[t]);return(0,a.useEffect)((function(){return function(){return window.clearTimeout(i.current)}}),[]),a.createElement("button",{type:"button","aria-label":o?(0,p.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,p.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,p.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,u.Z)("clean-btn",n,tt.copyButton,o&&tt.copyButtonCopied),onClick:c},a.createElement("span",{className:tt.copyButtonIcons,"aria-hidden":"true"},a.createElement(Ke,{className:tt.copyButtonIcon}),a.createElement(et,{className:tt.copyButtonSuccessIcon})))}function at(e){return a.createElement("svg",(0,m.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}))}const rt={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function ot(e){var t=e.className,n=e.onClick,r=e.isEnabled,o=(0,p.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return a.createElement("button",{type:"button",onClick:n,className:(0,u.Z)("clean-btn",t,r&&rt.wordWrapButtonEnabled),"aria-label":o,title:o},a.createElement(at,{className:rt.wordWrapButtonIcon,"aria-hidden":"true"}))}function lt(e){var t,n,r,o,l,i,c,s,d,p,f,v=e.children,h=e.className,g=void 0===h?"":h,b=e.metastring,E=e.title,y=e.showLineNumbers,k=e.language,N=(0,q.L)().prism,C=N.defaultLanguage,L=N.magicComments,T=null!=(t=null!=k?k:null==(n=g.split(" ").find((function(e){return e.startsWith("language-")})))?void 0:n.replace(/language-/,""))?t:C,Z=Te(),_=(r=(0,a.useState)(!1),o=r[0],l=r[1],i=(0,a.useState)(!1),c=i[0],s=i[1],d=(0,a.useRef)(null),p=(0,a.useCallback)((function(){var e=d.current.querySelector("code");o?e.removeAttribute("style"):(e.style.whiteSpace="pre-wrap",e.style.overflowWrap="anywhere"),l((function(e){return!e}))}),[d,o]),f=(0,a.useCallback)((function(){var e=d.current,t=e.scrollWidth>e.clientWidth||d.current.querySelector("code").hasAttribute("style");s(t)}),[d]),ze(d,f),(0,a.useEffect)((function(){f()}),[o,f]),(0,a.useEffect)((function(){return window.addEventListener("resize",f,{passive:!0}),function(){window.removeEventListener("resize",f)}}),[f]),{codeBlockRef:d,isEnabled:o,isCodeScrollable:c,toggle:p}),w=function(e){var t,n;return null!=(t=null==e||null==(n=e.match(xe))?void 0:n.groups.title)?t:""}(b)||E,x=je(v,{metastring:b,language:T,magicComments:L}),B=x.lineClassNames,O=x.code,H=null!=y?y:function(e){return Boolean(null==e?void 0:e.includes("showLineNumbers"))}(b);return a.createElement(Se,{as:"div",className:(0,u.Z)(g,T&&!g.includes("language-"+T)&&"language-"+T)},w&&a.createElement("div",{className:Me.codeBlockTitle},w),a.createElement("div",{className:Me.codeBlockContent},a.createElement(Je,(0,m.Z)({},De,{theme:Z,code:O,language:null!=T?T:"text"}),(function(e){var t=e.className,n=e.tokens,r=e.getLineProps,o=e.getTokenProps;return a.createElement("pre",{tabIndex:0,ref:_.codeBlockRef,className:(0,u.Z)(t,Me.codeBlock,"thin-scrollbar")},a.createElement("code",{className:(0,u.Z)(Me.codeBlockLines,H&&Me.codeBlockLinesWithNumbering)},n.map((function(e,t){return a.createElement(Xe,{key:t,line:e,getLineProps:r,getTokenProps:o,classNames:B[t],showLineNumbers:H})}))))})),a.createElement("div",{className:Me.buttonGroup},(_.isEnabled||_.isCodeScrollable)&&a.createElement(ot,{className:Me.codeButton,onClick:function(){return _.toggle()},isEnabled:_.isEnabled}),a.createElement(nt,{className:Me.codeButton,code:O}))))}var it=["children"];function ct(e){var t=e.children,n=(0,H.Z)(e,it),r=(0,Ce.Z)(),o=function(e){return a.Children.toArray(e).some((function(e){return(0,a.isValidElement)(e)}))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof o?lt:Pe;return a.createElement(l,(0,m.Z)({key:String(r)},n),o)}const st={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};var ut=["summary","children"];function dt(e){return!!e&&("SUMMARY"===e.tagName||dt(e.parentElement))}function mt(e,t){return!!e&&(e===t||mt(e.parentElement,t))}function pt(e){var t=e.summary,n=e.children,r=(0,H.Z)(e,ut),o=(0,Ce.Z)(),l=(0,a.useRef)(null),i=(0,F.u)({initialState:!r.open}),c=i.collapsed,s=i.setCollapsed,d=(0,a.useState)(r.open),p=d[0],f=d[1],v=a.isValidElement(t)?t:a.createElement("summary",null,null!=t?t:"Details");return a.createElement("details",(0,m.Z)({},r,{ref:l,open:p,"data-collapsed":c,className:(0,u.Z)(st.details,o&&st.isBrowser,r.className),onMouseDown:function(e){dt(e.target)&&e.detail>1&&e.preventDefault()},onClick:function(e){e.stopPropagation();var t=e.target;dt(t)&&mt(t,l.current)&&(e.preventDefault(),c?(s(!1),f(!0)):s(!0))}}),v,a.createElement(F.z,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:function(e){s(e),f(!e)}},a.createElement("div",{className:st.collapsibleContent},n)))}const ft={details:"details_b_Ee"};var vt="alert alert--info";function ht(e){var t=Object.assign({},(function(e){if(null==e)throw new TypeError("Cannot destructure "+e)}(e),e));return a.createElement(pt,(0,m.Z)({},t,{className:(0,u.Z)(vt,ft.details,t.className)}))}function gt(e){return a.createElement(Ee,e)}const bt={containsTaskList:"containsTaskList_mC6p"};const Et={img:"img_ev3q"};const yt="admonition_LlT9",kt="admonitionHeading_tbUL",Nt="admonitionIcon_kALy",Ct="admonitionContent_S0QG";var Lt={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(p.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(p.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(p.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(p.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(p.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},Tt={secondary:"note",important:"info",success:"tip",warning:"danger"};function Zt(e){var t,n=function(e){var t=a.Children.toArray(e),n=t.find((function(e){var t;return a.isValidElement(e)&&"mdxAdmonitionTitle"===(null==(t=e.props)?void 0:t.mdxType)})),r=a.createElement(a.Fragment,null,t.filter((function(e){return e!==n})));return{mdxAdmonitionTitle:n,rest:r}}(e.children),r=n.mdxAdmonitionTitle,o=n.rest;return Object.assign({},e,{title:null!=(t=e.title)?t:r,children:o})}const _t={head:function(e){var t=a.Children.map(e.children,(function(e){return a.isValidElement(e)?function(e){var t;if(null!=(t=e.props)&&t.mdxType&&e.props.originalType){var n=e.props,r=(n.mdxType,n.originalType,(0,H.Z)(n,Ne));return a.createElement(e.props.originalType,r)}return e}(e):e}));return a.createElement(ke.Z,e,t)},code:function(e){var t=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return a.Children.toArray(e.children).every((function(e){var n;return"string"==typeof e&&!e.includes("\n")||(0,a.isValidElement)(e)&&t.includes(null==(n=e.props)?void 0:n.mdxType)}))?a.createElement("code",e):a.createElement(ct,e)},a:function(e){return a.createElement(f.Z,e)},pre:function(e){var t;return a.createElement(ct,(0,a.isValidElement)(e.children)&&"code"===(null==(t=e.children.props)?void 0:t.originalType)?e.children.props:Object.assign({},e))},details:function(e){var t=a.Children.toArray(e.children),n=t.find((function(e){var t;return a.isValidElement(e)&&"summary"===(null==(t=e.props)?void 0:t.mdxType)})),r=a.createElement(a.Fragment,null,t.filter((function(e){return e!==n})));return a.createElement(ht,(0,m.Z)({},e,{summary:n}),r)},ul:function(e){return a.createElement("ul",(0,m.Z)({},e,{className:(t=e.className,(0,u.Z)(t,(null==t?void 0:t.includes("contains-task-list"))&&bt.containsTaskList))}));var t},img:function(e){return a.createElement("img",(0,m.Z)({loading:"lazy"},e,{className:(t=e.className,(0,u.Z)(t,Et.img))}));var t},h1:function(e){return a.createElement(gt,(0,m.Z)({as:"h1"},e))},h2:function(e){return a.createElement(gt,(0,m.Z)({as:"h2"},e))},h3:function(e){return a.createElement(gt,(0,m.Z)({as:"h3"},e))},h4:function(e){return a.createElement(gt,(0,m.Z)({as:"h4"},e))},h5:function(e){return a.createElement(gt,(0,m.Z)({as:"h5"},e))},h6:function(e){return a.createElement(gt,(0,m.Z)({as:"h6"},e))},admonition:function(e){var t=Zt(e),n=t.children,r=t.type,o=t.title,l=t.icon,i=function(e){var t,n=null!=(t=Tt[e])?t:e,a=Lt[n];return a||(console.warn('No admonition config found for admonition type "'+n+'". Using Info as fallback.'),Lt.info)}(r),c=null!=o?o:i.label,s=i.iconComponent,d=null!=l?l:a.createElement(s,null);return a.createElement("div",{className:(0,u.Z)(y.k.common.admonition,y.k.common.admonitionType(e.type),"alert","alert--"+i.infimaClassName,yt)},a.createElement("div",{className:kt},a.createElement("span",{className:Nt},d),c),a.createElement("div",{className:Ct},n))},mermaid:function(){return null}};function wt(e){var t=e.children;return a.createElement(ye.Zo,{components:_t},t)}function xt(e){var t,n,r,o,l=e.children,i=(t=c(),n=t.metadata,r=t.frontMatter,o=t.contentTitle,r.hide_title||void 0!==o?null:n.title);return a.createElement("div",{className:(0,u.Z)(y.k.docs.docMarkdown,"markdown")},i&&a.createElement("header",null,a.createElement(Ee,{as:"h1"},i)),a.createElement(wt,null,l))}var Bt=n(3438),Ot=n(8596),Ht=n(4996);function jt(e){return a.createElement("svg",(0,m.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const At={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function It(){var e=(0,Ht.Z)("/");return a.createElement("li",{className:"breadcrumbs__item"},a.createElement(f.Z,{"aria-label":(0,p.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},a.createElement(jt,{className:At.breadcrumbHomeIcon})))}const St={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function Mt(e){var t=e.children,n=e.href,r="breadcrumbs__link";return e.isLast?a.createElement("span",{className:r,itemProp:"name"},t):n?a.createElement(f.Z,{className:r,href:n,itemProp:"item"},a.createElement("span",{itemProp:"name"},t)):a.createElement("span",{className:r},t)}function Pt(e){var t=e.children,n=e.active,r=e.index,o=e.addMicrodata;return a.createElement("li",(0,m.Z)({},o&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,u.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,a.createElement("meta",{itemProp:"position",content:String(r+1)}))}function Ut(){var e=(0,Bt.s1)(),t=(0,Ot.Ns)();return e?a.createElement("nav",{className:(0,u.Z)(y.k.docs.docBreadcrumbs,St.breadcrumbsContainer),"aria-label":(0,p.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},a.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&a.createElement(It,null),e.map((function(t,n){var r=n===e.length-1;return a.createElement(Pt,{key:n,active:r,index:n,addMicrodata:!!t.href},a.createElement(Mt,{href:t.href,isLast:r},t.label))})))):null}const zt={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function Vt(e){var t,n,r,o,l,i,s=e.children,m=(t=c(),n=t.frontMatter,r=t.toc,o=(0,d.i)(),l=n.hide_table_of_contents,i=!l&&r.length>0,{hidden:l,mobile:i?a.createElement(ue,null):void 0,desktop:!i||"desktop"!==o&&"ssr"!==o?void 0:a.createElement(he,null)});return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,u.Z)("col",!m.hidden&&zt.docItemCol)},a.createElement(_,null),a.createElement("div",{className:zt.docItemContainer},a.createElement("article",null,a.createElement(Ut,null),a.createElement(w,null),m.mobile,a.createElement(xt,null,s),a.createElement(W,null)),a.createElement(g,null))),m.desktop&&a.createElement("div",{className:"col col--3"},m.desktop))}function Dt(e){var t="docs-doc-id-"+e.content.metadata.unversionedId,n=e.content;return a.createElement(i,{content:e.content},a.createElement(r.FG,{className:t},a.createElement(s,null),a.createElement(Vt,null,a.createElement(n,null))))}},4477:(e,t,n)=>{"use strict";n.d(t,{E:()=>i,q:()=>l});var a=n(7294),r=n(9688),o=a.createContext(null);function l(e){var t=e.children,n=e.version;return a.createElement(o.Provider,{value:n},t)}function i(){var e=(0,a.useContext)(o);if(null===e)throw new r.i6("DocsVersionProvider");return e}},7594:(e,t)=>{function n(e){let t,n=[];for(let a of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(a))n.push(parseInt(a,10));else if(t=a.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,a,r,o]=t;if(a&&o){a=parseInt(a),o=parseInt(o);const e=a{r.r(t),r.d(t,{default:()=>N});var a=r(7855),n=r(4165),l=r(5861),c=r(7294),s=r(2263),u=r(179),o=r(5742),m=r(9960),i=r(5999),h=["zero","one","two","few","many","other"];function p(e){return h.filter((function(t){return e.includes(t)}))}var f={locale:"en",pluralForms:p(["one","other"]),select:function(e){return 1===e?"one":"other"}};function g(){var e=(0,s.Z)().i18n.currentLocale;return(0,c.useMemo)((function(){try{return t=e,r=new Intl.PluralRules(t),{locale:t,pluralForms:p(r.resolvedOptions().pluralCategories),select:function(e){return r.select(e)}}}catch(a){return console.error('Failed to use Intl.PluralRules for locale "'+e+'".\nDocusaurus will fallback to the default (English) implementation.\nError: '+a.message+"\n"),f}var t,r}),[e])}function d(){var e=g();return{selectMessage:function(t,r){return function(e,t,r){var a=e.split("|");if(1===a.length)return a[0];a.length>r.pluralForms.length&&console.error("For locale="+r.locale+", a maximum of "+r.pluralForms.length+" plural forms are expected ("+r.pluralForms.join(",")+"), but the message contains "+a.length+": "+e);var n=r.select(t),l=r.pluralForms.indexOf(n);return a[Math.min(l,a.length-1)]}(r,t,e)}}}var v=r(6010),y=r(6550),E=r(412);const S=function(){var e=(0,y.k6)(),t=(0,y.TH)(),r=(0,s.Z)().siteConfig.baseUrl,a=E.Z.canUseDOM?new URLSearchParams(t.search):null,n=(null==a?void 0:a.get("q"))||"",l=(null==a?void 0:a.get("ctx"))||"",c=(null==a?void 0:a.get("version"))||"",u=function(e){var r=new URLSearchParams(t.search);return e?r.set("q",e):r.delete("q"),r};return{searchValue:n,searchContext:l,searchVersion:c,updateSearchPath:function(t){var r=u(t);e.replace({search:r.toString()})},updateSearchContext:function(r){var a=new URLSearchParams(t.search);a.set("ctx",r),e.replace({search:a.toString()})},generateSearchPageLink:function(e){var t=u(e);return r+"search?"+t.toString()}}};var C=r(22),x=r(8202),I=r(2539),w=r(726),R=r(1073),_=r(311),P=r(3926),b=r(1029);const Z={searchContextInput:"searchContextInput_mXoe",searchQueryInput:"searchQueryInput_CFBF",searchResultItem:"searchResultItem_U687",searchResultItemPath:"searchResultItemPath_uIbk",searchResultItemSummary:"searchResultItemSummary_oZHr",searchQueryColumn:"searchQueryColumn_q7nx",searchContextColumn:"searchContextColumn_oWAF"};function F(){var e,t=(0,s.Z)().siteConfig.baseUrl,r=d().selectMessage,a=S(),u=a.searchValue,m=a.searchContext,h=a.searchVersion,p=a.updateSearchPath,f=a.updateSearchContext,g=(0,c.useState)(u),y=g[0],E=g[1],I=(0,c.useState)(),w=I[0],R=I[1],P=(0,c.useState)(),F=P[0],N=P[1],q=""+t+h,A=(0,c.useMemo)((function(){return y?(0,i.I)({id:"theme.SearchPage.existingResultsTitle",message:'Search results for "{query}"',description:"The search page title for non-empty query"},{query:y}):(0,i.I)({id:"theme.SearchPage.emptyResultsTitle",message:"Search the documentation",description:"The search page title for empty query"})}),[y]);(0,c.useEffect)((function(){p(y),w&&(y?w(y,(function(e){N(e)})):N(void 0))}),[y,w]);var T=(0,c.useCallback)((function(e){E(e.target.value)}),[]);return(0,c.useEffect)((function(){u&&u!==y&&E(u)}),[u]),(0,c.useEffect)((function(){function e(){return(e=(0,l.Z)((0,n.Z)().mark((function e(){var t,r,a;return(0,n.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,C.w)(q,m);case 2:t=e.sent,r=t.wrappedIndexes,a=t.zhDictionary,R((function(){return(0,x.v)(r,a,100)}));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}!function(){e.apply(this,arguments)}()}),[m,q]),c.createElement(c.Fragment,null,c.createElement(o.Z,null,c.createElement("meta",{property:"robots",content:"noindex, follow"}),c.createElement("title",null,A)),c.createElement("div",{className:"container margin-vert--lg"},c.createElement("h1",null,A),c.createElement("div",{className:"row"},c.createElement("div",{className:(0,v.Z)("col",(e={},e[Z.searchQueryColumn]=Array.isArray(b.Kc),e["col--9"]=Array.isArray(b.Kc),e["col--12"]=!Array.isArray(b.Kc),e))},c.createElement("input",{type:"search",name:"q",className:Z.searchQueryInput,"aria-label":"Search",onChange:T,value:y,autoComplete:"off",autoFocus:!0})),Array.isArray(b.Kc)?c.createElement("div",{className:(0,v.Z)("col","col--3","padding-left--none",Z.searchContextColumn)},c.createElement("select",{name:"search-context",className:Z.searchContextInput,id:"context-selector",value:m,onChange:function(e){return f(e.target.value)}},c.createElement("option",{value:""},b.pQ?(0,i.I)({id:"theme.SearchPage.searchContext.everywhere",message:"everywhere"}):""),b.Kc.map((function(e){return c.createElement("option",{key:e,value:e},e)})))):null),!w&&y&&c.createElement("div",null,c.createElement(_.Z,null)),F&&(F.length>0?c.createElement("p",null,r(F.length,(0,i.I)({id:"theme.SearchPage.documentsFound.plurals",message:"1 document found|{count} documents found",description:'Pluralized label for "{count} documents found". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)'},{count:F.length}))):c.createElement("p",null,(0,i.I)({id:"theme.SearchPage.noResultsText",message:"No documents were found",description:"The paragraph for empty search result"}))),c.createElement("section",null,F&&F.map((function(e){return c.createElement(k,{key:e.document.i,searchResult:e})})))))}function k(e){var t=e.searchResult,r=t.document,n=t.type,l=t.page,s=t.tokens,u=t.metadata,o=0===n,i=2===n,h=(o?r.b:l.b).slice(),p=i?r.s:r.t;o||h.push(l.t);var f="";if(b.vc&&s.length>0){for(var g,d=new URLSearchParams,v=(0,a.Z)(s);!(g=v()).done;){var y=g.value;d.append("_highlight",y)}f="?"+d.toString()}return c.createElement("article",{className:Z.searchResultItem},c.createElement("h2",null,c.createElement(m.Z,{to:r.u+f+(r.h||""),dangerouslySetInnerHTML:{__html:i?(0,I.C)(p,s):(0,w.o)(p,(0,R.m)(u,"t"),s,100)}})),h.length>0&&c.createElement("p",{className:Z.searchResultItemPath},(0,P.e)(h)),i&&c.createElement("p",{className:Z.searchResultItemSummary,dangerouslySetInnerHTML:{__html:(0,w.o)(r.t,(0,R.m)(u,"t"),s,100)}}))}const N=function(){return c.createElement(u.Z,null,c.createElement(F,null))}}}]); \ No newline at end of file diff --git a/assets/js/1b252c8c.54702582.js b/assets/js/1b252c8c.54702582.js new file mode 100644 index 00000000..b0697024 --- /dev/null +++ b/assets/js/1b252c8c.54702582.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[7359],{81:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>t,metadata:()=>i,toc:()=>o});const i=JSON.parse('{"id":"whats-new","title":"What\'s new","description":"react-map-gl v8.0","source":"@site/../docs/whats-new.md","sourceDirName":".","slug":"/whats-new","permalink":"/react-map-gl/docs/whats-new","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/whats-new.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"Introduction","permalink":"/react-map-gl/docs/"},"next":{"title":"Upgrade Guide","permalink":"/react-map-gl/docs/upgrade-guide"}}');var l=r(4848),s=r(8453);const t={},a="What's new",c={},o=[{value:"react-map-gl v8.0",id:"react-map-gl-v80",level:2},{value:"react-map-gl v7.1",id:"react-map-gl-v71",level:2},{value:"react-map-gl v7.0",id:"react-map-gl-v70",level:2},{value:"react-map-gl v5.3/v6.1",id:"react-map-gl-v53v61",level:2},{value:"Highlights",id:"highlights",level:3},{value:"react-map-gl v6.0",id:"react-map-gl-v60",level:2},{value:"What's Changed",id:"whats-changed",level:3},{value:"react-map-gl v5.2",id:"react-map-gl-v52",level:2},{value:"Highlights",id:"highlights-1",level:3},{value:"react-map-gl v5.1",id:"react-map-gl-v51",level:2},{value:"Highlights",id:"highlights-2",level:3},{value:"react-map-gl v5.0",id:"react-map-gl-v50",level:2},{value:"What's Changed",id:"whats-changed-1",level:3},{value:"react-map-gl v4.1",id:"react-map-gl-v41",level:2},{value:"Highlights",id:"highlights-3",level:3},{value:"react-map-gl v4.0",id:"react-map-gl-v40",level:2},{value:"Highlights",id:"highlights-4",level:3},{value:"react-map-gl v3.3",id:"react-map-gl-v33",level:2},{value:"Highlights",id:"highlights-5",level:3},{value:"react-map-gl v3.2",id:"react-map-gl-v32",level:2},{value:"Highlights",id:"highlights-6",level:3},{value:"react-map-gl v3.1",id:"react-map-gl-v31",level:2},{value:"Highlights",id:"highlights-7",level:3},{value:"react-map-gl v3.0",id:"react-map-gl-v30",level:2},{value:"Highlights",id:"highlights-8",level:3},{value:"Components",id:"components",level:3},{value:"InteractiveMap (New, MapGL replacement)",id:"interactivemap-new-mapgl-replacement",level:4},{value:"StaticMap (New)",id:"staticmap-new",level:4},{value:"Overlays",id:"overlays",level:4},{value:"Property Changes",id:"property-changes",level:3},{value:"Utilities",id:"utilities",level:3},{value:"react-map-gl v2.0",id:"react-map-gl-v20",level:2},{value:"Highlights",id:"highlights-9",level:3},{value:"react-map-gl v1.0",id:"react-map-gl-v10",level:2},{value:"react-map-gl v0.6",id:"react-map-gl-v06",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.header,{children:(0,l.jsx)(n.h1,{id:"whats-new",children:"What's new"})}),"\n",(0,l.jsx)(n.h2,{id:"react-map-gl-v80",children:"react-map-gl v8.0"}),"\n",(0,l.jsx)(n.p,{children:"Release date: Jan 2025"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["First version to support Mapbox GL JS' official types and MapLibre GL JS v5.\nThis version fully separates the code that support each compatible map library:","\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.code,{children:"react-map-gl/mapbox"}),": for use with ",(0,l.jsx)(n.code,{children:"mapbox-gl>=3.5.0"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.code,{children:"react-map-gl/maplibre"}),": for use with ",(0,l.jsx)(n.code,{children:"maplibre-gl>=4"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.code,{children:"react-map-gl/mapbox-legacy"}),": for use with ",(0,l.jsx)(n.code,{children:"mapbox-gl"})," v1.x and v2.x and ",(0,l.jsx)(n.code,{children:"@types/mapbox-gl"})]}),"\n"]}),"\n"]}),"\n",(0,l.jsx)(n.li,{children:"As a result, each endpoint now have slightly smaller bundle size and more precise types."}),"\n",(0,l.jsxs)(n.li,{children:["Maplibre wrapper is expected to have better functionality and performance than v7 by utilizing an ",(0,l.jsx)(n.a,{href:"https://github.com/maplibre/maplibre-gl-js/issues/1545",children:"upstream API"})," for the React use case."]}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["For a full list of breaking changes, please visit the ",(0,l.jsx)(n.a,{href:"/react-map-gl/docs/upgrade-guide#upgrading-to-v80",children:"upgrade guide"}),"."]}),"\n",(0,l.jsx)(n.h2,{id:"react-map-gl-v71",children:"react-map-gl v7.1"}),"\n",(0,l.jsx)(n.p,{children:"Release date: June 2023"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["To better accommodate the API divergence between Mapbox and Maplibre, this version adds a new endpoint ",(0,l.jsx)(n.code,{children:"react-map-gl/maplibre"}),". The new endpoint exports identical components as ",(0,l.jsx)(n.code,{children:"react-map-gl"}),", but typed for ",(0,l.jsx)(n.code,{children:"maplibre-gl"})," instead. After switching to this new endpoint, ",(0,l.jsx)(n.code,{children:"maplibre-gl"})," users no longer need to install ",(0,l.jsx)(n.code,{children:"mapbox-gl"})," or a placeholder package as dependency. See ",(0,l.jsx)(n.a,{href:"/react-map-gl/docs/upgrade-guide",children:"upgrade guide"})," for an example."]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.code,{children:"Marker"}),", ",(0,l.jsx)(n.code,{children:"Popup"})," and ",(0,l.jsx)(n.code,{children:"GeolocateControl"})," components now expose the native instance via React ref."]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"react-map-gl-v70",children:"react-map-gl v7.0"}),"\n",(0,l.jsx)(n.p,{children:"Release date: Feb 4, 2022"}),"\n",(0,l.jsx)(n.p,{children:"v7 is a complete rewrite of the library. It addresses many long-standing issues in v5 and v6 limited by legacy architecture decisions. The most notable results of this redesign are:"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Performance: minimize the overhead of React, offer the same fast and smooth interaction as the native library"}),"\n",(0,l.jsx)(n.li,{children:"Lightweight: the ESM build size is reduced from 219k to 57k"}),"\n",(0,l.jsxs)(n.li,{children:["Predictability: Components behave the same as their mapbox counterparts. Props are mapped 1:1 from the native options wherever appropriate. Almost all imperative APIs (",(0,l.jsx)(n.code,{children:"flyTo"}),", ",(0,l.jsx)(n.code,{children:"fitBounds"})," etc.) can now be called directly without breaking the React binding."]}),"\n",(0,l.jsxs)(n.li,{children:["Compatibility: first and third-party plugins! Directly use ",(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/7.0-release/examples/draw-polygon",children:"mapbox-gl-draw"}),", ",(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/7.0-release/examples/geocoder",children:"mapbox-gl-geocoder"}),", to name a few."]}),"\n",(0,l.jsxs)(n.li,{children:["TypeScript compliant: the code base is now entirely written in TypeScript, and all types can be ",(0,l.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types",children:"imported"}),"."]}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["Visit the ",(0,l.jsx)(n.a,{href:"/react-map-gl/docs/upgrade-guide",children:"upgrade guide"})," if you are trying to upgrade from v5 and v6."]}),"\n",(0,l.jsx)(n.h2,{id:"react-map-gl-v53v61",children:"react-map-gl v5.3/v6.1"}),"\n",(0,l.jsx)(n.p,{children:"Release date: Jan 27, 2020"}),"\n",(0,l.jsx)(n.h3,{id:"highlights",children:"Highlights"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"TypeScript and Flow typings"})," are now published with the library"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"More controller customizations."})," Smooth easing on wheel scroll, three-finger gesture to change pitch, inertia after pan/pinch, and customizable keyboard navigation speed. See the updated ",(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/6.1-release/docs/api-reference/interactive-map.md#interaction-options",children:"interaction options"})," for details."]}),"\n",(0,l.jsxs)(n.li,{children:["A new ",(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/6.1-release/docs/api-reference/interactive-map.md#eventrecognizeroptions",children:"eventRecognizerOptions"})," prop is added for fine-tuning the interaction experience."]}),"\n",(0,l.jsxs)(n.li,{children:["New component: ",(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/6.1-release/docs/api-reference/attribution-control.md",children:"AttributionControl"})]}),"\n",(0,l.jsxs)(n.li,{children:["Promoted to official API: ",(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/6.1-release/docs/api-reference/map-context.md",children:"MapContext"})]}),"\n",(0,l.jsx)(n.li,{children:"Resolved React error over attempted state update during render"}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.code,{children:"GeolocateControl"})," added supports for ",(0,l.jsx)(n.code,{children:"showAccuracyCircle"})]}),"\n",(0,l.jsxs)(n.li,{children:["All controls now support inline styling with a ",(0,l.jsx)(n.code,{children:"style"})," prop"]}),"\n",(0,l.jsx)(n.li,{children:"All components and examples have been rewritten as functional components"}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"react-map-gl-v60",children:"react-map-gl v6.0"}),"\n",(0,l.jsx)(n.p,{children:"Release date: Dec 16, 2020"}),"\n",(0,l.jsx)(n.h3,{id:"whats-changed",children:"What's Changed"}),"\n",(0,l.jsxs)(n.p,{children:["The 6.0 release upgrades its Mapbox GL JS dependency to v2.0. There are ",(0,l.jsx)(n.a,{href:"https://github.com/mapbox/mapbox-gl-js/releases/tag/v2.0.0",children:"important changes"})," to mapbox-gl's license and pricing model in this milestone. If you are NOT using a Mapbox account (e.g. self-hosting map tiles), do ",(0,l.jsx)(n.strong,{children:"NOT"})," upgrade to this version, and consider your options discussed in ",(0,l.jsx)(n.a,{href:"/react-map-gl/docs/get-started/mapbox-tokens",children:"this document"}),"."]}),"\n",(0,l.jsxs)(n.p,{children:["See ",(0,l.jsx)(n.a,{href:"/react-map-gl/docs/upgrade-guide",children:"upgrade guide"})," for a complete list of breaking changes."]}),"\n",(0,l.jsx)(n.h2,{id:"react-map-gl-v52",children:"react-map-gl v5.2"}),"\n",(0,l.jsx)(n.p,{children:"Release date: Jan 6, 2020"}),"\n",(0,l.jsx)(n.h3,{id:"highlights-1",children:"Highlights"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"New Components"}),": ",(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/5.2-release/docs/api-reference/scale-control.md",children:(0,l.jsx)(n.code,{children:"ScaleControl"})})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"NavigationControl"}),": new ",(0,l.jsx)(n.code,{children:"label"})," prop"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"GeolocateControl"}),": new ",(0,l.jsx)(n.code,{children:"label"}),", ",(0,l.jsx)(n.code,{children:"onGeolocate"}),", ",(0,l.jsx)(n.code,{children:"auto"})," props"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"New Export"}),": ",(0,l.jsx)(n.code,{children:"WebMercatorViewport"})," is re-exported from the ",(0,l.jsx)(n.code,{children:"viewport-mercator-project"})," library for ease of use. It's recommended to import it from ",(0,l.jsx)(n.code,{children:"react-map-gl"})," instead to avoid future dependency change."]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"New Example"}),": ",(0,l.jsx)(n.a,{href:"https://visgl.github.io/react-map-gl/examples/clusters",children:"Clusters"})]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"react-map-gl-v51",children:"react-map-gl v5.1"}),"\n",(0,l.jsx)(n.p,{children:"Release date: Oct 30, 2019"}),"\n",(0,l.jsx)(n.h3,{id:"highlights-2",children:"Highlights"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"New Components"}),": ",(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/5.1-release/docs/components/layer.md",children:(0,l.jsx)(n.code,{children:"Layer"})})," and ",(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/5.1-release/docs/components/source.md",children:(0,l.jsx)(n.code,{children:"Source"})})," have been added to provide better React parity with the ",(0,l.jsx)(n.code,{children:"Mapbox GL JS"})," API."]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Viewport transition"}),": ",(0,l.jsx)(n.code,{children:"transitionDuration"})," can be set to ",(0,l.jsx)(n.code,{children:"'auto'"})," when using ",(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/5.1-release/docs/components/fly-to-interpolator.md",children:(0,l.jsx)(n.code,{children:"FlyToInterpolator"})}),"."]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"New Example"}),": Add an ",(0,l.jsx)(n.a,{href:"https://visgl.github.io/react-map-gl/examples/draw-polygon",children:"example"})," with drawing library ",(0,l.jsx)(n.a,{href:"https://github.com/uber/nebula.gl/tree/master/modules/react-map-gl-draw",children:"react-map-gl-draw"}),"."]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"react-map-gl-v50",children:"react-map-gl v5.0"}),"\n",(0,l.jsx)(n.p,{children:"Release date: May 31, 2019"}),"\n",(0,l.jsx)(n.h3,{id:"whats-changed-1",children:"What's Changed"}),"\n",(0,l.jsxs)(n.p,{children:["The only change between the 5.0 release and the latest 4.1 release is Mapbox GL JS v1.0. By using this version, you opt into Mapbox's new pricing model, which bills per map load instead of map views. 5.0.x and 4.1.x will continue to update in parallel with otherwise identical features until November 2019 when Mapbox moves all users of 0.xx to a new pricing scheme. For more details, see mapbox's ",(0,l.jsx)(n.a,{href:"https://github.com/mapbox/mapbox-gl-js/releases/tag/v1.0.0",children:"changelog"})," and ",(0,l.jsx)(n.a,{href:"https://blog.mapbox.com/new-pricing-46b7c26166e7",children:"blog post"}),"."]}),"\n",(0,l.jsxs)(n.p,{children:["Alongside Mapbox GL JS's new milestone, we have relaxed the ",(0,l.jsx)(n.code,{children:"mapbox-gl"})," dependency from locking minor release (",(0,l.jsx)(n.code,{children:"~0.53.0"}),") to major release (",(0,l.jsx)(n.code,{children:"^1.0.0"}),"). This will allow developers to upgrade faster without waiting for a new release from react-map-gl."]}),"\n",(0,l.jsx)(n.h2,{id:"react-map-gl-v41",children:"react-map-gl v4.1"}),"\n",(0,l.jsx)(n.p,{children:"Release date: Mar 14, 2019"}),"\n",(0,l.jsx)(n.h3,{id:"highlights-3",children:"Highlights"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"New Components"}),": ",(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/4.1-release/docs/components/fullscreen-control.md",children:(0,l.jsx)(n.code,{children:"FullscreenControl"})}),", ",(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/4.1-release/docs/components/geolocate-control.md",children:(0,l.jsx)(n.code,{children:"GeolocateControl"})})," have been added to provide better React parity with the ",(0,l.jsx)(n.code,{children:"Mapbox GL JS"})," API."]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"New callback props"})," ",(0,l.jsx)(n.code,{children:"InteractiveMap"})," supports more callbacks:","\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.code,{children:"onNativeClick"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"react-map-gl-v40",children:"react-map-gl v4.0"}),"\n",(0,l.jsx)(n.p,{children:"Release date: Nov 5, 2018"}),"\n",(0,l.jsx)(n.h3,{id:"highlights-4",children:"Highlights"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Relative dimensions"})," Both ",(0,l.jsx)(n.code,{children:"InteractiveMap"})," and ",(0,l.jsx)(n.code,{children:"StaticMap"})," now support CSS strings supplied to map ",(0,l.jsx)(n.code,{children:"width"})," and ",(0,l.jsx)(n.code,{children:"height"})," props. New ",(0,l.jsx)(n.code,{children:"onResize"})," callback is fired when the map resizes."]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"React 16"})," Upgrade to React 16.3 context and ref patterns"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Babel 7"})," Upgrade build system to Babel 7, better support for tree-shaking"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Style diffing"})," Now use Mapbox's native style diffing. Immutable is no longer required."]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Draggable Markers"})," ",(0,l.jsx)(n.code,{children:"Marker"})," component now supports a new prop ",(0,l.jsx)(n.code,{children:"draggable"}),", along with callbacks ",(0,l.jsx)(n.code,{children:"onDragStart"}),", ",(0,l.jsx)(n.code,{children:"onDrag"}),", and ",(0,l.jsx)(n.code,{children:"onDragEnd"}),"."]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"3d Popups"})," ",(0,l.jsx)(n.code,{children:"Popup"})," component now supports a new prop ",(0,l.jsx)(n.code,{children:"sortByDepth"})," to enable proper occlusion when multiple popups are used in a tilted map."]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Interaction states"})," ",(0,l.jsx)(n.code,{children:"onViewportChange"})," is now called with richer descriptors of the user interaction, including ",(0,l.jsx)(n.code,{children:"isPanning"}),", ",(0,l.jsx)(n.code,{children:"isZooming"})," and ",(0,l.jsx)(n.code,{children:"isRotating"}),"."]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Interactive layers"})," Dropped the requirement for the deprecated ",(0,l.jsx)(n.code,{children:"interactive"})," property on the layer styles. Use the ",(0,l.jsx)(n.code,{children:"interactiveLayerIds"})," prop to specify which layers are clickable."]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"New callback props"})," ",(0,l.jsx)(n.code,{children:"InteractiveMap"})," supports more callbacks:","\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.code,{children:"onDblClick"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.code,{children:"onMouseDown"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.code,{children:"onMouseMove"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.code,{children:"onMouseUp"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.code,{children:"onTouchStart"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.code,{children:"onTouchMove"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.code,{children:"onTouchEnd"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.code,{children:"onMouseEnter"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.code,{children:"onMouseLeave"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.code,{children:"onWheel"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.code,{children:"onMouseOut"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["See ",(0,l.jsx)(n.a,{href:"/react-map-gl/docs/upgrade-guide",children:"upgrade guide"})," for breaking changes."]}),"\n",(0,l.jsx)(n.h2,{id:"react-map-gl-v33",children:"react-map-gl v3.3"}),"\n",(0,l.jsx)(n.p,{children:"Release date: July, 2018"}),"\n",(0,l.jsx)(n.h3,{id:"highlights-5",children:"Highlights"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsxs)(n.strong,{children:["New ",(0,l.jsx)(n.code,{children:"viewState"})," Property"]}),": Makes it possible to specify all map state properties (",(0,l.jsx)(n.code,{children:"longitude"}),", ",(0,l.jsx)(n.code,{children:"latitude"}),", ",(0,l.jsx)(n.code,{children:"zoom"}),", ",(0,l.jsx)(n.code,{children:"bearing"})," and ",(0,l.jsx)(n.code,{children:"pitch"}),") as a single property."]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsxs)(n.strong,{children:["New ",(0,l.jsx)(n.code,{children:"onViewStateChange"})," callback"]}),": An alternative callback that matches the new ",(0,l.jsx)(n.code,{children:"viewState"})," prop."]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"react-map-gl-v32",children:"react-map-gl v3.2"}),"\n",(0,l.jsx)(n.p,{children:"Realease date: January, 2018"}),"\n",(0,l.jsx)(n.h3,{id:"highlights-6",children:"Highlights"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Viewport transition"}),": feature equivalent to Mapbox's flyTo and easeTo; smooth transition when using keyboard navigation or the NavigationControl."]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Better parity of Mapbox interaction"}),": navigation using keyboard and the navigation control matches Mapbox behavior, including smooth transition when zooming and panning."]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Support for Map Reuse (experimental)"}),": A new property ",(0,l.jsx)(n.code,{children:"reuseMaps"})," is provided for applications that create and destroy maps, to help work around a mapbox-gl resource leak issue that can lead to a browser crash in certain situations."]}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.strong,{children:"mapbox-gl 0.42.2"})}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"New props"})," of the InteractiveMap component:","\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["Map creation: ",(0,l.jsx)(n.code,{children:"transformRequest"}),", ",(0,l.jsx)(n.code,{children:"reuseMaps"})]}),"\n",(0,l.jsxs)(n.li,{children:["Interaction: ",(0,l.jsx)(n.code,{children:"touchZoom"}),", ",(0,l.jsx)(n.code,{children:"touchRotate"})]}),"\n",(0,l.jsxs)(n.li,{children:["Transition: ",(0,l.jsx)(n.code,{children:"transitionDuration"}),", ",(0,l.jsx)(n.code,{children:"transitionInterpolator"}),", ",(0,l.jsx)(n.code,{children:"transitionEasing"}),", ",(0,l.jsx)(n.code,{children:"transitionInterruption"}),", ",(0,l.jsx)(n.code,{children:"onTransitionStart"}),", ",(0,l.jsx)(n.code,{children:"onTransitionInterrupt"}),", ",(0,l.jsx)(n.code,{children:"onTransitionEnd"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"react-map-gl-v31",children:"react-map-gl v3.1"}),"\n",(0,l.jsx)(n.p,{children:"Release date: October 19, 2017"}),"\n",(0,l.jsx)(n.h3,{id:"highlights-7",children:"Highlights"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Event handling"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Support right mouse drag to rotate"}),"\n",(0,l.jsx)(n.li,{children:"Support keyboard navigation"}),"\n",(0,l.jsx)(n.li,{children:"Allow controls and overlays to block map interactions"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"React 16"})," - react-map-gl is now being tested with React 16, but the React peer dependency requirement is unchanged at ",(0,l.jsx)(n.code,{children:">=15.4.x"}),"."]}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.strong,{children:"mapbox-gl v0.40.1"})}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"No Token warning"}),": react-map-gl now renders an HTML message if no mapbox token is supplied."]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"react-map-gl-v30",children:"react-map-gl v3.0"}),"\n",(0,l.jsx)(n.p,{children:"Release date: July 27th, 2017"}),"\n",(0,l.jsx)(n.h3,{id:"highlights-8",children:"Highlights"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Latest Mapbox GL JS"}),": Bumps ",(0,l.jsx)(n.code,{children:"Mapbox GL JS"})," to ",(0,l.jsx)(n.a,{href:"https://github.com/mapbox/mapbox-gl-js/releases",children:"0.38"}),"."]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Multi-Touch Support"}),": Full support for multi-touch gestures such as pinch-to-zoom and rotate."]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"New Components"}),": The ",(0,l.jsx)(n.code,{children:"MapGL"})," component has been split into ",(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/3.0-release/docs/components/static-map.md",children:(0,l.jsx)(n.code,{children:"StaticMap"})})," and ",(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/3.0-release/docs/components/interactive-map.md",children:(0,l.jsx)(n.code,{children:"InteractiveMap"})})," (the default). Also, ",(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/3.0-release/docs/components/popup.md",children:(0,l.jsx)(n.code,{children:"Popup"})}),", ",(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/3.0-release/docs/components/marker.md",children:(0,l.jsx)(n.code,{children:"Marker"})}),", ",(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/3.0-release/docs/components/navigation-control.md",children:(0,l.jsx)(n.code,{children:"NavigationControl"})})," have been added to provide better React parity with the ",(0,l.jsx)(n.code,{children:"Mapbox GL JS"})," API."]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Improved Overlay Components"}),": Supplying viewport props (",(0,l.jsx)(n.code,{children:"width"})," ",(0,l.jsx)(n.code,{children:"height"})," ",(0,l.jsx)(n.code,{children:"zoom"})," ",(0,l.jsx)(n.code,{children:"longitude"})," and ",(0,l.jsx)(n.code,{children:"latitude"}),") are no longer required if you render ",(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/3.0-release/docs/overlays/svg-overlay.md",children:(0,l.jsx)(n.code,{children:"SVGOverlay"})}),", ",(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/3.0-release/docs/overlays/canvas-overlay.md",children:(0,l.jsx)(n.code,{children:"CanvasOverlay"})})," or ",(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/3.0-release/docs/overlays/html-overlay.md",children:(0,l.jsx)(n.code,{children:"HTMLOverlay"})})," as a child of the map. Perspective mode is now supported in all overlays."]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"New Props"}),": ",(0,l.jsx)(n.code,{children:"maxPitch"}),", ",(0,l.jsx)(n.code,{children:"minPitch"}),", ",(0,l.jsx)(n.code,{children:"dragPan"}),", ",(0,l.jsx)(n.code,{children:"doubleClickZoom"}),", ",(0,l.jsx)(n.code,{children:"touchZoomRotate"}),",\n",(0,l.jsx)(n.code,{children:"scrollZoom"})," are now provided to allow granular control of map interactivity."]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Documentation"}),": Significantly expanded and linked with our other geospatial frameworks."]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Examples"}),": New stand-alone examples to get you started instantly with the new features."]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Event Handling"}),": New event handling architecture that enables full customization of event handling (experimental)."]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"components",children:"Components"}),"\n",(0,l.jsx)(n.h4,{id:"interactivemap-new-mapgl-replacement",children:(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/3.0-release/docs/components/interactive-map.md",children:"InteractiveMap (New, MapGL replacement)"})}),"\n",(0,l.jsxs)(n.p,{children:["This is a wrapper on top of ",(0,l.jsx)(n.code,{children:"StaticMap"}),". It takes all the props of ",(0,l.jsx)(n.code,{children:"StaticMap"})," and additional ones such as ",(0,l.jsx)(n.code,{children:"onViewportChange"}),", ",(0,l.jsx)(n.code,{children:"scrollZoom"}),", ",(0,l.jsx)(n.code,{children:"dragRotate"}),", etc. to control interactivity on the map. See ",(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/7.0-release/src/components/interactive-map.js",children:"Source Code"})," for more information."]}),"\n",(0,l.jsx)(n.h4,{id:"staticmap-new",children:(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/3.0-release/docs/components/static-map.md",children:"StaticMap (New)"})}),"\n",(0,l.jsxs)(n.p,{children:["This is the React wrapper around ",(0,l.jsx)(n.code,{children:"Mapbox GL JS"})," and takes in viewport properties such as ",(0,l.jsx)(n.code,{children:"width"}),", ",(0,l.jsx)(n.code,{children:"height"}),", ",(0,l.jsx)(n.code,{children:"latitude"}),", ",(0,l.jsx)(n.code,{children:"longitude"}),". Style diffing and updating logic also live here. See ",(0,l.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/7.0-release/src/components/static-map.js",children:"Source Code"})," for more information."]}),"\n",(0,l.jsx)(n.h4,{id:"overlays",children:"Overlays"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["Three overlays (",(0,l.jsx)(n.code,{children:"ScatterplotOverlay"}),", ",(0,l.jsx)(n.code,{children:"DraggablePointsOverlay"}),", ",(0,l.jsx)(n.code,{children:"ChoroplethOverlay"}),"), have been moved out of the library and are now only provided as examples."]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"property-changes",children:"Property Changes"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Property Names"})," - some prop names have been modernized, the old ones will still work for now with a warning."]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Internal Properties"})," such as ",(0,l.jsx)(n.code,{children:"isHovering"}),", ",(0,l.jsx)(n.code,{children:"isDragging"}),", ",(0,l.jsx)(n.code,{children:"startDragLngLat"})," have been removed.\nThese were never meant to be useful publicly and have caused confusions in the past."]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"utilities",children:"Utilities"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"fitBounds"}),": ",(0,l.jsx)(n.code,{children:"fitBounds"})," has been moved to another repository and has been rewritten to provide a more logical interface."]}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["For more information, see the ",(0,l.jsx)(n.code,{children:"Upgrade Guide"}),"."]}),"\n",(0,l.jsx)(n.h2,{id:"react-map-gl-v20",children:"react-map-gl v2.0"}),"\n",(0,l.jsx)(n.p,{children:"Date: Jan 17, 2017"}),"\n",(0,l.jsx)(n.h3,{id:"highlights-9",children:"Highlights"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Latest mapbox-gl"}),": Bump ",(0,l.jsx)(n.code,{children:"mapbox-gl"})," to v0.31.0"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"new maxZoom prop"})," - Add ",(0,l.jsx)(n.code,{children:"maxZoom"})," prop and defaults to ",(0,l.jsx)(n.code,{children:"20"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"New onLoad prop"})," - Add ",(0,l.jsx)(n.code,{children:"onLoad"})," event handler"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"new onClick prop"})," - Add ",(0,l.jsx)(n.code,{children:"onClick"})," prop handler (#140)"]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"react-map-gl-v10",children:"react-map-gl v1.0"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Perspective Mode"})," - Now supports ",(0,l.jsx)(n.code,{children:"bearing"})," and ",(0,l.jsx)(n.code,{children:"pitch"})," properties, per mapbox-gl api documentation. These props default to 0 which means that maps will still be rendered in flat/ortographic mode when they are not provided"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Support for ES6 imports"})," - The map overlay components (HTMLOverlay, CanvasOverlay, SVGOverlay etc) previously had to be imported via their relative source paths can now be imported directly."]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"react-map-gl-v06",children:"react-map-gl v0.6"}),"\n",(0,l.jsx)(n.p,{children:"Initial public version"})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(d,{...e})}):d(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>t,x:()=>a});var i=r(6540);const l={},s=i.createContext(l);function t(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:t(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1b252c8c.60747423.js b/assets/js/1b252c8c.60747423.js deleted file mode 100644 index 00fdd056..00000000 --- a/assets/js/1b252c8c.60747423.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[5116],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>h});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function r(e){for(var t=1;t=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var p=n.createContext({}),m=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):r(r({},t),e)),a},s=function(e){var t=m(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,l=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),d=m(a),g=i,h=d["".concat(p,".").concat(g)]||d[g]||c[g]||l;return a?n.createElement(h,r(r({ref:t},s),{},{components:a})):n.createElement(h,r({ref:t},s))}));function h(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var l=a.length,r=new Array(l);r[0]=g;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[d]="string"==typeof e?e:i,r[1]=o;for(var m=2;m{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>p,default:()=>h,frontMatter:()=>o,metadata:()=>m,toc:()=>d});var n=a(7462),i=a(3366),l=(a(7294),a(3905)),r=["components"],o={},p="What's new",m={unversionedId:"whats-new",id:"whats-new",title:"What's new",description:"react-map-gl v7.1",source:"@site/../docs/whats-new.md",sourceDirName:".",slug:"/whats-new",permalink:"/react-map-gl/docs/whats-new",draft:!1,editUrl:"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/whats-new.md",tags:[],version:"current",frontMatter:{},sidebar:"docsSidebar",previous:{title:"Introduction",permalink:"/react-map-gl/docs/"},next:{title:"Upgrade Guide",permalink:"/react-map-gl/docs/upgrade-guide"}},s={},d=[{value:"react-map-gl v7.1",id:"react-map-gl-v71",level:2},{value:"react-map-gl v7.0",id:"react-map-gl-v70",level:2},{value:"react-map-gl v5.3/v6.1",id:"react-map-gl-v53v61",level:2},{value:"Highlights",id:"highlights",level:3},{value:"react-map-gl v6.0",id:"react-map-gl-v60",level:2},{value:"What's Changed",id:"whats-changed",level:3},{value:"react-map-gl v5.2",id:"react-map-gl-v52",level:2},{value:"Highlights",id:"highlights-1",level:3},{value:"react-map-gl v5.1",id:"react-map-gl-v51",level:2},{value:"Highlights",id:"highlights-2",level:3},{value:"react-map-gl v5.0",id:"react-map-gl-v50",level:2},{value:"What's Changed",id:"whats-changed-1",level:3},{value:"react-map-gl v4.1",id:"react-map-gl-v41",level:2},{value:"Highlights",id:"highlights-3",level:3},{value:"react-map-gl v4.0",id:"react-map-gl-v40",level:2},{value:"Highlights",id:"highlights-4",level:3},{value:"react-map-gl v3.3",id:"react-map-gl-v33",level:2},{value:"Highlights",id:"highlights-5",level:3},{value:"react-map-gl v3.2",id:"react-map-gl-v32",level:2},{value:"Highlights",id:"highlights-6",level:3},{value:"react-map-gl v3.1",id:"react-map-gl-v31",level:2},{value:"Highlights",id:"highlights-7",level:3},{value:"react-map-gl v3.0",id:"react-map-gl-v30",level:2},{value:"Highlights",id:"highlights-8",level:3},{value:"Components",id:"components",level:3},{value:"InteractiveMap (New, MapGL replacement)",id:"interactivemap-new-mapgl-replacement",level:4},{value:"StaticMap (New)",id:"staticmap-new",level:4},{value:"Overlays",id:"overlays",level:4},{value:"Property Changes",id:"property-changes",level:3},{value:"Utilities",id:"utilities",level:3},{value:"react-map-gl v2.0",id:"react-map-gl-v20",level:2},{value:"Highlights",id:"highlights-9",level:3},{value:"react-map-gl v1.0",id:"react-map-gl-v10",level:2},{value:"react-map-gl v0.6",id:"react-map-gl-v06",level:2}],c={toc:d},g="wrapper";function h(e){var t=e.components,a=(0,i.Z)(e,r);return(0,l.kt)(g,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"whats-new"},"What's new"),(0,l.kt)("h2",{id:"react-map-gl-v71"},"react-map-gl v7.1"),(0,l.kt)("p",null,"Release date: June 30 2023"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"To better accommodate the API divergence between Mapbox and Maplibre, this version adds a new endpoint ",(0,l.kt)("inlineCode",{parentName:"li"},"react-map-gl/maplibre"),". The new endpoint exports identical components as ",(0,l.kt)("inlineCode",{parentName:"li"},"react-map-gl"),", but typed for ",(0,l.kt)("inlineCode",{parentName:"li"},"maplibre-gl")," instead. After switching to this new endpoint, ",(0,l.kt)("inlineCode",{parentName:"li"},"maplibre-gl")," users no longer need to install ",(0,l.kt)("inlineCode",{parentName:"li"},"mapbox-gl")," or a placeholder package as dependency. See ",(0,l.kt)("a",{parentName:"li",href:"/react-map-gl/docs/upgrade-guide"},"upgrade guide")," for an example."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Marker"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"Popup")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"GeolocateControl")," components now expose the native instance via React ref.")),(0,l.kt)("h2",{id:"react-map-gl-v70"},"react-map-gl v7.0"),(0,l.kt)("p",null,"Release date: Feb 4, 2022"),(0,l.kt)("p",null,"v7 is a complete rewrite of the library. It addresses many long-standing issues in v5 and v6 limited by legacy architecture decisions. The most notable results of this redesign are:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Performance: minimize the overhead of React, offer the same fast and smooth interaction as the native library"),(0,l.kt)("li",{parentName:"ul"},"Lightweight: the ESM build size is reduced from 219k to 57k"),(0,l.kt)("li",{parentName:"ul"},"Predictability: Components behave the same as their mapbox counterparts. Props are mapped 1:1 from the native options wherever appropriate. Almost all imperative APIs (",(0,l.kt)("inlineCode",{parentName:"li"},"flyTo"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"fitBounds")," etc.) can now be called directly without breaking the React binding."),(0,l.kt)("li",{parentName:"ul"},"Compatibility: first and third-party plugins! Directly use ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/visgl/react-map-gl/tree/7.0-release/examples/draw-polygon"},"mapbox-gl-draw"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/visgl/react-map-gl/tree/7.0-release/examples/geocoder"},"mapbox-gl-geocoder"),", to name a few."),(0,l.kt)("li",{parentName:"ul"},"TypeScript compliant: the code base is now entirely written in TypeScript, and all types can be ",(0,l.kt)("a",{parentName:"li",href:"/react-map-gl/docs/api-reference/types"},"imported"),".")),(0,l.kt)("p",null,"Visit the ",(0,l.kt)("a",{parentName:"p",href:"/react-map-gl/docs/upgrade-guide"},"upgrade guide")," if you are trying to upgrade from v5 and v6."),(0,l.kt)("h2",{id:"react-map-gl-v53v61"},"react-map-gl v5.3/v6.1"),(0,l.kt)("p",null,"Release date: Jan 27, 2020"),(0,l.kt)("h3",{id:"highlights"},"Highlights"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"TypeScript and Flow typings")," are now published with the library"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"More controller customizations.")," Smooth easing on wheel scroll, three-finger gesture to change pitch, inertia after pan/pinch, and customizable keyboard navigation speed. See the updated ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/visgl/react-map-gl/tree/6.1-release/docs/api-reference/interactive-map.md#interaction-options"},"interaction options")," for details."),(0,l.kt)("li",{parentName:"ul"},"A new ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/visgl/react-map-gl/tree/6.1-release/docs/api-reference/interactive-map.md#eventrecognizeroptions"},"eventRecognizerOptions")," prop is added for fine-tuning the interaction experience."),(0,l.kt)("li",{parentName:"ul"},"New component: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/visgl/react-map-gl/tree/6.1-release/docs/api-reference/attribution-control.md"},"AttributionControl")),(0,l.kt)("li",{parentName:"ul"},"Promoted to official API: ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/visgl/react-map-gl/tree/6.1-release/docs/api-reference/map-context.md"},"MapContext")),(0,l.kt)("li",{parentName:"ul"},"Resolved React error over attempted state update during render"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"GeolocateControl")," added supports for ",(0,l.kt)("inlineCode",{parentName:"li"},"showAccuracyCircle")),(0,l.kt)("li",{parentName:"ul"},"All controls now support inline styling with a ",(0,l.kt)("inlineCode",{parentName:"li"},"style")," prop"),(0,l.kt)("li",{parentName:"ul"},"All components and examples have been rewritten as functional components")),(0,l.kt)("h2",{id:"react-map-gl-v60"},"react-map-gl v6.0"),(0,l.kt)("p",null,"Release date: Dec 16, 2020"),(0,l.kt)("h3",{id:"whats-changed"},"What's Changed"),(0,l.kt)("p",null,"The 6.0 release upgrades its Mapbox GL JS dependency to v2.0. There are ",(0,l.kt)("a",{parentName:"p",href:"https://github.com/mapbox/mapbox-gl-js/releases/tag/v2.0.0"},"important changes")," to mapbox-gl's license and pricing model in this milestone. If you are NOT using a Mapbox account (e.g. self-hosting map tiles), do ",(0,l.kt)("strong",{parentName:"p"},"NOT")," upgrade to this version, and consider your options discussed in ",(0,l.kt)("a",{parentName:"p",href:"/react-map-gl/docs/get-started/mapbox-tokens"},"this document"),"."),(0,l.kt)("p",null,"See ",(0,l.kt)("a",{parentName:"p",href:"/react-map-gl/docs/upgrade-guide"},"upgrade guide")," for a complete list of breaking changes."),(0,l.kt)("h2",{id:"react-map-gl-v52"},"react-map-gl v5.2"),(0,l.kt)("p",null,"Release date: Jan 6, 2020"),(0,l.kt)("h3",{id:"highlights-1"},"Highlights"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"New Components"),": ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/visgl/react-map-gl/tree/5.2-release/docs/api-reference/scale-control.md"},(0,l.kt)("inlineCode",{parentName:"a"},"ScaleControl"))),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"NavigationControl"),": new ",(0,l.kt)("inlineCode",{parentName:"li"},"label")," prop"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"GeolocateControl"),": new ",(0,l.kt)("inlineCode",{parentName:"li"},"label"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"onGeolocate"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"auto")," props"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"New Export"),": ",(0,l.kt)("inlineCode",{parentName:"li"},"WebMercatorViewport")," is re-exported from the ",(0,l.kt)("inlineCode",{parentName:"li"},"viewport-mercator-project")," library for ease of use. It's recommended to import it from ",(0,l.kt)("inlineCode",{parentName:"li"},"react-map-gl")," instead to avoid future dependency change."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"New Example"),": ",(0,l.kt)("a",{parentName:"li",href:"https://visgl.github.io/react-map-gl/examples/clusters"},"Clusters"))),(0,l.kt)("h2",{id:"react-map-gl-v51"},"react-map-gl v5.1"),(0,l.kt)("p",null,"Release date: Oct 30, 2019"),(0,l.kt)("h3",{id:"highlights-2"},"Highlights"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"New Components"),": ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/visgl/react-map-gl/tree/5.1-release/docs/components/layer.md"},(0,l.kt)("inlineCode",{parentName:"a"},"Layer"))," and ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/visgl/react-map-gl/tree/5.1-release/docs/components/source.md"},(0,l.kt)("inlineCode",{parentName:"a"},"Source"))," have been added to provide better React parity with the ",(0,l.kt)("inlineCode",{parentName:"li"},"Mapbox GL JS")," API."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"Viewport transition"),": ",(0,l.kt)("inlineCode",{parentName:"li"},"transitionDuration")," can be set to ",(0,l.kt)("inlineCode",{parentName:"li"},"'auto'")," when using ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/visgl/react-map-gl/tree/5.1-release/docs/components/fly-to-interpolator.md"},(0,l.kt)("inlineCode",{parentName:"a"},"FlyToInterpolator")),"."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"New Example"),": Add an ",(0,l.kt)("a",{parentName:"li",href:"https://visgl.github.io/react-map-gl/examples/draw-polygon"},"example")," with drawing library ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/uber/nebula.gl/tree/master/modules/react-map-gl-draw"},"react-map-gl-draw"),".")),(0,l.kt)("h2",{id:"react-map-gl-v50"},"react-map-gl v5.0"),(0,l.kt)("p",null,"Release date: May 31, 2019"),(0,l.kt)("h3",{id:"whats-changed-1"},"What's Changed"),(0,l.kt)("p",null,"The only change between the 5.0 release and the latest 4.1 release is Mapbox GL JS v1.0. By using this version, you opt into Mapbox's new pricing model, which bills per map load instead of map views. 5.0.x and 4.1.x will continue to update in parallel with otherwise identical features until November 2019 when Mapbox moves all users of 0.xx to a new pricing scheme. For more details, see mapbox's ",(0,l.kt)("a",{parentName:"p",href:"https://github.com/mapbox/mapbox-gl-js/releases/tag/v1.0.0"},"changelog")," and ",(0,l.kt)("a",{parentName:"p",href:"https://blog.mapbox.com/new-pricing-46b7c26166e7"},"blog post"),"."),(0,l.kt)("p",null,"Alongside Mapbox GL JS's new milestone, we have relaxed the ",(0,l.kt)("inlineCode",{parentName:"p"},"mapbox-gl")," dependency from locking minor release (",(0,l.kt)("inlineCode",{parentName:"p"},"~0.53.0"),") to major release (",(0,l.kt)("inlineCode",{parentName:"p"},"^1.0.0"),"). This will allow developers to upgrade faster without waiting for a new release from react-map-gl."),(0,l.kt)("h2",{id:"react-map-gl-v41"},"react-map-gl v4.1"),(0,l.kt)("p",null,"Release date: Mar 14, 2019"),(0,l.kt)("h3",{id:"highlights-3"},"Highlights"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"New Components"),": ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/visgl/react-map-gl/tree/4.1-release/docs/components/fullscreen-control.md"},(0,l.kt)("inlineCode",{parentName:"a"},"FullscreenControl")),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/visgl/react-map-gl/tree/4.1-release/docs/components/geolocate-control.md"},(0,l.kt)("inlineCode",{parentName:"a"},"GeolocateControl"))," have been added to provide better React parity with the ",(0,l.kt)("inlineCode",{parentName:"li"},"Mapbox GL JS")," API."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"New callback props")," ",(0,l.kt)("inlineCode",{parentName:"li"},"InteractiveMap")," supports more callbacks:",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"onNativeClick"))))),(0,l.kt)("h2",{id:"react-map-gl-v40"},"react-map-gl v4.0"),(0,l.kt)("p",null,"Release date: Nov 5, 2018"),(0,l.kt)("h3",{id:"highlights-4"},"Highlights"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"Relative dimensions")," Both ",(0,l.kt)("inlineCode",{parentName:"li"},"InteractiveMap")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"StaticMap")," now support CSS strings supplied to map ",(0,l.kt)("inlineCode",{parentName:"li"},"width")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"height")," props. New ",(0,l.kt)("inlineCode",{parentName:"li"},"onResize")," callback is fired when the map resizes."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"React 16")," Upgrade to React 16.3 context and ref patterns"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"Babel 7")," Upgrade build system to Babel 7, better support for tree-shaking"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"Style diffing")," Now use Mapbox's native style diffing. Immutable is no longer required."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"Draggable Markers")," ",(0,l.kt)("inlineCode",{parentName:"li"},"Marker")," component now supports a new prop ",(0,l.kt)("inlineCode",{parentName:"li"},"draggable"),", along with callbacks ",(0,l.kt)("inlineCode",{parentName:"li"},"onDragStart"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"onDrag"),", and ",(0,l.kt)("inlineCode",{parentName:"li"},"onDragEnd"),"."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"3d Popups")," ",(0,l.kt)("inlineCode",{parentName:"li"},"Popup")," component now supports a new prop ",(0,l.kt)("inlineCode",{parentName:"li"},"sortByDepth")," to enable proper occlusion when multiple popups are used in a tilted map."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"Interaction states")," ",(0,l.kt)("inlineCode",{parentName:"li"},"onViewportChange")," is now called with richer descriptors of the user interaction, including ",(0,l.kt)("inlineCode",{parentName:"li"},"isPanning"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"isZooming")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"isRotating"),"."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"Interactive layers")," Dropped the requirement for the deprecated ",(0,l.kt)("inlineCode",{parentName:"li"},"interactive")," property on the layer styles. Use the ",(0,l.kt)("inlineCode",{parentName:"li"},"interactiveLayerIds")," prop to specify which layers are clickable."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"New callback props")," ",(0,l.kt)("inlineCode",{parentName:"li"},"InteractiveMap")," supports more callbacks:",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"onDblClick")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"onMouseDown")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"onMouseMove")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"onMouseUp")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"onTouchStart")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"onTouchMove")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"onTouchEnd")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"onMouseEnter")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"onMouseLeave")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"onWheel")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"onMouseOut"))))),(0,l.kt)("p",null,"See ",(0,l.kt)("a",{parentName:"p",href:"/react-map-gl/docs/upgrade-guide"},"upgrade guide")," for breaking changes."),(0,l.kt)("h2",{id:"react-map-gl-v33"},"react-map-gl v3.3"),(0,l.kt)("p",null,"Release date: July, 2018"),(0,l.kt)("h3",{id:"highlights-5"},"Highlights"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"New ",(0,l.kt)("inlineCode",{parentName:"strong"},"viewState")," Property"),": Makes it possible to specify all map state properties (",(0,l.kt)("inlineCode",{parentName:"li"},"longitude"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"latitude"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"zoom"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"bearing")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"pitch"),") as a single property."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"New ",(0,l.kt)("inlineCode",{parentName:"strong"},"onViewStateChange")," callback"),": An alternative callback that matches the new ",(0,l.kt)("inlineCode",{parentName:"li"},"viewState")," prop.")),(0,l.kt)("h2",{id:"react-map-gl-v32"},"react-map-gl v3.2"),(0,l.kt)("p",null,"Realease date: January, 2018"),(0,l.kt)("h3",{id:"highlights-6"},"Highlights"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"Viewport transition"),": feature equivalent to Mapbox's flyTo and easeTo; smooth transition when using keyboard navigation or the NavigationControl."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"Better parity of Mapbox interaction"),": navigation using keyboard and the navigation control matches Mapbox behavior, including smooth transition when zooming and panning."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"Support for Map Reuse (experimental)"),": A new property ",(0,l.kt)("inlineCode",{parentName:"li"},"reuseMaps")," is provided for applications that create and destroy maps, to help work around a mapbox-gl resource leak issue that can lead to a browser crash in certain situations."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"mapbox-gl 0.42.2")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"New props")," of the InteractiveMap component:",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Map creation: ",(0,l.kt)("inlineCode",{parentName:"li"},"transformRequest"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"reuseMaps")),(0,l.kt)("li",{parentName:"ul"},"Interaction: ",(0,l.kt)("inlineCode",{parentName:"li"},"touchZoom"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"touchRotate")),(0,l.kt)("li",{parentName:"ul"},"Transition: ",(0,l.kt)("inlineCode",{parentName:"li"},"transitionDuration"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"transitionInterpolator"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"transitionEasing"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"transitionInterruption"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"onTransitionStart"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"onTransitionInterrupt"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"onTransitionEnd"))))),(0,l.kt)("h2",{id:"react-map-gl-v31"},"react-map-gl v3.1"),(0,l.kt)("p",null,"Release date: October 19, 2017"),(0,l.kt)("h3",{id:"highlights-7"},"Highlights"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"Event handling"),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Support right mouse drag to rotate"),(0,l.kt)("li",{parentName:"ul"},"Support keyboard navigation"),(0,l.kt)("li",{parentName:"ul"},"Allow controls and overlays to block map interactions"))),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"React 16")," - react-map-gl is now being tested with React 16, but the React peer dependency requirement is unchanged at ",(0,l.kt)("inlineCode",{parentName:"li"},">=15.4.x"),"."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"mapbox-gl v0.40.1")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"No Token warning"),": react-map-gl now renders an HTML message if no mapbox token is supplied.")),(0,l.kt)("h2",{id:"react-map-gl-v30"},"react-map-gl v3.0"),(0,l.kt)("p",null,"Release date: July 27th, 2017"),(0,l.kt)("h3",{id:"highlights-8"},"Highlights"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"Latest Mapbox GL JS"),": Bumps ",(0,l.kt)("inlineCode",{parentName:"li"},"Mapbox GL JS")," to ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mapbox/mapbox-gl-js/releases"},"0.38"),"."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"Multi-Touch Support"),": Full support for multi-touch gestures such as pinch-to-zoom and rotate."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"New Components"),": The ",(0,l.kt)("inlineCode",{parentName:"li"},"MapGL")," component has been split into ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/visgl/react-map-gl/tree/3.0-release/docs/components/static-map.md"},(0,l.kt)("inlineCode",{parentName:"a"},"StaticMap"))," and ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/visgl/react-map-gl/tree/3.0-release/docs/components/interactive-map.md"},(0,l.kt)("inlineCode",{parentName:"a"},"InteractiveMap"))," (the default). Also, ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/visgl/react-map-gl/tree/3.0-release/docs/components/popup.md"},(0,l.kt)("inlineCode",{parentName:"a"},"Popup")),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/visgl/react-map-gl/tree/3.0-release/docs/components/marker.md"},(0,l.kt)("inlineCode",{parentName:"a"},"Marker")),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/visgl/react-map-gl/tree/3.0-release/docs/components/navigation-control.md"},(0,l.kt)("inlineCode",{parentName:"a"},"NavigationControl"))," have been added to provide better React parity with the ",(0,l.kt)("inlineCode",{parentName:"li"},"Mapbox GL JS")," API."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"Improved Overlay Components"),": Supplying viewport props (",(0,l.kt)("inlineCode",{parentName:"li"},"width")," ",(0,l.kt)("inlineCode",{parentName:"li"},"height")," ",(0,l.kt)("inlineCode",{parentName:"li"},"zoom")," ",(0,l.kt)("inlineCode",{parentName:"li"},"longitude")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"latitude"),") are no longer required if you render ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/visgl/react-map-gl/tree/3.0-release/docs/overlays/svg-overlay.md"},(0,l.kt)("inlineCode",{parentName:"a"},"SVGOverlay")),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/visgl/react-map-gl/tree/3.0-release/docs/overlays/canvas-overlay.md"},(0,l.kt)("inlineCode",{parentName:"a"},"CanvasOverlay"))," or ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/visgl/react-map-gl/tree/3.0-release/docs/overlays/html-overlay.md"},(0,l.kt)("inlineCode",{parentName:"a"},"HTMLOverlay"))," as a child of the map. Perspective mode is now supported in all overlays."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"New Props"),": ",(0,l.kt)("inlineCode",{parentName:"li"},"maxPitch"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"minPitch"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"dragPan"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"doubleClickZoom"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"touchZoomRotate"),",\n",(0,l.kt)("inlineCode",{parentName:"li"},"scrollZoom")," are now provided to allow granular control of map interactivity."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"Documentation"),": Significantly expanded and linked with our other geospatial frameworks."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"Examples"),": New stand-alone examples to get you started instantly with the new features."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"Event Handling"),": New event handling architecture that enables full customization of event handling (experimental).")),(0,l.kt)("h3",{id:"components"},"Components"),(0,l.kt)("h4",{id:"interactivemap-new-mapgl-replacement"},(0,l.kt)("a",{parentName:"h4",href:"https://github.com/visgl/react-map-gl/tree/3.0-release/docs/components/interactive-map.md"},"InteractiveMap (New, MapGL replacement)")),(0,l.kt)("p",null,"This is a wrapper on top of ",(0,l.kt)("inlineCode",{parentName:"p"},"StaticMap"),". It takes all the props of ",(0,l.kt)("inlineCode",{parentName:"p"},"StaticMap")," and additional ones such as ",(0,l.kt)("inlineCode",{parentName:"p"},"onViewportChange"),", ",(0,l.kt)("inlineCode",{parentName:"p"},"scrollZoom"),", ",(0,l.kt)("inlineCode",{parentName:"p"},"dragRotate"),", etc. to control interactivity on the map. See ",(0,l.kt)("a",{parentName:"p",href:"https://github.com/visgl/react-map-gl/tree/7.0-release/src/components/interactive-map.js"},"Source Code")," for more information."),(0,l.kt)("h4",{id:"staticmap-new"},(0,l.kt)("a",{parentName:"h4",href:"https://github.com/visgl/react-map-gl/tree/3.0-release/docs/components/static-map.md"},"StaticMap (New)")),(0,l.kt)("p",null,"This is the React wrapper around ",(0,l.kt)("inlineCode",{parentName:"p"},"Mapbox GL JS")," and takes in viewport properties such as ",(0,l.kt)("inlineCode",{parentName:"p"},"width"),", ",(0,l.kt)("inlineCode",{parentName:"p"},"height"),", ",(0,l.kt)("inlineCode",{parentName:"p"},"latitude"),", ",(0,l.kt)("inlineCode",{parentName:"p"},"longitude"),". Style diffing and updating logic also live here. See ",(0,l.kt)("a",{parentName:"p",href:"https://github.com/visgl/react-map-gl/tree/7.0-release/src/components/static-map.js"},"Source Code")," for more information."),(0,l.kt)("h4",{id:"overlays"},"Overlays"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Three overlays (",(0,l.kt)("inlineCode",{parentName:"li"},"ScatterplotOverlay"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"DraggablePointsOverlay"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"ChoroplethOverlay"),"), have been moved out of the library and are now only provided as examples.")),(0,l.kt)("h3",{id:"property-changes"},"Property Changes"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"Property Names")," - some prop names have been modernized, the old ones will still work for now with a warning."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"Internal Properties")," such as ",(0,l.kt)("inlineCode",{parentName:"li"},"isHovering"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"isDragging"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"startDragLngLat")," have been removed.\nThese were never meant to be useful publicly and have caused confusions in the past.")),(0,l.kt)("h3",{id:"utilities"},"Utilities"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"fitBounds"),": ",(0,l.kt)("inlineCode",{parentName:"li"},"fitBounds")," has been moved to another repository and has been rewritten to provide a more logical interface.")),(0,l.kt)("p",null,"For more information, see the ",(0,l.kt)("inlineCode",{parentName:"p"},"Upgrade Guide"),"."),(0,l.kt)("h2",{id:"react-map-gl-v20"},"react-map-gl v2.0"),(0,l.kt)("p",null,"Date: Jan 17, 2017"),(0,l.kt)("h3",{id:"highlights-9"},"Highlights"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"Latest mapbox-gl"),": Bump ",(0,l.kt)("inlineCode",{parentName:"li"},"mapbox-gl")," to v0.31.0"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"new maxZoom prop")," - Add ",(0,l.kt)("inlineCode",{parentName:"li"},"maxZoom")," prop and defaults to ",(0,l.kt)("inlineCode",{parentName:"li"},"20")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"New onLoad prop")," - Add ",(0,l.kt)("inlineCode",{parentName:"li"},"onLoad")," event handler"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"new onClick prop")," - Add ",(0,l.kt)("inlineCode",{parentName:"li"},"onClick")," prop handler (#140)")),(0,l.kt)("h2",{id:"react-map-gl-v10"},"react-map-gl v1.0"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"Perspective Mode")," - Now supports ",(0,l.kt)("inlineCode",{parentName:"li"},"bearing")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"pitch")," properties, per mapbox-gl api documentation. These props default to 0 which means that maps will still be rendered in flat/ortographic mode when they are not provided"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"Support for ES6 imports")," - The map overlay components (HTMLOverlay, CanvasOverlay, SVGOverlay etc) previously had to be imported via their relative source paths can now be imported directly using `import {SVGOverlay} from 'react-map-gl'.")),(0,l.kt)("h2",{id:"react-map-gl-v06"},"react-map-gl v0.6"),(0,l.kt)("p",null,"Initial public version"))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1be78505.55891a32.js b/assets/js/1be78505.55891a32.js deleted file mode 100644 index fef30135..00000000 --- a/assets/js/1be78505.55891a32.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[9514,4972],{9963:(e,t,n)=>{n.r(t),n.d(t,{default:()=>Ie});var a=n(7294),r=n(6010),l=n(1944),o=n(5281),i=n(3320),c=n(3438),d=n(4477),s=n(1116),m=n(179),u=n(5999),b=n(2466),p=n(5936);const h={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};function v(){var e=function(e){var t=e.threshold,n=(0,a.useState)(!1),r=n[0],l=n[1],o=(0,a.useRef)(!1),i=(0,b.Ct)(),c=i.startScroll,d=i.cancelScroll;return(0,b.RF)((function(e,n){var a=e.scrollY,r=null==n?void 0:n.scrollY;r&&(o.current?o.current=!1:a>=r?(d(),l(!1)):a{n.r(t),n.d(t,{default:()=>i});var a=n(7294),r=n(5999),l=n(1944),o=n(179);function i(){return a.createElement(a.Fragment,null,a.createElement(l.d,{title:(0,r.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(o.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(r.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(r.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(r.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}},4477:(e,t,n)=>{n.d(t,{E:()=>i,q:()=>o});var a=n(7294),r=n(9688),l=a.createContext(null);function o(e){var t=e.children,n=e.version;return a.createElement(l.Provider,{value:n},t)}function i(){var e=(0,a.useContext)(l);if(null===e)throw new r.i6("DocsVersionProvider");return e}}}]); \ No newline at end of file diff --git a/assets/js/1d10ec36.be821c21.js b/assets/js/1d10ec36.be821c21.js new file mode 100644 index 00000000..bacd2074 --- /dev/null +++ b/assets/js/1d10ec36.be821c21.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[7628],{1864:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>g,contentTitle:()=>h,default:()=>b,frontMatter:()=>m,metadata:()=>o,toc:()=>y});const o=JSON.parse('{"id":"maplibre/geojson","title":"GeoJSON","description":"","source":"@site/src/examples/maplibre/geojson.mdx","sourceDirName":"maplibre","slug":"/maplibre/geojson","permalink":"/react-map-gl/examples/maplibre/geojson","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"GeoJSON Animation","permalink":"/react-map-gl/examples/maplibre/geojson-animation"},"next":{"title":"Heatmap","permalink":"/react-map-gl/examples/maplibre/heatmap"}}');var r=n(4848),s=n(8453),a=n(6540),i=(n(5338),n(5490));function l(e){const{year:t}=e;return(0,r.jsxs)("div",{className:"control-panel",children:[(0,r.jsx)("h3",{children:"Interactive GeoJSON"}),(0,r.jsxs)("p",{children:["Map showing median household income by state in year ",(0,r.jsx)("b",{children:t}),". Hover over a state to see details."]}),(0,r.jsxs)("p",{children:["Data source: ",(0,r.jsx)("a",{href:"www.census.gov",children:"US Census Bureau"})]}),(0,r.jsx)("div",{className:"source-link",children:(0,r.jsx)("a",{href:"https://github.com/visgl/react-maplibre/tree/1.0-release/examples/geojson",target:"_new",children:"View Code \u2197"})}),(0,r.jsx)("hr",{}),(0,r.jsxs)("div",{className:"input",children:[(0,r.jsx)("label",{children:"Year"}),(0,r.jsx)("input",{type:"range",value:t,min:1995,max:2015,step:1,onChange:t=>e.onChange(t.target.value)})]},"year")]})}const c=a.memo(l),u={id:"data",type:"fill",paint:{"fill-color":{type:"interval",property:"percentile",stops:[[0,"#3288bd"],[1,"#66c2a5"],[2,"#abdda4"],[3,"#e6f598"],[4,"#ffffbf"],[5,"#fee08b"],[6,"#fdae61"],[7,"#f46d43"],[8,"#d53e4f"]]},"fill-opacity":.8}};var p=n(6561),d=n(7982);function f(){const[e,t]=(0,a.useState)(2015),[n,o]=(0,a.useState)(null),[s,l]=(0,a.useState)(null);(0,a.useEffect)((()=>{fetch("https://raw.githubusercontent.com/uber/react-map-gl/master/examples/.data/us-income.geojson").then((e=>e.json())).then((e=>o(e))).catch((e=>console.error("Could not load data",e)))}),[]);const f=(0,a.useCallback)((e=>{const{features:t,point:{x:n,y:o}}=e,r=t&&t[0];l(r&&{feature:r,x:n,y:o})}),[]),m=(0,a.useMemo)((()=>n&&function(e,t){const{features:n}=e,o=(0,d.A)().domain(n.map(t)).range((0,p.A)(9));return{type:"FeatureCollection",features:n.map((e=>{const n=t(e),r=Object.assign({},e.properties,{value:n,percentile:o(n)});return Object.assign({},e,{properties:r})}))}}(n,(t=>t.properties.income[e]))),[n,e]);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(i.T5,{initialViewState:{latitude:40,longitude:-100,zoom:3},mapStyle:"https://basemaps.cartocdn.com/gl/positron-gl-style/style.json",interactiveLayerIds:["data"],onMouseMove:f,children:[(0,r.jsx)(i.kL,{type:"geojson",data:m,children:(0,r.jsx)(i.Wd,Object.assign({},u))}),s&&(0,r.jsxs)("div",{className:"tooltip",style:{left:s.x,top:s.y},children:[(0,r.jsxs)("div",{children:["State: ",s.feature.properties.name]}),(0,r.jsxs)("div",{children:["Median Household Income: ",s.feature.properties.value]}),(0,r.jsxs)("div",{children:["Percentile: ",s.feature.properties.percentile/8*100]})]})]}),(0,r.jsx)(c,{year:e,onChange:e=>t(e)})]})}const m={},h="GeoJSON",g={},y=[];function v(e){const t={h1:"h1",header:"header",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"geojson",children:"GeoJSON"})}),"\n","\n",(0,r.jsx)(f,{})]})}function b(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(v,{...e})}):v(e)}},5490:(e,t,n)=>{n.d(t,{T3:()=>N,tG:()=>z,Wd:()=>G,T5:()=>C,pH:()=>M,ov:()=>A,zD:()=>P,g0:()=>U,kL:()=>Z,jG:()=>F,Ay:()=>C,VI:()=>k});var o=n(6540),r=n(4848);const s=o.createContext(null);function a(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n{let n=null;"interactive"in e&&(n=Object.assign({},e),delete n.interactive);const o=t[e.ref];if(o){n=n||Object.assign({},e),delete n.ref;for(const e of c)e in o&&(n[e]=o[e])}return n||e}));return Object.assign({},e,{layers:n})}const p={version:8,sources:{},layers:[]},d={mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",click:"onClick",dblclick:"onDblClick",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",mouseout:"onMouseOut",contextmenu:"onContextMenu",touchstart:"onTouchStart",touchend:"onTouchEnd",touchmove:"onTouchMove",touchcancel:"onTouchCancel"},f={movestart:"onMoveStart",move:"onMove",moveend:"onMoveEnd",dragstart:"onDragStart",drag:"onDrag",dragend:"onDragEnd",zoomstart:"onZoomStart",zoom:"onZoom",zoomend:"onZoomEnd",rotatestart:"onRotateStart",rotate:"onRotate",rotateend:"onRotateEnd",pitchstart:"onPitchStart",pitch:"onPitch",pitchend:"onPitchEnd"},m={wheel:"onWheel",boxzoomstart:"onBoxZoomStart",boxzoomend:"onBoxZoomEnd",boxzoomcancel:"onBoxZoomCancel",resize:"onResize",load:"onLoad",render:"onRender",idle:"onIdle",remove:"onRemove",data:"onData",styledata:"onStyleData",sourcedata:"onSourceData",error:"onError"},h=["minZoom","maxZoom","minPitch","maxPitch","maxBounds","projection","renderWorldCopies"],g=["scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate","touchPitch"];class y{constructor(e,t,n){this._map=null,this._internalUpdate=!1,this._hoveredFeatures=null,this._propsedCameraUpdate=null,this._styleComponents={},this._onEvent=e=>{const t=this.props[m[e.type]];t?t(e):"error"===e.type&&console.error(e.error)},this._onCameraEvent=e=>{if(this._internalUpdate)return;e.viewState=this._propsedCameraUpdate||i(this._map.transform);const t=this.props[f[e.type]];t&&t(e)},this._onCameraUpdate=e=>this._internalUpdate?e:(this._propsedCameraUpdate=i(e),l(e,this.props)),this._onPointerEvent=e=>{"mousemove"!==e.type&&"mouseout"!==e.type||this._updateHover(e);const t=this.props[d[e.type]];t&&(this.props.interactiveLayerIds&&"mouseover"!==e.type&&"mouseout"!==e.type&&(e.features=this._hoveredFeatures||this._queryRenderedFeatures(e.point)),t(e),delete e.features)},this._MapClass=e,this.props=t,this._initialize(n)}get map(){return this._map}setProps(e){const t=this.props;this.props=e;const n=this._updateSettings(e,t),o=this._updateSize(e),r=this._updateViewState(e);this._updateStyle(e,t),this._updateStyleComponents(e),this._updateHandlers(e,t),(n||o||r&&!this._map.isMoving())&&this.redraw()}static reuse(e,t){const n=y.savedMaps.pop();if(!n)return null;const o=n.map,r=o.getContainer();for(t.className=r.className;r.childNodes.length>0;)t.appendChild(r.childNodes[0]);o._container=t;const s=o._resizeObserver;s&&(s.disconnect(),s.observe(t)),n.setProps(Object.assign({},e,{styleDiffing:!1})),o.resize();const{initialViewState:a}=e;return a&&(a.bounds?o.fitBounds(a.bounds,Object.assign({},a.fitBoundsOptions,{duration:0})):n._updateViewState(a)),o.isStyleLoaded()?o.fire("load"):o.once("style.load",(()=>o.fire("load"))),o._update(),n}_initialize(e){const{props:t}=this,{mapStyle:n=p}=t,o=Object.assign({},t,t.initialViewState,{container:e,style:u(n)}),r=o.initialViewState||o.viewState||o;if(Object.assign(o,{center:[r.longitude||0,r.latitude||0],zoom:r.zoom||0,pitch:r.pitch||0,bearing:r.bearing||0}),t.gl){const e=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=e,t.gl)}const s=new this._MapClass(o);r.padding&&s.setPadding(r.padding),t.cursor&&(s.getCanvas().style.cursor=t.cursor),s.transformCameraUpdate=this._onCameraUpdate,s.on("style.load",(()=>{this._styleComponents={light:s.getLight(),sky:s.getSky(),projection:null==s.getProjection?void 0:s.getProjection(),terrain:s.getTerrain()},this._updateStyleComponents(this.props)})),s.on("sourcedata",(()=>{this._updateStyleComponents(this.props)}));for(const a in d)s.on(a,this._onPointerEvent);for(const a in f)s.on(a,this._onCameraEvent);for(const a in m)s.on(a,this._onEvent);this._map=s}recycle(){const e=this.map.getContainer().querySelector("[mapboxgl-children]");null==e||e.remove(),y.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){const e=this._map;e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())}_updateSize(e){const{viewState:t}=e;if(t){const e=this._map;if(t.width!==e.transform.width||t.height!==e.transform.height)return e.resize(),!0}return!1}_updateViewState(e){const t=this._map,n=t.transform;if(!t.isMoving()){const o=l(n,e);if(Object.keys(o).length>0)return this._internalUpdate=!0,t.jumpTo(o),this._internalUpdate=!1,!0}return!1}_updateSettings(e,t){const n=this._map;let o=!1;for(const r of h)if(r in e&&!a(e[r],t[r])){o=!0;const t=n["set"+r[0].toUpperCase()+r.slice(1)];null==t||t.call(n,e[r])}return o}_updateStyle(e,t){if(e.cursor!==t.cursor&&(this._map.getCanvas().style.cursor=e.cursor||""),e.mapStyle!==t.mapStyle){const{mapStyle:t=p,styleDiffing:n=!0}=e,o={diff:n};"localIdeographFontFamily"in e&&(o.localIdeographFontFamily=e.localIdeographFontFamily),this._map.setStyle(u(t),o)}}_updateStyleComponents(e){let{light:t,projection:n,sky:o,terrain:r}=e;const s=this._map,i=this._styleComponents;var l;s.style._loaded&&(t&&!a(t,i.light)&&(i.light=t,s.setLight(t)),n&&!a(n,i.projection)&&n!==(null==(l=i.projection)?void 0:l.type)&&(i.projection="string"==typeof n?{type:n}:n,null==s.setProjection||s.setProjection(i.projection)),o&&!a(o,i.sky)&&(i.sky=o,s.setSky(o)),void 0===r||a(r,i.terrain)||r&&!s.getSource(r.source)||(i.terrain=r,s.setTerrain(r)))}_updateHandlers(e,t){const n=this._map;for(const s of g){var o,r;const i=null==(o=e[s])||o;a(i,null==(r=t[s])||r)||(i?n[s].enable(i):n[s].disable())}}_queryRenderedFeatures(e){const t=this._map,{interactiveLayerIds:n=[]}=this.props;try{return t.queryRenderedFeatures(e,{layers:n.filter(t.getLayer.bind(t))})}catch(o){return[]}}_updateHover(e){const{props:t}=this;if(t.interactiveLayerIds&&(t.onMouseMove||t.onMouseEnter||t.onMouseLeave)){var n;const t=e.type,o=(null==(n=this._hoveredFeatures)?void 0:n.length)>0,r=this._queryRenderedFeatures(e.point),s=r.length>0;!s&&o&&(e.type="mouseleave",this._onPointerEvent(e)),this._hoveredFeatures=r,s&&!o&&(e.type="mouseenter",this._onPointerEvent(e)),e.type=t}else this._hoveredFeatures=null}}y.savedMaps=[];const v=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function b(e){if(!e)return null;const t=e.map,n={getMap:()=>t};for(const o of function(e){const t=new Set;let n=e;for(;n;){for(const o of Object.getOwnPropertyNames(n))"_"!==o[0]&&"function"==typeof e[o]&&"fire"!==o&&"setEventedParent"!==o&&t.add(o);n=Object.getPrototypeOf(n)}return Array.from(t)}(t))o in n||v.includes(o)||(n[o]=t[o].bind(t));return n}const x="undefined"!=typeof document?o.useLayoutEffect:o.useEffect;const _=o.createContext(null);function j(e,t){const a=(0,o.useContext)(s),[i,l]=(0,o.useState)(null),c=(0,o.useRef)(),{current:u}=(0,o.useRef)({mapLib:null,map:null});(0,o.useEffect)((()=>{const t=e.mapLib;let o,r=!0;return Promise.resolve(t||n.e(6443).then(n.t.bind(n,6443,23))).then((t=>{if(!r)return;if(!t)throw new Error("Invalid mapLib");const n="Map"in t?t:t.default;if(!n.Map)throw new Error("Invalid mapLib");if(function(e,t){const{RTLTextPlugin:n,maxParallelImageRequests:o,workerCount:r,workerUrl:s}=t;if(n&&e.getRTLTextPluginStatus&&"unavailable"===e.getRTLTextPluginStatus()){const{pluginUrl:t,lazy:o=!0}="string"==typeof n?{pluginUrl:n}:n;e.setRTLTextPlugin(t,(e=>{e&&console.error(e)}),o)}void 0!==o&&e.setMaxParallelImageRequests(o),void 0!==r&&e.setWorkerCount(r),void 0!==s&&e.setWorkerUrl(s)}(n,e),n.supported&&!n.supported(e))throw new Error("Map is not supported by this browser");e.reuseMaps&&(o=y.reuse(e,c.current)),o||(o=new y(n.Map,e,c.current)),u.map=b(o),u.mapLib=n,l(o),null==a||a.onMapMount(u.map,e.id)})).catch((t=>{const{onError:n}=e;n?n({type:"error",target:null,originalEvent:null,error:t}):console.error(t)})),()=>{r=!1,o&&(null==a||a.onMapUnmount(e.id),e.reuseMaps?o.recycle():o.destroy())}}),[]),x((()=>{i&&i.setProps(e)})),(0,o.useImperativeHandle)(t,(()=>u.map),[i]);const p=(0,o.useMemo)((()=>Object.assign({position:"relative",width:"100%",height:"100%"},e.style)),[e.style]);return(0,r.jsx)("div",{id:e.id,ref:c,style:p,children:i&&(0,r.jsx)(_.Provider,{value:u,children:(0,r.jsx)("div",{"mapboxgl-children":"",style:{height:"100%"},children:e.children})})})}const C=o.forwardRef(j);var S=n(961);const L=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function w(e,t){if(!e||!t)return;const n=e.style;for(const o in t){const e=t[o];Number.isFinite(e)&&!L.test(o)?n[o]=e+"px":n[o]=e}}const M=(0,o.memo)((0,o.forwardRef)(((e,t)=>{const{map:n,mapLib:r}=(0,o.useContext)(_),s=(0,o.useRef)({props:e});s.current.props=e;const a=(0,o.useMemo)((()=>{let t=!1;o.Children.forEach(e.children,(e=>{e&&(t=!0)}));const n=Object.assign({},e,{element:t?document.createElement("div"):null}),i=new r.Marker(n);return i.setLngLat([e.longitude,e.latitude]),i.getElement().addEventListener("click",(e=>{null==s.current.props.onClick||s.current.props.onClick({type:"click",target:i,originalEvent:e})})),i.on("dragstart",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDragStart||s.current.props.onDragStart(t)})),i.on("drag",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDrag||s.current.props.onDrag(t)})),i.on("dragend",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDragEnd||s.current.props.onDragEnd(t)})),i}),[]);(0,o.useEffect)((()=>(a.addTo(n.getMap()),()=>{a.remove()})),[]);const{longitude:i,latitude:l,offset:c,style:u,draggable:p=!1,popup:d=null,rotation:f=0,rotationAlignment:m="auto",pitchAlignment:h="auto"}=e;return(0,o.useEffect)((()=>{w(a.getElement(),u)}),[u]),(0,o.useImperativeHandle)(t,(()=>a),[]),a.getLngLat().lng===i&&a.getLngLat().lat===l||a.setLngLat([i,l]),c&&!function(e,t){const n=Array.isArray(e)?e[0]:e?e.x:0,o=Array.isArray(e)?e[1]:e?e.y:0,r=Array.isArray(t)?t[0]:t?t.x:0,s=Array.isArray(t)?t[1]:t?t.y:0;return n===r&&o===s}(a.getOffset(),c)&&a.setOffset(c),a.isDraggable()!==p&&a.setDraggable(p),a.getRotation()!==f&&a.setRotation(f),a.getRotationAlignment()!==m&&a.setRotationAlignment(m),a.getPitchAlignment()!==h&&a.setPitchAlignment(h),a.getPopup()!==d&&a.setPopup(d),(0,S.createPortal)(e.children,a.getElement())})));function E(e){return new Set(e?e.trim().split(/\s+/):[])}const P=(0,o.memo)((0,o.forwardRef)(((e,t)=>{const{map:n,mapLib:r}=(0,o.useContext)(_),s=(0,o.useMemo)((()=>document.createElement("div")),[]),i=(0,o.useRef)({props:e});i.current.props=e;const l=(0,o.useMemo)((()=>{const t=Object.assign({},e),n=new r.Popup(t);return n.setLngLat([e.longitude,e.latitude]),n.once("open",(e=>{null==i.current.props.onOpen||i.current.props.onOpen(e)})),n}),[]);if((0,o.useEffect)((()=>{const e=e=>{null==i.current.props.onClose||i.current.props.onClose(e)};return l.on("close",e),l.setDOMContent(s).addTo(n.getMap()),()=>{l.off("close",e),l.isOpen()&&l.remove()}}),[]),(0,o.useEffect)((()=>{w(l.getElement(),e.style)}),[e.style]),(0,o.useImperativeHandle)(t,(()=>l),[]),l.isOpen()&&(l.getLngLat().lng===e.longitude&&l.getLngLat().lat===e.latitude||l.setLngLat([e.longitude,e.latitude]),e.offset&&!a(l.options.offset,e.offset)&&l.setOffset(e.offset),l.options.anchor===e.anchor&&l.options.maxWidth===e.maxWidth||(l.options.anchor=e.anchor,l.setMaxWidth(e.maxWidth)),l.options.className!==e.className)){const t=E(l.options.className),n=E(e.className);for(const e of t)n.has(e)||l.removeClassName(e);for(const e of n)t.has(e)||l.addClassName(e);l.options.className=e.className}return(0,S.createPortal)(e.children,s)})));function k(e,t,n,r){const s=(0,o.useContext)(_),a=(0,o.useMemo)((()=>e(s)),[]);return(0,o.useEffect)((()=>{const e=r||n||t,o="function"==typeof t&&"function"==typeof n?t:null,i="function"==typeof n?n:"function"==typeof t?t:null,{map:l}=s;return l.hasControl(a)||(l.addControl(a,null==e?void 0:e.position),o&&o(s)),()=>{i&&i(s),l.hasControl(a)&&l.removeControl(a)}}),[]),a}function O(e){const t=k((t=>{let{mapLib:n}=t;return new n.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)})}),{position:e.position});return(0,o.useEffect)((()=>{w(t._controlContainer,e.style)}),[e.style]),null}const N=(0,o.memo)(O);function R(e,t){const n=(0,o.useRef)({props:e}),r=k((t=>{let{mapLib:o}=t;const r=new o.GeolocateControl(e),s=r._setupUI;return r._setupUI=()=>{r._container.hasChildNodes()||s()},r.on("geolocate",(e=>{null==n.current.props.onGeolocate||n.current.props.onGeolocate(e)})),r.on("error",(e=>{null==n.current.props.onError||n.current.props.onError(e)})),r.on("outofmaxbounds",(e=>{null==n.current.props.onOutOfMaxBounds||n.current.props.onOutOfMaxBounds(e)})),r.on("trackuserlocationstart",(e=>{null==n.current.props.onTrackUserLocationStart||n.current.props.onTrackUserLocationStart(e)})),r.on("trackuserlocationend",(e=>{null==n.current.props.onTrackUserLocationEnd||n.current.props.onTrackUserLocationEnd(e)})),r}),{position:e.position});return n.current.props=e,(0,o.useImperativeHandle)(t,(()=>r),[]),(0,o.useEffect)((()=>{w(r._container,e.style)}),[e.style]),null}const z=(0,o.memo)((0,o.forwardRef)(R));function T(e){const t=k((t=>{let{mapLib:n}=t;return new n.NavigationControl(e)}),{position:e.position});return(0,o.useEffect)((()=>{w(t._container,e.style)}),[e.style]),null}const A=(0,o.memo)(T);function I(e){const t=k((t=>{let{mapLib:n}=t;return new n.ScaleControl(e)}),{position:e.position}),n=(0,o.useRef)(e),r=n.current;n.current=e;const{style:s}=e;return void 0!==e.maxWidth&&e.maxWidth!==r.maxWidth&&(t.options.maxWidth=e.maxWidth),void 0!==e.unit&&e.unit!==r.unit&&t.setUnit(e.unit),(0,o.useEffect)((()=>{w(t._container,s)}),[s]),null}const U=(0,o.memo)(I);function D(e){const t=k((t=>{let{mapLib:n}=t;return new n.TerrainControl(e)}),{position:e.position});return(0,o.useEffect)((()=>{w(t._container,e.style)}),[e.style]),null}const F=(0,o.memo)(D);function W(e,t){if(!e)throw new Error(t)}let H=0;function Z(e){const t=(0,o.useContext)(_).map.getMap(),n=(0,o.useRef)(e),[,r]=(0,o.useState)(0),s=(0,o.useMemo)((()=>e.id||"jsx-source-"+H++),[]);(0,o.useEffect)((()=>{if(t){const e=()=>setTimeout((()=>r((e=>e+1))),0);return t.on("styledata",e),e(),()=>{if(t.off("styledata",e),t.style&&t.style._loaded&&t.getSource(s)){var n;const e=null==(n=t.getStyle())?void 0:n.layers;if(e)for(const n of e)n.source===s&&t.removeLayer(n.id);t.removeSource(s)}}}}),[t]);let i=t&&t.style&&t.getSource(s);return i?function(e,t,n){W(t.id===n.id,"source id changed"),W(t.type===n.type,"source type changed");let o="",r=0;for(const i in t)"children"===i||"id"===i||a(n[i],t[i])||(o=i,r++);if(!r)return;const s=t.type;if("geojson"===s)e.setData(t.data);else if("image"===s)e.updateImage({url:t.url,coordinates:t.coordinates});else switch(o){case"coordinates":null==e.setCoordinates||e.setCoordinates(t.coordinates);break;case"url":null==e.setUrl||e.setUrl(t.url);break;case"tiles":null==e.setTiles||e.setTiles(t.tiles);break;default:console.warn("Unable to update prop: "+o)}}(i,e,n.current):i=function(e,t,n){if(e.style&&e.style._loaded){const o=Object.assign({},n);return delete o.id,delete o.children,e.addSource(t,o),e.getSource(t)}return null}(t,s,e),n.current=e,i&&o.Children.map(e.children,(e=>e&&(0,o.cloneElement)(e,{source:s})))||null}let B=0;function G(e){const t=(0,o.useContext)(_).map.getMap(),n=(0,o.useRef)(e),[,r]=(0,o.useState)(0),s=(0,o.useMemo)((()=>e.id||"jsx-layer-"+B++),[]);(0,o.useEffect)((()=>{if(t){const e=()=>r((e=>e+1));return t.on("styledata",e),e(),()=>{t.off("styledata",e),t.style&&t.style._loaded&&t.getLayer(s)&&t.removeLayer(s)}}}),[t]);if(t&&t.style&&t.getLayer(s))try{!function(e,t,n,o){if(W(n.id===o.id,"layer id changed"),W(n.type===o.type,"layer type changed"),"custom"===n.type||"custom"===o.type)return;const{layout:r={},paint:s={},filter:i,minzoom:l,maxzoom:c,beforeId:u}=n;if(u!==o.beforeId&&e.moveLayer(t,u),r!==o.layout){const n=o.layout||{};for(const o in r)a(r[o],n[o])||e.setLayoutProperty(t,o,r[o]);for(const o in n)r.hasOwnProperty(o)||e.setLayoutProperty(t,o,void 0)}if(s!==o.paint){const n=o.paint||{};for(const o in s)a(s[o],n[o])||e.setPaintProperty(t,o,s[o]);for(const o in n)s.hasOwnProperty(o)||e.setPaintProperty(t,o,void 0)}a(i,o.filter)||e.setFilter(t,i),l===o.minzoom&&c===o.maxzoom||e.setLayerZoomRange(t,l,c)}(t,s,e,n.current)}catch(i){console.warn(i)}else!function(e,t,n){if(e.style&&e.style._loaded&&(!("source"in n)||e.getSource(n.source))){const o=Object.assign({},n,{id:t});delete o.beforeId,e.addLayer(o,n.beforeId)}}(t,s,e);return n.current=e,null}},8453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>i});var o=n(6540);const r={},s=o.createContext(r);function a(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),o.createElement(s.Provider,{value:t},e.children)}},6561:(e,t,n)=>{function o(e,t,n){e=+e,t=+t,n=(r=arguments.length)<2?(t=e,e=0,1):r<3?1:+n;for(var o=-1,r=0|Math.max(0,Math.ceil((t-e)/n)),s=new Array(r);++oo})},7982:(e,t,n)=>{function o(e){return null===e?NaN:+e}function r(e,t,n=o){if((r=e.length)&&!isNaN(t=+t)){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,s=(r-1)*t,a=Math.floor(s),i=+n(e[a],a,e);return i+(+n(e[a+1],a+1,e)-i)*(s-a)}}function s(e,t){return null==e||null==t?NaN:et?1:e>=t?0:NaN}function a(e,t){return null==e||null==t?NaN:te?1:t>=e?0:NaN}function i(e){let t,n,o;function r(e,o,r=0,s=e.length){if(r>>1;n(e[t],o)<0?r=t+1:s=t}while(rs(e(t),n),o=(t,n)=>e(t)-n):(t=e===s||e===a?e:l,n=e,o=e),{left:r,center:function(e,t,n=0,s=e.length){const a=r(e,t,n,s-1);return a>n&&o(e[a-1],t)>-o(e[a],t)?a-1:a},right:function(e,o,r=0,s=e.length){if(r>>1;n(e[t],o)<=0?r=t+1:s=t}while(rf});const c=i(s),u=c.right,p=(c.left,i(o).center,u);function d(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}function f(){var e,t=[],n=[],o=[];function a(){var e=0,s=Math.max(1,n.length);for(o=new Array(s-1);++e0?o[r-1]:t[0],r{i.d(t,{A:()=>a});i(6540);var n=i(4164),o=i(1312),s=i(1107),r=i(4848);function a(e){let{className:t}=e;return(0,r.jsx)("main",{className:(0,n.A)("container margin-vert--xl",t),children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(s.A,{as:"h1",className:"hero__title",children:(0,r.jsx)(o.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,r.jsx)("p",{children:(0,r.jsx)(o.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,r.jsx)("p",{children:(0,r.jsx)(o.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},2237:(e,t,i)=>{i.r(t),i.d(t,{default:()=>l});i(6540);var n=i(1312),o=i(1003),s=i(4207),r=i(3363),a=i(4848);function l(){const e=(0,n.T)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.be,{title:e}),(0,a.jsx)(s.A,{children:(0,a.jsx)(r.A,{})})]})}}}]); \ No newline at end of file diff --git a/assets/js/232a0b40.b9ab4920.js b/assets/js/232a0b40.b9ab4920.js deleted file mode 100644 index cb2bd6b4..00000000 --- a/assets/js/232a0b40.b9ab4920.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[5326],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>m});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),c=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=c(e.components);return n.createElement(u.Provider,{value:t},e.children)},f="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),f=c(r),p=o,m=f["".concat(u,".").concat(p)]||f[p]||d[p]||a;return r?n.createElement(m,i(i({ref:t},l),{},{components:r})):n.createElement(m,i({ref:t},l))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=p;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[f]="string"==typeof e?e:o,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>y,contentTitle:()=>g,default:()=>S,frontMatter:()=>v,metadata:()=>h,toc:()=>b});var n=r(7462),o=r(3366),a=r(7294),i=r(3905),s=(r(745),r(945));function u(e){var t=(0,a.useCallback)((function(t){e.onModeChange(t.target.value)}),[e.onModeChange]);return a.createElement("div",{className:"control-panel"},a.createElement("h3",null,"Side by Side"),a.createElement("p",null,"Synchronize two maps."),a.createElement("div",null,a.createElement("label",null,"Mode: "),a.createElement("select",{value:e.mode,onChange:t},a.createElement("option",{value:"side-by-side"},"Side by side"),a.createElement("option",{value:"split-screen"},"Split screen"))),a.createElement("div",{className:"source-link"},a.createElement("a",{href:"https://github.com/visgl/react-map-gl/tree/7.1-release/examples/side-by-side",target:"_new"},"View Code \u2197")))}const c=a.memo(u);var l="",f={position:"absolute",width:"50%",height:"100%"},d={position:"absolute",left:"50%",width:"50%",height:"100%"};function p(){var e=(0,a.useState)({longitude:-122.43,latitude:37.78,zoom:12,pitch:30}),t=e[0],r=e[1],o=(0,a.useState)("side-by-side"),i=o[0],u=o[1],p=(0,a.useState)("left"),m=p[0],v=p[1],g=(0,a.useCallback)((function(){return v("left")}),[]),h=(0,a.useCallback)((function(){return v("right")}),[]),y=(0,a.useCallback)((function(e){return r(e.viewState)}),[]),b="undefined"==typeof window?100:window.innerWidth,_=(0,a.useMemo)((function(){return{left:"split-screen"===i?b/2:0,top:0,right:0,bottom:0}}),[b,i]),E=(0,a.useMemo)((function(){return{right:"split-screen"===i?b/2:0,top:0,left:0,bottom:0}}),[b,i]);return a.createElement(a.Fragment,null,a.createElement("div",{style:{position:"relative",height:"100%"}},a.createElement(s.ZP,(0,n.Z)({id:"left-map"},t,{padding:_,onMoveStart:g,onMove:"left"===m&&y,style:f,mapStyle:"mapbox://styles/mapbox/light-v9",mapboxAccessToken:l})),a.createElement(s.ZP,(0,n.Z)({id:"right-map"},t,{padding:E,onMoveStart:h,onMove:"right"===m&&y,style:d,mapStyle:"mapbox://styles/mapbox/dark-v9",mapboxAccessToken:l}))),a.createElement(c,{mode:i,onModeChange:u}))}var m=["components"],v={},g="Side by Side",h={unversionedId:"side-by-side",id:"side-by-side",title:"Side by Side",description:"",source:"@site/src/examples/side-by-side.mdx",sourceDirName:".",slug:"/side-by-side",permalink:"/react-map-gl/examples/side-by-side",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"examplesSidebar",previous:{title:"Geocoder",permalink:"/react-map-gl/examples/geocoder"}},y={},b=[],_={toc:b},E="wrapper";function S(e){var t=e.components,r=(0,o.Z)(e,m);return(0,i.kt)(E,(0,n.Z)({},_,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"side-by-side"},"Side by Side"),(0,i.kt)(p,{mdxType:"App"}))}S.isMDXComponent=!0},945:(e,t,r)=>{r.d(t,{ot:()=>$,$j:()=>te,mh:()=>ne,D5:()=>X,Jx:()=>K,Pv:()=>ee,GI:()=>Y,jf:()=>re,Hw:()=>oe,ZP:()=>ae,PE:()=>Z});var n=r(7294),o=n.createContext(null);var a=r(1202);function i(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(var r=0;r0;)r.appendChild(a.childNodes[0]);o._container=r;var i=o._resizeObserver;i&&(i.disconnect(),i.observe(r)),n.setProps(Object.assign({},t,{styleDiffing:!1})),o.resize();var s=t.initialViewState;return s&&(s.bounds?o.fitBounds(s.bounds,Object.assign({},s.fitBoundsOptions,{duration:0})):n._updateViewState(s,!1)),o.isStyleLoaded()?o.fire("load"):o.once("styledata",(function(){return o.fire("load")})),o._update(),n},t._initialize=function(e){var t=this,r=this.props,n=r.mapStyle,o=void 0===n?p:n,a=Object.assign({},r,r.initialViewState,{accessToken:r.mapboxAccessToken||_()||null,container:e,style:d(o)}),i=a.initialViewState||a.viewState||a;if(Object.assign(a,{center:[i.longitude||0,i.latitude||0],zoom:i.zoom||0,pitch:i.pitch||0,bearing:i.bearing||0}),r.gl){var u=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=function(){return HTMLCanvasElement.prototype.getContext=u,r.gl}}var c=new this._MapClass(a);i.padding&&c.setPadding(i.padding),r.cursor&&(c.getCanvas().style.cursor=r.cursor),this._createShadowTransform(c);var l=c._render;c._render=function(e){t._inRender=!0,l.call(c,e),t._inRender=!1};var f=c._renderTaskQueue.run;c._renderTaskQueue.run=function(e){f.call(c._renderTaskQueue,e),t._onBeforeRepaint()},c.on("render",(function(){return t._onAfterRepaint()}));var h=c.fire;for(var y in c.fire=this._fireEvent.bind(this,h),c.on("resize",(function(){t._renderTransform.resize(c.transform.width,c.transform.height)})),c.on("styledata",(function(){t._updateStyleComponents(t.props,{}),s(c.transform,t._renderTransform)})),c.on("sourcedata",(function(){return t._updateStyleComponents(t.props,{})})),m)c.on(y,this._onPointerEvent);for(var b in v)c.on(b,this._onCameraEvent);for(var E in g)c.on(E,this._onEvent);this._map=c},t.recycle=function(){var t=this.map.getContainer().querySelector("[mapboxgl-children]");null==t||t.remove(),e.savedMaps.push(this)},t.destroy=function(){this._map.remove()},t.redraw=function(){var e=this._map;!this._inRender&&e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())},t._createShadowTransform=function(e){var t,r,n=(t=e.transform,(r=t.clone()).pixelsToGLUnits=t.pixelsToGLUnits,r);e.painter.transform=n,this._renderTransform=n},t._updateSize=function(e){var t=e.viewState;if(t){var r=this._map;if(t.width!==r.transform.width||t.height!==r.transform.height)return r.resize(),!0}return!1},t._updateViewState=function(e,t){if(this._internalUpdate)return!1;var r=this._map,n=this._renderTransform,o=n.zoom,a=n.pitch,i=n.bearing,s=r.isMoving();s&&(n.cameraElevationReference="sea");var l=c(n,Object.assign({},u(r.transform),e));if(s&&(n.cameraElevationReference="ground"),l&&t){var f=this._deferredEvents;f.move=!0,f.zoom||(f.zoom=o!==n.zoom),f.rotate||(f.rotate=i!==n.bearing),f.pitch||(f.pitch=a!==n.pitch)}return s||c(r.transform,e),l},t._updateSettings=function(e,t){for(var r=this._map,n=!1,o=0,a=h;o0,a=this._queryRenderedFeatures(e.point),i=a.length>0;!i&&o&&(e.type="mouseleave",this._onPointerEvent(e)),this._hoveredFeatures=a,i&&!o&&(e.type="mouseenter",this._onPointerEvent(e)),e.type=n}else this._hoveredFeatures=null},t._fireEvent=function(e,t,r){var n=this._map,o=n.transform,a="string"==typeof t?t:t.type;return"move"===a&&this._updateViewState(this.props,!1),a in v&&("object"==typeof t&&(t.viewState=u(o)),this._map.isMoving())?(n.transform=this._renderTransform,e.call(n,t,r),n.transform=o,n):(e.call(n,t,r),n)},t._onBeforeRepaint=function(){var e=this,t=this._map;for(var r in this._internalUpdate=!0,this._deferredEvents)this._deferredEvents[r]&&t.fire(r);this._internalUpdate=!1;var n=this._map.transform;t.transform=this._renderTransform,this._onAfterRepaint=function(){s(e._renderTransform,n),t.transform=n}},(0,a.Z)(e,[{key:"map",get:function(){return this._map}},{key:"transform",get:function(){return this._renderTransform}}]),e}();function _(){var e=null;if("undefined"!=typeof location){var t=/access_token=([^&\/]*)/.exec(location.search);e=t&&t[1]}try{e=e||"pk.eyJ1IjoidWNmLW1hcGJveCIsImEiOiJja2tyNHQzdnIzYmNnMndwZGI3djNzdjVyIn0.xgCXV9mLZ47q7easx6WLCQ"}catch(r){}try{e=e||process.env.REACT_APP_MAPBOX_ACCESS_TOKEN}catch(n){}return e}b.savedMaps=[];var E=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function S(e){if(!e)return null;for(var t,r=e.map,n={getMap:function(){return r},getCenter:function(){return e.transform.center},getZoom:function(){return e.transform.zoom},getBearing:function(){return e.transform.bearing},getPitch:function(){return e.transform.pitch},getPadding:function(){return e.transform.padding},getBounds:function(){return e.transform.getBounds()},project:function(t){var n=r.transform;r.transform=e.transform;var o=r.project(t);return r.transform=n,o},unproject:function(t){var n=r.transform;r.transform=e.transform;var o=r.unproject(t);return r.transform=n,o},queryTerrainElevation:function(t,n){var o=r.transform;r.transform=e.transform;var a=r.queryTerrainElevation(t,n);return r.transform=o,a},queryRenderedFeatures:function(t,n){var o=r.transform;r.transform=e.transform;var a=r.queryRenderedFeatures(t,n);return r.transform=o,a}},o=(0,l.Z)(function(e){var t=new Set,r=e;for(;r;){for(var n,o=(0,l.Z)(Object.getOwnPropertyNames(r));!(n=o()).done;){var a=n.value;"_"!==a[0]&&"function"==typeof e[a]&&"fire"!==a&&"setEventedParent"!==a&&t.add(a)}r=Object.getPrototypeOf(r)}return Array.from(t)}(r));!(t=o()).done;){var a=t.value;a in n||E.includes(a)||(n[a]=r[a].bind(r))}return n}const w="undefined"!=typeof document?n.useLayoutEffect:n.useEffect;var x=["baseApiUrl","maxParallelImageRequests","workerClass","workerCount","workerUrl"];var C=n.createContext(null);function L(e,t,r){var a=(0,n.useContext)(o),i=(0,n.useState)(null),s=i[0],u=i[1],c=(0,n.useRef)(),f=(0,n.useRef)({mapLib:null,map:null}).current;(0,n.useEffect)((function(){var t,n=e.mapLib,o=!0;return Promise.resolve(n||r).then((function(r){if(o){if(!r)throw new Error("Invalid mapLib");var n="Map"in r?r:r.default;if(!n.Map)throw new Error("Invalid mapLib");if(function(e,t){for(var r,n=(0,l.Z)(x);!(r=n()).done;){var o=r.value;o in t&&(e[o]=t[o])}var a=t.RTLTextPlugin,i=void 0===a?"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js":a;i&&e.getRTLTextPluginStatus&&"unavailable"===e.getRTLTextPluginStatus()&&e.setRTLTextPlugin(i,(function(e){e&&console.error(e)}),!0)}(n,e),n.supported&&!n.supported(e))throw new Error("Map is not supported by this browser");e.reuseMaps&&(t=b.reuse(e,c.current)),t||(t=new b(n.Map,e,c.current)),f.map=S(t),f.mapLib=n,u(t),null==a||a.onMapMount(f.map,e.id)}})).catch((function(t){var r=e.onError;r?r({type:"error",target:null,originalEvent:null,error:t}):console.error(t)})),function(){o=!1,t&&(null==a||a.onMapUnmount(e.id),e.reuseMaps?t.recycle():t.destroy())}}),[]),w((function(){s&&s.setProps(e)})),(0,n.useImperativeHandle)(t,(function(){return f.map}),[s]);var d=(0,n.useMemo)((function(){return Object.assign({position:"relative",width:"100%",height:"100%"},e.style)}),[e.style]);return n.createElement("div",{id:e.id,ref:c,style:d},s&&n.createElement(C.Provider,{value:f},n.createElement("div",{"mapboxgl-children":"",style:{height:"100%"}},e.children)))}var P=r(3935),M=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function O(e,t){if(e&&t){var r=e.style;for(var n in t){var o=t[n];Number.isFinite(o)&&!M.test(n)?r[n]=o+"px":r[n]=o}}}function T(e,t){var r=(0,n.useContext)(C),o=r.map,a=r.mapLib,i=(0,n.useRef)({props:e});i.current.props=e;var s=(0,n.useMemo)((function(){var t=!1;n.Children.forEach(e.children,(function(e){e&&(t=!0)}));var r=Object.assign({},e,{element:t?document.createElement("div"):null}),o=new a.Marker(r);return o.setLngLat([e.longitude,e.latitude]),o.getElement().addEventListener("click",(function(e){null==i.current.props.onClick||i.current.props.onClick({type:"click",target:o,originalEvent:e})})),o.on("dragstart",(function(e){var t=e;t.lngLat=s.getLngLat(),null==i.current.props.onDragStart||i.current.props.onDragStart(t)})),o.on("drag",(function(e){var t=e;t.lngLat=s.getLngLat(),null==i.current.props.onDrag||i.current.props.onDrag(t)})),o.on("dragend",(function(e){var t=e;t.lngLat=s.getLngLat(),null==i.current.props.onDragEnd||i.current.props.onDragEnd(t)})),o}),[]);(0,n.useEffect)((function(){return s.addTo(o.getMap()),function(){s.remove()}}),[]);var u,c,l,f,d,p,m=e.longitude,v=e.latitude,g=e.offset,h=e.style,y=e.draggable,b=void 0!==y&&y,_=e.popup,E=void 0===_?null:_,S=e.rotation,w=void 0===S?0:S,x=e.rotationAlignment,L=void 0===x?"auto":x,M=e.pitchAlignment,T=void 0===M?"auto":M;return(0,n.useEffect)((function(){O(s.getElement(),h)}),[h]),(0,n.useImperativeHandle)(t,(function(){return s}),[]),s.getLngLat().lng===m&&s.getLngLat().lat===v||s.setLngLat([m,v]),g&&(u=s.getOffset(),c=g,l=Array.isArray(u)?u[0]:u?u.x:0,f=Array.isArray(u)?u[1]:u?u.y:0,d=Array.isArray(c)?c[0]:c?c.x:0,p=Array.isArray(c)?c[1]:c?c.y:0,l!==d||f!==p)&&s.setOffset(g),s.isDraggable()!==b&&s.setDraggable(b),s.getRotation()!==w&&s.setRotation(w),s.getRotationAlignment()!==L&&s.setRotationAlignment(L),s.getPitchAlignment()!==T&&s.setPitchAlignment(T),s.getPopup()!==E&&s.setPopup(E),(0,P.createPortal)(e.children,s.getElement())}const j=(0,n.memo)((0,n.forwardRef)(T));function k(e){return new Set(e?e.trim().split(/\s+/):[])}function R(e,t){var r=(0,n.useContext)(C),o=r.map,a=r.mapLib,s=(0,n.useMemo)((function(){return document.createElement("div")}),[]),u=(0,n.useRef)({props:e});u.current.props=e;var c=(0,n.useMemo)((function(){var t=Object.assign({},e),r=new a.Popup(t);return r.setLngLat([e.longitude,e.latitude]),r.once("open",(function(e){null==u.current.props.onOpen||u.current.props.onOpen(e)})),r}),[]);if((0,n.useEffect)((function(){var e=function(e){null==u.current.props.onClose||u.current.props.onClose(e)};return c.on("close",e),c.setDOMContent(s).addTo(o.getMap()),function(){c.off("close",e),c.isOpen()&&c.remove()}}),[]),(0,n.useEffect)((function(){O(c.getElement(),e.style)}),[e.style]),(0,n.useImperativeHandle)(t,(function(){return c}),[]),c.isOpen()&&(c.getLngLat().lng===e.longitude&&c.getLngLat().lat===e.latitude||c.setLngLat([e.longitude,e.latitude]),e.offset&&!i(c.options.offset,e.offset)&&c.setOffset(e.offset),c.options.anchor===e.anchor&&c.options.maxWidth===e.maxWidth||(c.options.anchor=e.anchor,c.setMaxWidth(e.maxWidth)),c.options.className!==e.className)){for(var f,d=k(c.options.className),p=k(e.className),m=(0,l.Z)(d);!(f=m()).done;){var v=f.value;p.has(v)||c.removeClassName(v)}for(var g,h=(0,l.Z)(p);!(g=h()).done;){var y=g.value;d.has(y)||c.addClassName(y)}c.options.className=e.className}return(0,P.createPortal)(e.children,s)}const z=(0,n.memo)((0,n.forwardRef)(R));const Z=function(e,t,r,o){var a=(0,n.useContext)(C),i=(0,n.useMemo)((function(){return e(a)}),[]);return(0,n.useEffect)((function(){var e=o||r||t,n="function"==typeof t&&"function"==typeof r?t:null,s="function"==typeof r?r:"function"==typeof t?t:null,u=a.map;return u.hasControl(i)||(u.addControl(i,null==e?void 0:e.position),n&&n(a)),function(){s&&s(a),u.hasControl(i)&&u.removeControl(i)}}),[]),i};function I(e){var t=Z((function(t){return new t.mapLib.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)})}),{position:e.position});return(0,n.useEffect)((function(){O(t._controlContainer,e.style)}),[e.style]),null}const A=(0,n.memo)(I);function D(e,t){var r=(0,n.useRef)({props:e}),o=Z((function(t){var n=new t.mapLib.GeolocateControl(e),o=n._setupUI;return n._setupUI=function(e){n._container.hasChildNodes()||o(e)},n.on("geolocate",(function(e){null==r.current.props.onGeolocate||r.current.props.onGeolocate(e)})),n.on("error",(function(e){null==r.current.props.onError||r.current.props.onError(e)})),n.on("outofmaxbounds",(function(e){null==r.current.props.onOutOfMaxBounds||r.current.props.onOutOfMaxBounds(e)})),n.on("trackuserlocationstart",(function(e){null==r.current.props.onTrackUserLocationStart||r.current.props.onTrackUserLocationStart(e)})),n.on("trackuserlocationend",(function(e){null==r.current.props.onTrackUserLocationEnd||r.current.props.onTrackUserLocationEnd(e)})),n}),{position:e.position});return r.current.props=e,(0,n.useImperativeHandle)(t,(function(){return o}),[]),(0,n.useEffect)((function(){O(o._container,e.style)}),[e.style]),null}const N=(0,n.memo)((0,n.forwardRef)(D));function F(e){var t=Z((function(t){return new t.mapLib.NavigationControl(e)}),{position:e.position});return(0,n.useEffect)((function(){O(t._container,e.style)}),[e.style]),null}const U=(0,n.memo)(F);function W(e){var t=Z((function(t){return new t.mapLib.ScaleControl(e)}),{position:e.position}),r=(0,n.useRef)(e),o=r.current;r.current=e;var a=e.style;return void 0!==e.maxWidth&&e.maxWidth!==o.maxWidth&&(t.options.maxWidth=e.maxWidth),void 0!==e.unit&&e.unit!==o.unit&&t.setUnit(e.unit),(0,n.useEffect)((function(){O(t._container,a)}),[a]),null}const B=(0,n.memo)(W);function H(e,t){if(!e)throw new Error(t)}var q=0;const V=function(e){var t=(0,n.useContext)(C).map.getMap(),r=(0,n.useRef)(e),o=(0,n.useState)(0)[1],a=(0,n.useMemo)((function(){return e.id||"jsx-layer-"+q++}),[]);if((0,n.useEffect)((function(){if(t){var e=function(){return o((function(e){return e+1}))};return t.on("styledata",e),e(),function(){t.off("styledata",e),t.style&&t.style._loaded&&t.getLayer(a)&&t.removeLayer(a)}}}),[t]),t&&t.style&&t.getLayer(a))try{!function(e,t,r,n){if(H(r.id===n.id,"layer id changed"),H(r.type===n.type,"layer type changed"),"custom"!==r.type&&"custom"!==n.type){var o=r.layout,a=void 0===o?{}:o,s=r.paint,u=void 0===s?{}:s,c=r.filter,l=r.minzoom,f=r.maxzoom,d=r.beforeId;if(d!==n.beforeId&&e.moveLayer(t,d),a!==n.layout){var p=n.layout||{};for(var m in a)i(a[m],p[m])||e.setLayoutProperty(t,m,a[m]);for(var v in p)a.hasOwnProperty(v)||e.setLayoutProperty(t,v,void 0)}if(u!==n.paint){var g=n.paint||{};for(var h in u)i(u[h],g[h])||e.setPaintProperty(t,h,u[h]);for(var y in g)u.hasOwnProperty(y)||e.setPaintProperty(t,y,void 0)}i(c,n.filter)||e.setFilter(t,c),l===n.minzoom&&f===n.maxzoom||e.setLayerZoomRange(t,l,f)}}(t,a,e,r.current)}catch(s){console.warn(s)}else!function(e,t,r){if(e.style&&e.style._loaded&&(!("source"in r)||e.getSource(r.source))){var n=Object.assign({},r,{id:t});delete n.beforeId,e.addLayer(n,r.beforeId)}}(t,a,e);return r.current=e,null};var G=0;const J=function(e){var t=(0,n.useContext)(C).map.getMap(),r=(0,n.useRef)(e),o=(0,n.useState)(0)[1],a=(0,n.useMemo)((function(){return e.id||"jsx-source-"+G++}),[]);(0,n.useEffect)((function(){if(t){var e=function(){return setTimeout((function(){return o((function(e){return e+1}))}),0)};return t.on("styledata",e),e(),function(){if(t.off("styledata",e),t.style&&t.style._loaded&&t.getSource(a)){var r,n=null==(r=t.getStyle())?void 0:r.layers;if(n)for(var o,i=(0,l.Z)(n);!(o=i()).done;){var s=o.value;s.source===a&&t.removeLayer(s.id)}t.removeSource(a)}}}}),[t]);var s=t&&t.style&&t.getSource(a);return s?function(e,t,r){H(t.id===r.id,"source id changed"),H(t.type===r.type,"source type changed");var n="",o=0;for(var a in t)"children"===a||"id"===a||i(r[a],t[a])||(n=a,o++);if(o){var s=t.type;if("geojson"===s)e.setData(t.data);else if("image"===s)e.updateImage({url:t.url,coordinates:t.coordinates});else if("setCoordinates"in e&&1===o&&"coordinates"===n)e.setCoordinates(t.coordinates);else if("setUrl"in e)switch(n){case"url":e.setUrl(t.url);break;case"tiles":e.setTiles(t.tiles)}else console.warn("Unable to update prop: "+n)}}(s,e,r.current):s=function(e,t,r){if(e.style&&e.style._loaded){var n=Object.assign({},r);return delete n.id,delete n.children,e.addSource(t,n),e.getSource(t)}return null}(t,a,e),r.current=e,s&&n.Children.map(e.children,(function(e){return e&&(0,n.cloneElement)(e,{source:a})}))||null};var Q=r.e(8539).then(r.t.bind(r,8539,23)),X=n.forwardRef((function(e,t){return L(e,t,Q)})),K=j,Y=z,$=A,ee=U,te=N,re=B,ne=V,oe=J;const ae=X},745:(e,t,r)=>{var n=r(3935);n.createRoot,n.hydrateRoot},1202:(e,t,r)=>{r.d(t,{Z:()=>i});var n=r(1002);function o(e){var t=function(e,t){if("object"!==(0,n.Z)(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!==(0,n.Z)(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===(0,n.Z)(t)?t:String(t)}function a(e,t){for(var r=0;r{o.r(t),o.d(t,{assets:()=>g,contentTitle:()=>y,default:()=>v,frontMatter:()=>h,metadata:()=>r,toc:()=>b});const r=JSON.parse('{"id":"mapbox/zoom-to-bounds","title":"Zoom to Bounds","description":"","source":"@site/src/examples/mapbox/zoom-to-bounds.mdx","sourceDirName":"mapbox","slug":"/mapbox/zoom-to-bounds","permalink":"/react-map-gl/examples/mapbox/zoom-to-bounds","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"Camera Transition","permalink":"/react-map-gl/examples/mapbox/viewport-animation"},"next":{"title":"Clusters","permalink":"/react-map-gl/examples/maplibre/clusters"}}');var n=o(4848),a=o(8453),i=o(6540),s=(o(5338),o(2198)),l=o(5917);function c(){return(0,n.jsxs)("div",{className:"control-panel",children:[(0,n.jsx)("h3",{children:"Zoom to Bounding Box"}),(0,n.jsx)("p",{children:"Click on a San Fransisco Neighborhood to zoom in."}),(0,n.jsx)("div",{className:"source-link",children:(0,n.jsx)("a",{href:"https://github.com/visgl/react-map-gl/tree/7.0-release/examples/zoom-to-bounds",target:"_new",children:"View Code \u2197"})})]})}const u=i.memo(c);var p=o(2868);const d=Object.assign({},p,{sources:Object.assign({},p.sources,{"sf-neighborhoods":{type:"geojson",data:"https://raw.githubusercontent.com/uber/react-map-gl/master/examples/.data/feature-example-sf.json"}}),layers:[...p.layers,{id:"sf-neighborhoods-fill",source:"sf-neighborhoods",type:"fill",paint:{"fill-outline-color":"#0040c8","fill-color":"#fff","fill-opacity":0}},{id:"sf-neighborhoods-outline",source:"sf-neighborhoods",type:"line",paint:{"line-width":2,"line-color":"#0080ef"}}]}),m="";function f(){const e=(0,i.useRef)();return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.Ay,{ref:e,initialViewState:{latitude:37.78,longitude:-122.4,zoom:11},mapStyle:d,interactiveLayerIds:["sf-neighborhoods-fill"],onClick:t=>{const o=t.features[0];if(o){const[t,r,n,a]=(0,l.A)(o);e.current.fitBounds([[t,r],[n,a]],{padding:40,duration:1e3})}},mapboxAccessToken:m}),(0,n.jsx)(u,{})]})}const h={},y="Zoom to Bounds",g={},b=[];function x(e){const t={h1:"h1",header:"header",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"zoom-to-bounds",children:"Zoom to Bounds"})}),"\n","\n",(0,n.jsx)(f,{})]})}function v(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(x,{...e})}):x(e)}},2198:(e,t,o)=>{o.d(t,{T3:()=>A,tG:()=>B,Wd:()=>q,T5:()=>E,pH:()=>z,ov:()=>N,zD:()=>T,g0:()=>Z,kL:()=>$,Ay:()=>E,VI:()=>R});var r=o(6540),n=o(4848);const a=r.createContext(null);function i(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let o=0;o{let o=null;"interactive"in e&&(o=Object.assign({},e),delete o.interactive);const r=t[e.ref];if(r){o=o||Object.assign({},e),delete o.ref;for(const e of u)e in r&&(o[e]=r[e])}return o||e}));return Object.assign({},e,{layers:o})}const d={version:8,sources:{},layers:[]},m={mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",click:"onClick",dblclick:"onDblClick",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",mouseout:"onMouseOut",contextmenu:"onContextMenu",touchstart:"onTouchStart",touchend:"onTouchEnd",touchmove:"onTouchMove",touchcancel:"onTouchCancel"},f={movestart:"onMoveStart",move:"onMove",moveend:"onMoveEnd",dragstart:"onDragStart",drag:"onDrag",dragend:"onDragEnd",zoomstart:"onZoomStart",zoom:"onZoom",zoomend:"onZoomEnd",rotatestart:"onRotateStart",rotate:"onRotate",rotateend:"onRotateEnd",pitchstart:"onPitchStart",pitch:"onPitch",pitchend:"onPitchEnd"},h={wheel:"onWheel",boxzoomstart:"onBoxZoomStart",boxzoomend:"onBoxZoomEnd",boxzoomcancel:"onBoxZoomCancel",resize:"onResize",load:"onLoad",render:"onRender",idle:"onIdle",remove:"onRemove",data:"onData",styledata:"onStyleData",sourcedata:"onSourceData",error:"onError"},y=["minZoom","maxZoom","minPitch","maxPitch","maxBounds","projection","renderWorldCopies"],g=["scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate","touchPitch"];class b{constructor(e,t,o){this._map=null,this._internalUpdate=!1,this._inRender=!1,this._hoveredFeatures=null,this._deferredEvents={move:!1,zoom:!1,pitch:!1,rotate:!1},this._onEvent=e=>{const t=this.props[h[e.type]];t?t(e):"error"===e.type&&console.error(e.error)},this._onPointerEvent=e=>{"mousemove"!==e.type&&"mouseout"!==e.type||this._updateHover(e);const t=this.props[m[e.type]];t&&(this.props.interactiveLayerIds&&"mouseover"!==e.type&&"mouseout"!==e.type&&(e.features=this._hoveredFeatures||this._queryRenderedFeatures(e.point)),t(e),delete e.features)},this._onCameraEvent=e=>{if(!this._internalUpdate){const t=this.props[f[e.type]];t&&t(e)}e.type in this._deferredEvents&&(this._deferredEvents[e.type]=!1)},this._MapClass=e,this.props=t,this._initialize(o)}get map(){return this._map}get transform(){return this._renderTransform}setProps(e){const t=this.props;this.props=e;const o=this._updateSettings(e,t);o&&this._createShadowTransform(this._map);const r=this._updateSize(e),n=this._updateViewState(e,!0);this._updateStyle(e,t),this._updateStyleComponents(e,t),this._updateHandlers(e,t),(o||r||n&&!this._map.isMoving())&&this.redraw()}static reuse(e,t){const o=b.savedMaps.pop();if(!o)return null;const r=o.map,n=r.getContainer();for(t.className=n.className;n.childNodes.length>0;)t.appendChild(n.childNodes[0]);r._container=t,o.setProps(Object.assign({},e,{styleDiffing:!1})),r.resize();const{initialViewState:a}=e;return a&&(a.bounds?r.fitBounds(a.bounds,Object.assign({},a.fitBoundsOptions,{duration:0})):o._updateViewState(a,!1)),r.isStyleLoaded()?r.fire("load"):r.once("styledata",(()=>r.fire("load"))),r._update(),o}_initialize(e){const{props:t}=this,{mapStyle:o=d}=t,r=Object.assign({},t,t.initialViewState,{accessToken:t.mapboxAccessToken||x()||null,container:e,style:p(o)}),n=r.initialViewState||r.viewState||r;if(Object.assign(r,{center:[n.longitude||0,n.latitude||0],zoom:n.zoom||0,pitch:n.pitch||0,bearing:n.bearing||0}),t.gl){const e=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=e,t.gl)}const a=new this._MapClass(r);n.padding&&a.setPadding(n.padding),t.cursor&&(a.getCanvas().style.cursor=t.cursor),this._createShadowTransform(a);const i=a._render;a._render=e=>{this._inRender=!0,i.call(a,e),this._inRender=!1};const l=a._renderTaskQueue.run;a._renderTaskQueue.run=e=>{l.call(a._renderTaskQueue,e),this._onBeforeRepaint()},a.on("render",(()=>this._onAfterRepaint()));const c=a.fire;a.fire=this._fireEvent.bind(this,c),a.on("resize",(()=>{this._renderTransform.resize(a.transform.width,a.transform.height)})),a.on("styledata",(()=>{this._updateStyleComponents(this.props,{}),s(a.transform,this._renderTransform)})),a.on("sourcedata",(()=>this._updateStyleComponents(this.props,{})));for(const s in m)a.on(s,this._onPointerEvent);for(const s in f)a.on(s,this._onCameraEvent);for(const s in h)a.on(s,this._onEvent);this._map=a}recycle(){const e=this.map.getContainer().querySelector("[mapboxgl-children]");null==e||e.remove(),b.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){const e=this._map;!this._inRender&&e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())}_createShadowTransform(e){const t=function(e){const t=e.clone();return t.pixelsToGLUnits=e.pixelsToGLUnits,t}(e.transform);e.painter.transform=t,this._renderTransform=t}_updateSize(e){const{viewState:t}=e;if(t){const e=this._map;if(t.width!==e.transform.width||t.height!==e.transform.height)return e.resize(),!0}return!1}_updateViewState(e,t){if(this._internalUpdate)return!1;const o=this._map,r=this._renderTransform,{zoom:n,pitch:a,bearing:i}=r,s=o.isMoving();s&&(r.cameraElevationReference="sea");const u=c(r,Object.assign({},l(o.transform),e));if(s&&(r.cameraElevationReference="ground"),u&&t){const e=this._deferredEvents;e.move=!0,e.zoom||(e.zoom=n!==r.zoom),e.rotate||(e.rotate=i!==r.bearing),e.pitch||(e.pitch=a!==r.pitch)}return s||c(o.transform,e),u}_updateSettings(e,t){const o=this._map;let r=!1;for(const n of y)if(n in e&&!i(e[n],t[n])){r=!0;const t=o["set"+n[0].toUpperCase()+n.slice(1)];null==t||t.call(o,e[n])}return r}_updateStyle(e,t){if(e.cursor!==t.cursor&&(this._map.getCanvas().style.cursor=e.cursor||""),e.mapStyle!==t.mapStyle){const{mapStyle:t=d,styleDiffing:o=!0}=e,r={diff:o};return"localIdeographFontFamily"in e&&(r.localIdeographFontFamily=e.localIdeographFontFamily),this._map.setStyle(p(t),r),!0}return!1}_updateStyleComponents(e,t){const o=this._map;let r=!1;return o.isStyleLoaded()&&("light"in e&&o.setLight&&!i(e.light,t.light)&&(r=!0,o.setLight(e.light)),"fog"in e&&o.setFog&&!i(e.fog,t.fog)&&(r=!0,o.setFog(e.fog)),"terrain"in e&&o.setTerrain&&!i(e.terrain,t.terrain)&&(e.terrain&&!o.getSource(e.terrain.source)||(r=!0,o.setTerrain(e.terrain)))),r}_updateHandlers(e,t){const o=this._map;let r=!1;for(const s of g){var n,a;const l=null==(n=e[s])||n;i(l,null==(a=t[s])||a)||(r=!0,l?o[s].enable(l):o[s].disable())}return r}_queryRenderedFeatures(e){const t=this._map,o=t.transform,{interactiveLayerIds:r=[]}=this.props;try{return t.transform=this._renderTransform,t.queryRenderedFeatures(e,{layers:r.filter(t.getLayer.bind(t))})}catch(n){return[]}finally{t.transform=o}}_updateHover(e){const{props:t}=this;if(t.interactiveLayerIds&&(t.onMouseMove||t.onMouseEnter||t.onMouseLeave)){var o;const t=e.type,r=(null==(o=this._hoveredFeatures)?void 0:o.length)>0,n=this._queryRenderedFeatures(e.point),a=n.length>0;!a&&r&&(e.type="mouseleave",this._onPointerEvent(e)),this._hoveredFeatures=n,a&&!r&&(e.type="mouseenter",this._onPointerEvent(e)),e.type=t}else this._hoveredFeatures=null}_fireEvent(e,t,o){const r=this._map,n=r.transform,a="string"==typeof t?t:t.type;return"move"===a&&this._updateViewState(this.props,!1),a in f&&("object"==typeof t&&(t.viewState=l(n)),this._map.isMoving())?(r.transform=this._renderTransform,e.call(r,t,o),r.transform=n,r):(e.call(r,t,o),r)}_onBeforeRepaint(){const e=this._map;this._internalUpdate=!0;for(const o in this._deferredEvents)this._deferredEvents[o]&&e.fire(o);this._internalUpdate=!1;const t=this._map.transform;e.transform=this._renderTransform,this._onAfterRepaint=()=>{s(this._renderTransform,t),e.transform=t}}}function x(){let e=null;if("undefined"!=typeof location){const t=/access_token=([^&\/]*)/.exec(location.search);e=t&&t[1]}try{e=e||"pk.eyJ1IjoidWNmLW1hcGJveCIsImEiOiJja2tyNHQzdnIzYmNnMndwZGI3djNzdjVyIn0.xgCXV9mLZ47q7easx6WLCQ"}catch(t){}try{e=e||process.env.REACT_APP_MAPBOX_ACCESS_TOKEN}catch(o){}return e}b.savedMaps=[];const v=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function _(e){if(!e)return null;const t=e.map,o={getMap:()=>t,getCenter:()=>e.transform.center,getZoom:()=>e.transform.zoom,getBearing:()=>e.transform.bearing,getPitch:()=>e.transform.pitch,getPadding:()=>e.transform.padding,getBounds:()=>e.transform.getBounds(),project:o=>{const r=t.transform;t.transform=e.transform;const n=t.project(o);return t.transform=r,n},unproject:o=>{const r=t.transform;t.transform=e.transform;const n=t.unproject(o);return t.transform=r,n},queryTerrainElevation:(o,r)=>{const n=t.transform;t.transform=e.transform;const a=t.queryTerrainElevation(o,r);return t.transform=n,a},queryRenderedFeatures:(o,r)=>{const n=t.transform;t.transform=e.transform;const a=t.queryRenderedFeatures(o,r);return t.transform=n,a}};for(const r of function(e){const t=new Set;let o=e;for(;o;){for(const r of Object.getOwnPropertyNames(o))"_"!==r[0]&&"function"==typeof e[r]&&"fire"!==r&&"setEventedParent"!==r&&t.add(r);o=Object.getPrototypeOf(o)}return Array.from(t)}(t))r in o||v.includes(r)||(o[r]=t[r].bind(t));return o}const w="undefined"!=typeof document?r.useLayoutEffect:r.useEffect,S=["baseApiUrl","maxParallelImageRequests","workerClass","workerCount","workerUrl"];const L=r.createContext(null);function j(e,t){const i=(0,r.useContext)(a),[s,l]=(0,r.useState)(null),c=(0,r.useRef)(),{current:u}=(0,r.useRef)({mapLib:null,map:null});(0,r.useEffect)((()=>{const t=e.mapLib;let r,n=!0;return Promise.resolve(t||o.e(842).then(o.t.bind(o,842,23))).then((t=>{if(!n)return;if(!t)throw new Error("Invalid mapLib");const o="Map"in t?t:t.default;if(!o.Map)throw new Error("Invalid mapLib");if(function(e,t){for(const r of S)r in t&&(e[r]=t[r]);const{RTLTextPlugin:o="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js"}=t;o&&e.getRTLTextPluginStatus&&"unavailable"===e.getRTLTextPluginStatus()&&e.setRTLTextPlugin(o,(e=>{e&&console.error(e)}),!0)}(o,e),o.supported&&!o.supported(e))throw new Error("Map is not supported by this browser");e.reuseMaps&&(r=b.reuse(e,c.current)),r||(r=new b(o.Map,e,c.current)),u.map=_(r),u.mapLib=o,l(r),null==i||i.onMapMount(u.map,e.id)})).catch((t=>{const{onError:o}=e;o?o({type:"error",target:null,error:t}):console.error(t)})),()=>{n=!1,r&&(null==i||i.onMapUnmount(e.id),e.reuseMaps?r.recycle():r.destroy())}}),[]),w((()=>{s&&s.setProps(e)})),(0,r.useImperativeHandle)(t,(()=>u.map),[s]);const p=(0,r.useMemo)((()=>Object.assign({position:"relative",width:"100%",height:"100%"},e.style)),[e.style]);return(0,n.jsx)("div",{id:e.id,ref:c,style:p,children:s&&(0,n.jsx)(L.Provider,{value:u,children:(0,n.jsx)("div",{"mapboxgl-children":"",style:{height:"100%"},children:e.children})})})}const E=r.forwardRef(j);var C=o(961);const k=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function M(e,t){if(!e||!t)return;const o=e.style;for(const r in t){const e=t[r];Number.isFinite(e)&&!k.test(r)?o[r]=e+"px":o[r]=e}}const z=(0,r.memo)((0,r.forwardRef)(((e,t)=>{const{map:o,mapLib:n}=(0,r.useContext)(L),a=(0,r.useRef)({props:e});a.current.props=e;const i=(0,r.useMemo)((()=>{let t=!1;r.Children.forEach(e.children,(e=>{e&&(t=!0)}));const o=Object.assign({},e,{element:t?document.createElement("div"):null}),s=new n.Marker(o);return s.setLngLat([e.longitude,e.latitude]),s.getElement().addEventListener("click",(e=>{null==a.current.props.onClick||a.current.props.onClick({type:"click",target:s,originalEvent:e})})),s.on("dragstart",(e=>{const t=e;t.lngLat=i.getLngLat(),null==a.current.props.onDragStart||a.current.props.onDragStart(t)})),s.on("drag",(e=>{const t=e;t.lngLat=i.getLngLat(),null==a.current.props.onDrag||a.current.props.onDrag(t)})),s.on("dragend",(e=>{const t=e;t.lngLat=i.getLngLat(),null==a.current.props.onDragEnd||a.current.props.onDragEnd(t)})),s}),[]);(0,r.useEffect)((()=>(i.addTo(o.getMap()),()=>{i.remove()})),[]);const{longitude:s,latitude:l,offset:c,style:u,draggable:p=!1,popup:d=null,rotation:m=0,rotationAlignment:f="auto",pitchAlignment:h="auto"}=e;return(0,r.useEffect)((()=>{M(i.getElement(),u)}),[u]),(0,r.useImperativeHandle)(t,(()=>i),[]),i.getLngLat().lng===s&&i.getLngLat().lat===l||i.setLngLat([s,l]),c&&!function(e,t){const o=Array.isArray(e)?e[0]:e?e.x:0,r=Array.isArray(e)?e[1]:e?e.y:0,n=Array.isArray(t)?t[0]:t?t.x:0,a=Array.isArray(t)?t[1]:t?t.y:0;return o===n&&r===a}(i.getOffset(),c)&&i.setOffset(c),i.isDraggable()!==p&&i.setDraggable(p),i.getRotation()!==m&&i.setRotation(m),i.getRotationAlignment()!==f&&i.setRotationAlignment(f),i.getPitchAlignment()!==h&&i.setPitchAlignment(h),i.getPopup()!==d&&i.setPopup(d),(0,C.createPortal)(e.children,i.getElement())})));function P(e){return new Set(e?e.trim().split(/\s+/):[])}const T=(0,r.memo)((0,r.forwardRef)(((e,t)=>{const{map:o,mapLib:n}=(0,r.useContext)(L),a=(0,r.useMemo)((()=>document.createElement("div")),[]),s=(0,r.useRef)({props:e});s.current.props=e;const l=(0,r.useMemo)((()=>{const t=Object.assign({},e),o=new n.Popup(t);return o.setLngLat([e.longitude,e.latitude]),o.once("open",(e=>{null==s.current.props.onOpen||s.current.props.onOpen(e)})),o}),[]);if((0,r.useEffect)((()=>{const e=e=>{null==s.current.props.onClose||s.current.props.onClose(e)};return l.on("close",e),l.setDOMContent(a).addTo(o.getMap()),()=>{l.off("close",e),l.isOpen()&&l.remove()}}),[]),(0,r.useEffect)((()=>{M(l.getElement(),e.style)}),[e.style]),(0,r.useImperativeHandle)(t,(()=>l),[]),l.isOpen()&&(l.getLngLat().lng===e.longitude&&l.getLngLat().lat===e.latitude||l.setLngLat([e.longitude,e.latitude]),e.offset&&!i(l.options.offset,e.offset)&&l.setOffset(e.offset),l.options.anchor===e.anchor&&l.options.maxWidth===e.maxWidth||(l.options.anchor=e.anchor,l.setMaxWidth(e.maxWidth)),l.options.className!==e.className)){const t=P(l.options.className),o=P(e.className);for(const e of t)o.has(e)||l.removeClassName(e);for(const e of o)t.has(e)||l.addClassName(e);l.options.className=e.className}return(0,C.createPortal)(e.children,a)})));function R(e,t,o,n){const a=(0,r.useContext)(L),i=(0,r.useMemo)((()=>e(a)),[]);return(0,r.useEffect)((()=>{const e=n||o||t,r="function"==typeof t&&"function"==typeof o?t:null,s="function"==typeof o?o:"function"==typeof t?t:null,{map:l}=a;return l.hasControl(i)||(l.addControl(i,null==e?void 0:e.position),r&&r(a)),()=>{s&&s(a),l.hasControl(i)&&l.removeControl(i)}}),[]),i}function O(e){const t=R((t=>{let{mapLib:o}=t;return new o.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)})}),{position:e.position});return(0,r.useEffect)((()=>{M(t._controlContainer,e.style)}),[e.style]),null}const A=(0,r.memo)(O);function I(e,t){const o=(0,r.useRef)({props:e}),n=R((t=>{let{mapLib:r}=t;const n=new r.GeolocateControl(e),a=n._setupUI.bind(n);return n._setupUI=e=>{n._container.hasChildNodes()||a(e)},n.on("geolocate",(e=>{null==o.current.props.onGeolocate||o.current.props.onGeolocate(e)})),n.on("error",(e=>{null==o.current.props.onError||o.current.props.onError(e)})),n.on("outofmaxbounds",(e=>{null==o.current.props.onOutOfMaxBounds||o.current.props.onOutOfMaxBounds(e)})),n.on("trackuserlocationstart",(e=>{null==o.current.props.onTrackUserLocationStart||o.current.props.onTrackUserLocationStart(e)})),n.on("trackuserlocationend",(e=>{null==o.current.props.onTrackUserLocationEnd||o.current.props.onTrackUserLocationEnd(e)})),n}),{position:e.position});return o.current.props=e,(0,r.useImperativeHandle)(t,(()=>n),[]),(0,r.useEffect)((()=>{M(n._container,e.style)}),[e.style]),null}const B=(0,r.memo)((0,r.forwardRef)(I));function F(e){const t=R((t=>{let{mapLib:o}=t;return new o.NavigationControl(e)}),{position:e.position});return(0,r.useEffect)((()=>{M(t._container,e.style)}),[e.style]),null}const N=(0,r.memo)(F);function U(e){const t=R((t=>{let{mapLib:o}=t;return new o.ScaleControl(e)}),{position:e.position}),o=(0,r.useRef)(e),n=o.current;o.current=e;const{style:a}=e;return void 0!==e.maxWidth&&e.maxWidth!==n.maxWidth&&(t.options.maxWidth=e.maxWidth),void 0!==e.unit&&e.unit!==n.unit&&t.setUnit(e.unit),(0,r.useEffect)((()=>{M(t._container,a)}),[a]),null}const Z=(0,r.memo)(U);function D(e,t){if(!e)throw new Error(t)}let W=0;function $(e){const t=(0,r.useContext)(L).map.getMap(),o=(0,r.useRef)(e),[,n]=(0,r.useState)(0),a=(0,r.useMemo)((()=>e.id||"jsx-source-"+W++),[]);(0,r.useEffect)((()=>{if(t){const e=()=>setTimeout((()=>n((e=>e+1))),0);return t.on("styledata",e),e(),()=>{if(t.off("styledata",e),t.style&&t.style._loaded&&t.getSource(a)){var o;const e=null==(o=t.getStyle())?void 0:o.layers;if(e)for(const o of e)o.source===a&&t.removeLayer(o.id);t.removeSource(a)}}}}),[t]);let s=t&&t.style&&t.getSource(a);return s?function(e,t,o){D(t.id===o.id,"source id changed"),D(t.type===o.type,"source type changed");let r="",n=0;for(const s in t)"children"===s||"id"===s||i(o[s],t[s])||(r=s,n++);if(!n)return;const a=t.type;"geojson"===a?e.setData(t.data):"image"===a?e.updateImage({url:t.url,coordinates:t.coordinates}):"setCoordinates"in e&&1===n&&"coordinates"===r?e.setCoordinates(t.coordinates):"setUrl"in e&&"url"===r?e.setUrl(t.url):"setTiles"in e&&"tiles"===r?e.setTiles(t.tiles):console.warn("Unable to update prop: "+r)}(s,e,o.current):s=function(e,t,o){if(e.style&&e.style._loaded){const r=Object.assign({},o);return delete r.id,delete r.children,e.addSource(t,r),e.getSource(t)}return null}(t,a,e),o.current=e,s&&r.Children.map(e.children,(e=>e&&(0,r.cloneElement)(e,{source:a})))||null}let H=0;function q(e){const t=(0,r.useContext)(L).map.getMap(),o=(0,r.useRef)(e),[,n]=(0,r.useState)(0),a=(0,r.useMemo)((()=>e.id||"jsx-layer-"+H++),[]);(0,r.useEffect)((()=>{if(t){const e=()=>n((e=>e+1));return t.on("styledata",e),e(),()=>{t.off("styledata",e),t.style&&t.style._loaded&&t.getLayer(a)&&t.removeLayer(a)}}}),[t]);if(t&&t.style&&t.getLayer(a))try{!function(e,t,o,r){if(D(o.id===r.id,"layer id changed"),D(o.type===r.type,"layer type changed"),"custom"===o.type||"custom"===r.type)return;const{layout:n={},paint:a={},filter:s,minzoom:l,maxzoom:c,beforeId:u}=o;if(u!==r.beforeId&&e.moveLayer(t,u),n!==r.layout){const o=r.layout||{};for(const r in n)i(n[r],o[r])||e.setLayoutProperty(t,r,n[r]);for(const r in o)n.hasOwnProperty(r)||e.setLayoutProperty(t,r,void 0)}if(a!==r.paint){const o=r.paint||{};for(const r in a)i(a[r],o[r])||e.setPaintProperty(t,r,a[r]);for(const r in o)a.hasOwnProperty(r)||e.setPaintProperty(t,r,void 0)}i(s,r.filter)||e.setFilter(t,s),l===r.minzoom&&c===r.maxzoom||e.setLayerZoomRange(t,l,c)}(t,a,e,o.current)}catch(s){console.warn(s)}else!function(e,t,o){if(e.style&&e.style._loaded&&(!("source"in o)||e.getSource(o.source))){const r=Object.assign({},o,{id:t});delete r.beforeId,e.addLayer(r,o.beforeId)}}(t,a,e);return o.current=e,null}},5917:(e,t,o)=>{o.d(t,{A:()=>a});var r=o(2820);function n(e){var t=[1/0,1/0,-1/0,-1/0];return(0,r.Fh)(e,(function(e){t[0]>e[0]&&(t[0]=e[0]),t[1]>e[1]&&(t[1]=e[1]),t[2]{e.exports=JSON.parse('{"version":8,"name":"Basic","metadata":{"mapbox:autocomposite":true},"sources":{"mapbox":{"url":"mapbox://mapbox.mapbox-streets-v7","type":"vector"}},"sprite":"mapbox://sprites/mapbox/basic-v8","glyphs":"mapbox://fonts/mapbox/{fontstack}/{range}.pbf","layers":[{"id":"background","type":"background","paint":{"background-color":"#dedede"},"interactive":true},{"id":"landuse_overlay_national_park","type":"fill","source":"mapbox","source-layer":"landuse_overlay","filter":["==","class","national_park"],"paint":{"fill-color":"#d2edae","fill-opacity":0.75},"interactive":true},{"id":"landuse_park","type":"fill","source":"mapbox","source-layer":"landuse","filter":["==","class","park"],"paint":{"fill-color":"#d2edae"},"interactive":true},{"id":"waterway","type":"line","source":"mapbox","source-layer":"waterway","filter":["all",["==","$type","LineString"],["in","class","river","canal"]],"paint":{"line-color":"#a0cfdf","line-width":{"base":1.4,"stops":[[8,0.5],[20,15]]}},"interactive":true},{"id":"water","type":"fill","source":"mapbox","source-layer":"water","paint":{"fill-color":"#a0cfdf"},"interactive":true},{"id":"building","type":"fill","source":"mapbox","source-layer":"building","paint":{"fill-color":"#d6d6d6"},"interactive":true},{"interactive":true,"layout":{"line-cap":"butt","line-join":"miter"},"filter":["all",["==","$type","LineString"],["all",["in","class","motorway_link","street","street_limited","service","track","pedestrian","path","link"],["==","structure","tunnel"]]],"type":"line","source":"mapbox","id":"tunnel_minor","paint":{"line-color":"#efefef","line-width":{"base":1.55,"stops":[[4,0.25],[20,30]]},"line-dasharray":[0.36,0.18]},"source-layer":"road"},{"interactive":true,"layout":{"line-cap":"butt","line-join":"miter"},"filter":["all",["==","$type","LineString"],["all",["in","class","motorway","primary","secondary","tertiary","trunk"],["==","structure","tunnel"]]],"type":"line","source":"mapbox","id":"tunnel_major","paint":{"line-color":"#fff","line-width":{"base":1.4,"stops":[[6,0.5],[20,30]]},"line-dasharray":[0.28,0.14]},"source-layer":"road"},{"interactive":true,"layout":{"line-cap":"round","line-join":"round"},"filter":["all",["==","$type","LineString"],["all",["in","class","motorway_link","street","street_limited","service","track","pedestrian","path","link"],["in","structure","none","ford"]]],"type":"line","source":"mapbox","id":"road_minor","paint":{"line-color":"#efefef","line-width":{"base":1.55,"stops":[[4,0.25],[20,30]]}},"source-layer":"road"},{"interactive":true,"layout":{"line-cap":"round","line-join":"round"},"filter":["all",["==","$type","LineString"],["all",["in","class","motorway","primary","secondary","tertiary","trunk"],["in","structure","none","ford"]]],"type":"line","source":"mapbox","id":"road_major","paint":{"line-color":"#fff","line-width":{"base":1.4,"stops":[[6,0.5],[20,30]]}},"source-layer":"road"},{"interactive":true,"layout":{"line-cap":"butt","line-join":"miter"},"filter":["all",["==","$type","LineString"],["all",["in","class","motorway_link","street","street_limited","service","track","pedestrian","path","link"],["==","structure","bridge"]]],"type":"line","source":"mapbox","id":"bridge_minor case","paint":{"line-color":"#dedede","line-width":{"base":1.6,"stops":[[12,0.5],[20,10]]},"line-gap-width":{"base":1.55,"stops":[[4,0.25],[20,30]]}},"source-layer":"road"},{"interactive":true,"layout":{"line-cap":"butt","line-join":"miter"},"filter":["all",["==","$type","LineString"],["all",["in","class","motorway","primary","secondary","tertiary","trunk"],["==","structure","bridge"]]],"type":"line","source":"mapbox","id":"bridge_major case","paint":{"line-color":"#dedede","line-width":{"base":1.6,"stops":[[12,0.5],[20,10]]},"line-gap-width":{"base":1.55,"stops":[[4,0.25],[20,30]]}},"source-layer":"road"},{"interactive":true,"layout":{"line-cap":"round","line-join":"round"},"filter":["all",["==","$type","LineString"],["all",["in","class","motorway_link","street","street_limited","service","track","pedestrian","path","link"],["==","structure","bridge"]]],"type":"line","source":"mapbox","id":"bridge_minor","paint":{"line-color":"#efefef","line-width":{"base":1.55,"stops":[[4,0.25],[20,30]]}},"source-layer":"road"},{"interactive":true,"layout":{"line-cap":"round","line-join":"round"},"filter":["all",["==","$type","LineString"],["all",["in","class","motorway","primary","secondary","tertiary","trunk"],["==","structure","bridge"]]],"type":"line","source":"mapbox","id":"bridge_major","paint":{"line-color":"#fff","line-width":{"base":1.4,"stops":[[6,0.5],[20,30]]}},"source-layer":"road"},{"interactive":true,"layout":{"line-cap":"round","line-join":"round"},"filter":["all",["==","$type","LineString"],["all",["<=","admin_level",2],["==","maritime",0]]],"type":"line","source":"mapbox","id":"admin_country","paint":{"line-color":"#8b8a8a","line-width":{"base":1.3,"stops":[[3,0.5],[22,15]]}},"source-layer":"admin"},{"interactive":true,"minzoom":5,"layout":{"icon-image":"{maki}-11","text-offset":[0,0.5],"text-field":"{name_en}","text-font":["Open Sans Semibold","Arial Unicode MS Bold"],"text-max-width":8,"text-anchor":"top","text-size":11,"icon-size":1},"filter":["all",["==","$type","Point"],["all",["==","scalerank",1],["==","localrank",1]]],"type":"symbol","source":"mapbox","id":"poi_label","paint":{"text-color":"#666","text-halo-width":1,"text-halo-color":"rgba(255,255,255,0.75)","text-halo-blur":1},"source-layer":"poi_label"},{"interactive":true,"layout":{"symbol-placement":"line","text-field":"{name_en}","text-font":["Open Sans Semibold","Arial Unicode MS Bold"],"text-transform":"uppercase","text-letter-spacing":0.1,"text-size":{"base":1.4,"stops":[[10,8],[20,14]]}},"filter":["all",["==","$type","LineString"],["in","class","motorway","primary","secondary","tertiary","trunk"]],"type":"symbol","source":"mapbox","id":"road_major_label","paint":{"text-color":"#666","text-halo-color":"rgba(255,255,255,0.75)","text-halo-width":2},"source-layer":"road_label"},{"interactive":true,"minzoom":8,"layout":{"text-field":"{name_en}","text-font":["Open Sans Semibold","Arial Unicode MS Bold"],"text-max-width":6,"text-size":{"stops":[[6,12],[12,16]]}},"filter":["all",["==","$type","Point"],["in","type","town","village","hamlet","suburb","neighbourhood","island"]],"type":"symbol","source":"mapbox","id":"place_label_other","paint":{"text-color":"#666","text-halo-color":"rgba(255,255,255,0.75)","text-halo-width":1,"text-halo-blur":1},"source-layer":"place_label"},{"interactive":true,"layout":{"text-field":"{name_en}","text-font":["Open Sans Bold","Arial Unicode MS Bold"],"text-max-width":10,"text-size":{"stops":[[3,12],[8,16]]}},"maxzoom":16,"filter":["all",["==","$type","Point"],["==","type","city"]],"type":"symbol","source":"mapbox","id":"place_label_city","paint":{"text-color":"#666","text-halo-color":"rgba(255,255,255,0.75)","text-halo-width":1,"text-halo-blur":1},"source-layer":"place_label"},{"interactive":true,"layout":{"text-field":"{name_en}","text-font":["Open Sans Regular","Arial Unicode MS Regular"],"text-max-width":10,"text-size":{"stops":[[3,14],[8,22]]}},"maxzoom":12,"filter":["==","$type","Point"],"type":"symbol","source":"mapbox","id":"country_label","paint":{"text-color":"#666","text-halo-color":"rgba(255,255,255,0.75)","text-halo-width":1,"text-halo-blur":1},"source-layer":"country_label"}]}')}}]); \ No newline at end of file diff --git a/assets/js/2632493b.a4835898.js b/assets/js/2632493b.a4835898.js deleted file mode 100644 index 9d3a9406..00000000 --- a/assets/js/2632493b.a4835898.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[2134],{8093:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>E,contentTitle:()=>_,default:()=>C,frontMatter:()=>y,metadata:()=>b,toc:()=>w});var n=r(7462),o=r(3366),a=r(7294),i=r(3905),s=r(7855),u=(r(745),r(945)),l=r(1307),c=r.n(l);function f(e){return(0,u.PE)((function(){return new(c())(e)}),(function(t){var r=t.map;r.on("draw.create",e.onCreate),r.on("draw.update",e.onUpdate),r.on("draw.delete",e.onDelete)}),(function(t){var r=t.map;r.off("draw.create",e.onCreate),r.off("draw.update",e.onUpdate),r.off("draw.delete",e.onDelete)}),{position:e.position}),null}f.defaultProps={onCreate:function(){},onUpdate:function(){},onDelete:function(){}};var d=r(1256);function p(e){for(var t,r=0,n=(0,s.Z)(e.polygons);!(t=n()).done;){var o=t.value;r+=(0,d.Z)(o)}return a.createElement("div",{className:"control-panel"},a.createElement("h3",null,"Draw Polygon"),r>0&&a.createElement("p",null,Math.round(100*r)/100," ",a.createElement("br",null),"square meters"),a.createElement("div",{className:"source-link"},a.createElement("a",{href:"https://github.com/visgl/react-map-gl/tree/7.1-release/examples/draw-polygon",target:"_new"},"View Code \u2197")))}const m=a.memo(p);var v="";function g(){var e=(0,a.useState)({}),t=e[0],r=e[1],n=(0,a.useCallback)((function(e){r((function(t){for(var r,n=Object.assign({},t),o=(0,s.Z)(e.features);!(r=o()).done;){var a=r.value;n[a.id]=a}return n}))}),[]),o=(0,a.useCallback)((function(e){r((function(t){for(var r,n=Object.assign({},t),o=(0,s.Z)(e.features);!(r=o()).done;){delete n[r.value.id]}return n}))}),[]);return a.createElement(a.Fragment,null,a.createElement(u.ZP,{initialViewState:{longitude:-91.874,latitude:42.76,zoom:12},mapStyle:"mapbox://styles/mapbox/satellite-v9",mapboxAccessToken:v},a.createElement(f,{position:"top-left",displayControlsDefault:!1,controls:{polygon:!0,trash:!0},defaultMode:"draw_polygon",onCreate:n,onUpdate:n,onDelete:o})),a.createElement(m,{polygons:Object.values(t)}))}var h=["components"],y={},_="Draw Polygon",b={unversionedId:"draw-polygon",id:"draw-polygon",title:"Draw Polygon",description:"",source:"@site/src/examples/draw-polygon.mdx",sourceDirName:".",slug:"/draw-polygon",permalink:"/react-map-gl/examples/draw-polygon",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"examplesSidebar",previous:{title:"Heatmap",permalink:"/react-map-gl/examples/heatmap"},next:{title:"Terrain",permalink:"/react-map-gl/examples/terrain"}},E={},w=[],x={toc:w},L="wrapper";function C(e){var t=e.components,r=(0,o.Z)(e,h);return(0,i.kt)(L,(0,n.Z)({},x,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"draw-polygon"},"Draw Polygon"),(0,i.kt)(g,{mdxType:"App"}))}C.isMDXComponent=!0},945:(e,t,r)=>{r.d(t,{ot:()=>$,$j:()=>te,mh:()=>ne,D5:()=>X,Jx:()=>K,Pv:()=>ee,GI:()=>Y,jf:()=>re,Hw:()=>oe,ZP:()=>ae,PE:()=>Z});var n=r(7294),o=n.createContext(null);var a=r(1202);function i(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(var r=0;r0;)r.appendChild(a.childNodes[0]);o._container=r;var i=o._resizeObserver;i&&(i.disconnect(),i.observe(r)),n.setProps(Object.assign({},t,{styleDiffing:!1})),o.resize();var s=t.initialViewState;return s&&(s.bounds?o.fitBounds(s.bounds,Object.assign({},s.fitBoundsOptions,{duration:0})):n._updateViewState(s,!1)),o.isStyleLoaded()?o.fire("load"):o.once("styledata",(function(){return o.fire("load")})),o._update(),n},t._initialize=function(e){var t=this,r=this.props,n=r.mapStyle,o=void 0===n?p:n,a=Object.assign({},r,r.initialViewState,{accessToken:r.mapboxAccessToken||b()||null,container:e,style:d(o)}),i=a.initialViewState||a.viewState||a;if(Object.assign(a,{center:[i.longitude||0,i.latitude||0],zoom:i.zoom||0,pitch:i.pitch||0,bearing:i.bearing||0}),r.gl){var u=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=function(){return HTMLCanvasElement.prototype.getContext=u,r.gl}}var l=new this._MapClass(a);i.padding&&l.setPadding(i.padding),r.cursor&&(l.getCanvas().style.cursor=r.cursor),this._createShadowTransform(l);var c=l._render;l._render=function(e){t._inRender=!0,c.call(l,e),t._inRender=!1};var f=l._renderTaskQueue.run;l._renderTaskQueue.run=function(e){f.call(l._renderTaskQueue,e),t._onBeforeRepaint()},l.on("render",(function(){return t._onAfterRepaint()}));var h=l.fire;for(var y in l.fire=this._fireEvent.bind(this,h),l.on("resize",(function(){t._renderTransform.resize(l.transform.width,l.transform.height)})),l.on("styledata",(function(){t._updateStyleComponents(t.props,{}),s(l.transform,t._renderTransform)})),l.on("sourcedata",(function(){return t._updateStyleComponents(t.props,{})})),m)l.on(y,this._onPointerEvent);for(var _ in v)l.on(_,this._onCameraEvent);for(var E in g)l.on(E,this._onEvent);this._map=l},t.recycle=function(){var t=this.map.getContainer().querySelector("[mapboxgl-children]");null==t||t.remove(),e.savedMaps.push(this)},t.destroy=function(){this._map.remove()},t.redraw=function(){var e=this._map;!this._inRender&&e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())},t._createShadowTransform=function(e){var t,r,n=(t=e.transform,(r=t.clone()).pixelsToGLUnits=t.pixelsToGLUnits,r);e.painter.transform=n,this._renderTransform=n},t._updateSize=function(e){var t=e.viewState;if(t){var r=this._map;if(t.width!==r.transform.width||t.height!==r.transform.height)return r.resize(),!0}return!1},t._updateViewState=function(e,t){if(this._internalUpdate)return!1;var r=this._map,n=this._renderTransform,o=n.zoom,a=n.pitch,i=n.bearing,s=r.isMoving();s&&(n.cameraElevationReference="sea");var c=l(n,Object.assign({},u(r.transform),e));if(s&&(n.cameraElevationReference="ground"),c&&t){var f=this._deferredEvents;f.move=!0,f.zoom||(f.zoom=o!==n.zoom),f.rotate||(f.rotate=i!==n.bearing),f.pitch||(f.pitch=a!==n.pitch)}return s||l(r.transform,e),c},t._updateSettings=function(e,t){for(var r=this._map,n=!1,o=0,a=h;o0,a=this._queryRenderedFeatures(e.point),i=a.length>0;!i&&o&&(e.type="mouseleave",this._onPointerEvent(e)),this._hoveredFeatures=a,i&&!o&&(e.type="mouseenter",this._onPointerEvent(e)),e.type=n}else this._hoveredFeatures=null},t._fireEvent=function(e,t,r){var n=this._map,o=n.transform,a="string"==typeof t?t:t.type;return"move"===a&&this._updateViewState(this.props,!1),a in v&&("object"==typeof t&&(t.viewState=u(o)),this._map.isMoving())?(n.transform=this._renderTransform,e.call(n,t,r),n.transform=o,n):(e.call(n,t,r),n)},t._onBeforeRepaint=function(){var e=this,t=this._map;for(var r in this._internalUpdate=!0,this._deferredEvents)this._deferredEvents[r]&&t.fire(r);this._internalUpdate=!1;var n=this._map.transform;t.transform=this._renderTransform,this._onAfterRepaint=function(){s(e._renderTransform,n),t.transform=n}},(0,a.Z)(e,[{key:"map",get:function(){return this._map}},{key:"transform",get:function(){return this._renderTransform}}]),e}();function b(){var e=null;if("undefined"!=typeof location){var t=/access_token=([^&\/]*)/.exec(location.search);e=t&&t[1]}try{e=e||"pk.eyJ1IjoidWNmLW1hcGJveCIsImEiOiJja2tyNHQzdnIzYmNnMndwZGI3djNzdjVyIn0.xgCXV9mLZ47q7easx6WLCQ"}catch(r){}try{e=e||process.env.REACT_APP_MAPBOX_ACCESS_TOKEN}catch(n){}return e}_.savedMaps=[];var E=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function w(e){if(!e)return null;for(var t,r=e.map,n={getMap:function(){return r},getCenter:function(){return e.transform.center},getZoom:function(){return e.transform.zoom},getBearing:function(){return e.transform.bearing},getPitch:function(){return e.transform.pitch},getPadding:function(){return e.transform.padding},getBounds:function(){return e.transform.getBounds()},project:function(t){var n=r.transform;r.transform=e.transform;var o=r.project(t);return r.transform=n,o},unproject:function(t){var n=r.transform;r.transform=e.transform;var o=r.unproject(t);return r.transform=n,o},queryTerrainElevation:function(t,n){var o=r.transform;r.transform=e.transform;var a=r.queryTerrainElevation(t,n);return r.transform=o,a},queryRenderedFeatures:function(t,n){var o=r.transform;r.transform=e.transform;var a=r.queryRenderedFeatures(t,n);return r.transform=o,a}},o=(0,c.Z)(function(e){var t=new Set,r=e;for(;r;){for(var n,o=(0,c.Z)(Object.getOwnPropertyNames(r));!(n=o()).done;){var a=n.value;"_"!==a[0]&&"function"==typeof e[a]&&"fire"!==a&&"setEventedParent"!==a&&t.add(a)}r=Object.getPrototypeOf(r)}return Array.from(t)}(r));!(t=o()).done;){var a=t.value;a in n||E.includes(a)||(n[a]=r[a].bind(r))}return n}const x="undefined"!=typeof document?n.useLayoutEffect:n.useEffect;var L=["baseApiUrl","maxParallelImageRequests","workerClass","workerCount","workerUrl"];var C=n.createContext(null);function S(e,t,r){var a=(0,n.useContext)(o),i=(0,n.useState)(null),s=i[0],u=i[1],l=(0,n.useRef)(),f=(0,n.useRef)({mapLib:null,map:null}).current;(0,n.useEffect)((function(){var t,n=e.mapLib,o=!0;return Promise.resolve(n||r).then((function(r){if(o){if(!r)throw new Error("Invalid mapLib");var n="Map"in r?r:r.default;if(!n.Map)throw new Error("Invalid mapLib");if(function(e,t){for(var r,n=(0,c.Z)(L);!(r=n()).done;){var o=r.value;o in t&&(e[o]=t[o])}var a=t.RTLTextPlugin,i=void 0===a?"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js":a;i&&e.getRTLTextPluginStatus&&"unavailable"===e.getRTLTextPluginStatus()&&e.setRTLTextPlugin(i,(function(e){e&&console.error(e)}),!0)}(n,e),n.supported&&!n.supported(e))throw new Error("Map is not supported by this browser");e.reuseMaps&&(t=_.reuse(e,l.current)),t||(t=new _(n.Map,e,l.current)),f.map=w(t),f.mapLib=n,u(t),null==a||a.onMapMount(f.map,e.id)}})).catch((function(t){var r=e.onError;r?r({type:"error",target:null,originalEvent:null,error:t}):console.error(t)})),function(){o=!1,t&&(null==a||a.onMapUnmount(e.id),e.reuseMaps?t.recycle():t.destroy())}}),[]),x((function(){s&&s.setProps(e)})),(0,n.useImperativeHandle)(t,(function(){return f.map}),[s]);var d=(0,n.useMemo)((function(){return Object.assign({position:"relative",width:"100%",height:"100%"},e.style)}),[e.style]);return n.createElement("div",{id:e.id,ref:l,style:d},s&&n.createElement(C.Provider,{value:f},n.createElement("div",{"mapboxgl-children":"",style:{height:"100%"}},e.children)))}var M=r(3935),P=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function T(e,t){if(e&&t){var r=e.style;for(var n in t){var o=t[n];Number.isFinite(o)&&!P.test(n)?r[n]=o+"px":r[n]=o}}}function R(e,t){var r=(0,n.useContext)(C),o=r.map,a=r.mapLib,i=(0,n.useRef)({props:e});i.current.props=e;var s=(0,n.useMemo)((function(){var t=!1;n.Children.forEach(e.children,(function(e){e&&(t=!0)}));var r=Object.assign({},e,{element:t?document.createElement("div"):null}),o=new a.Marker(r);return o.setLngLat([e.longitude,e.latitude]),o.getElement().addEventListener("click",(function(e){null==i.current.props.onClick||i.current.props.onClick({type:"click",target:o,originalEvent:e})})),o.on("dragstart",(function(e){var t=e;t.lngLat=s.getLngLat(),null==i.current.props.onDragStart||i.current.props.onDragStart(t)})),o.on("drag",(function(e){var t=e;t.lngLat=s.getLngLat(),null==i.current.props.onDrag||i.current.props.onDrag(t)})),o.on("dragend",(function(e){var t=e;t.lngLat=s.getLngLat(),null==i.current.props.onDragEnd||i.current.props.onDragEnd(t)})),o}),[]);(0,n.useEffect)((function(){return s.addTo(o.getMap()),function(){s.remove()}}),[]);var u,l,c,f,d,p,m=e.longitude,v=e.latitude,g=e.offset,h=e.style,y=e.draggable,_=void 0!==y&&y,b=e.popup,E=void 0===b?null:b,w=e.rotation,x=void 0===w?0:w,L=e.rotationAlignment,S=void 0===L?"auto":L,P=e.pitchAlignment,R=void 0===P?"auto":P;return(0,n.useEffect)((function(){T(s.getElement(),h)}),[h]),(0,n.useImperativeHandle)(t,(function(){return s}),[]),s.getLngLat().lng===m&&s.getLngLat().lat===v||s.setLngLat([m,v]),g&&(u=s.getOffset(),l=g,c=Array.isArray(u)?u[0]:u?u.x:0,f=Array.isArray(u)?u[1]:u?u.y:0,d=Array.isArray(l)?l[0]:l?l.x:0,p=Array.isArray(l)?l[1]:l?l.y:0,c!==d||f!==p)&&s.setOffset(g),s.isDraggable()!==_&&s.setDraggable(_),s.getRotation()!==x&&s.setRotation(x),s.getRotationAlignment()!==S&&s.setRotationAlignment(S),s.getPitchAlignment()!==R&&s.setPitchAlignment(R),s.getPopup()!==E&&s.setPopup(E),(0,M.createPortal)(e.children,s.getElement())}const k=(0,n.memo)((0,n.forwardRef)(R));function j(e){return new Set(e?e.trim().split(/\s+/):[])}function z(e,t){var r=(0,n.useContext)(C),o=r.map,a=r.mapLib,s=(0,n.useMemo)((function(){return document.createElement("div")}),[]),u=(0,n.useRef)({props:e});u.current.props=e;var l=(0,n.useMemo)((function(){var t=Object.assign({},e),r=new a.Popup(t);return r.setLngLat([e.longitude,e.latitude]),r.once("open",(function(e){null==u.current.props.onOpen||u.current.props.onOpen(e)})),r}),[]);if((0,n.useEffect)((function(){var e=function(e){null==u.current.props.onClose||u.current.props.onClose(e)};return l.on("close",e),l.setDOMContent(s).addTo(o.getMap()),function(){l.off("close",e),l.isOpen()&&l.remove()}}),[]),(0,n.useEffect)((function(){T(l.getElement(),e.style)}),[e.style]),(0,n.useImperativeHandle)(t,(function(){return l}),[]),l.isOpen()&&(l.getLngLat().lng===e.longitude&&l.getLngLat().lat===e.latitude||l.setLngLat([e.longitude,e.latitude]),e.offset&&!i(l.options.offset,e.offset)&&l.setOffset(e.offset),l.options.anchor===e.anchor&&l.options.maxWidth===e.maxWidth||(l.options.anchor=e.anchor,l.setMaxWidth(e.maxWidth)),l.options.className!==e.className)){for(var f,d=j(l.options.className),p=j(e.className),m=(0,c.Z)(d);!(f=m()).done;){var v=f.value;p.has(v)||l.removeClassName(v)}for(var g,h=(0,c.Z)(p);!(g=h()).done;){var y=g.value;d.has(y)||l.addClassName(y)}l.options.className=e.className}return(0,M.createPortal)(e.children,s)}const O=(0,n.memo)((0,n.forwardRef)(z));const Z=function(e,t,r,o){var a=(0,n.useContext)(C),i=(0,n.useMemo)((function(){return e(a)}),[]);return(0,n.useEffect)((function(){var e=o||r||t,n="function"==typeof t&&"function"==typeof r?t:null,s="function"==typeof r?r:"function"==typeof t?t:null,u=a.map;return u.hasControl(i)||(u.addControl(i,null==e?void 0:e.position),n&&n(a)),function(){s&&s(a),u.hasControl(i)&&u.removeControl(i)}}),[]),i};function D(e){var t=Z((function(t){return new t.mapLib.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)})}),{position:e.position});return(0,n.useEffect)((function(){T(t._controlContainer,e.style)}),[e.style]),null}const I=(0,n.memo)(D);function A(e,t){var r=(0,n.useRef)({props:e}),o=Z((function(t){var n=new t.mapLib.GeolocateControl(e),o=n._setupUI;return n._setupUI=function(e){n._container.hasChildNodes()||o(e)},n.on("geolocate",(function(e){null==r.current.props.onGeolocate||r.current.props.onGeolocate(e)})),n.on("error",(function(e){null==r.current.props.onError||r.current.props.onError(e)})),n.on("outofmaxbounds",(function(e){null==r.current.props.onOutOfMaxBounds||r.current.props.onOutOfMaxBounds(e)})),n.on("trackuserlocationstart",(function(e){null==r.current.props.onTrackUserLocationStart||r.current.props.onTrackUserLocationStart(e)})),n.on("trackuserlocationend",(function(e){null==r.current.props.onTrackUserLocationEnd||r.current.props.onTrackUserLocationEnd(e)})),n}),{position:e.position});return r.current.props=e,(0,n.useImperativeHandle)(t,(function(){return o}),[]),(0,n.useEffect)((function(){T(o._container,e.style)}),[e.style]),null}const U=(0,n.memo)((0,n.forwardRef)(A));function F(e){var t=Z((function(t){return new t.mapLib.NavigationControl(e)}),{position:e.position});return(0,n.useEffect)((function(){T(t._container,e.style)}),[e.style]),null}const N=(0,n.memo)(F);function B(e){var t=Z((function(t){return new t.mapLib.ScaleControl(e)}),{position:e.position}),r=(0,n.useRef)(e),o=r.current;r.current=e;var a=e.style;return void 0!==e.maxWidth&&e.maxWidth!==o.maxWidth&&(t.options.maxWidth=e.maxWidth),void 0!==e.unit&&e.unit!==o.unit&&t.setUnit(e.unit),(0,n.useEffect)((function(){T(t._container,a)}),[a]),null}const W=(0,n.memo)(B);function H(e,t){if(!e)throw new Error(t)}var q=0;const V=function(e){var t=(0,n.useContext)(C).map.getMap(),r=(0,n.useRef)(e),o=(0,n.useState)(0)[1],a=(0,n.useMemo)((function(){return e.id||"jsx-layer-"+q++}),[]);if((0,n.useEffect)((function(){if(t){var e=function(){return o((function(e){return e+1}))};return t.on("styledata",e),e(),function(){t.off("styledata",e),t.style&&t.style._loaded&&t.getLayer(a)&&t.removeLayer(a)}}}),[t]),t&&t.style&&t.getLayer(a))try{!function(e,t,r,n){if(H(r.id===n.id,"layer id changed"),H(r.type===n.type,"layer type changed"),"custom"!==r.type&&"custom"!==n.type){var o=r.layout,a=void 0===o?{}:o,s=r.paint,u=void 0===s?{}:s,l=r.filter,c=r.minzoom,f=r.maxzoom,d=r.beforeId;if(d!==n.beforeId&&e.moveLayer(t,d),a!==n.layout){var p=n.layout||{};for(var m in a)i(a[m],p[m])||e.setLayoutProperty(t,m,a[m]);for(var v in p)a.hasOwnProperty(v)||e.setLayoutProperty(t,v,void 0)}if(u!==n.paint){var g=n.paint||{};for(var h in u)i(u[h],g[h])||e.setPaintProperty(t,h,u[h]);for(var y in g)u.hasOwnProperty(y)||e.setPaintProperty(t,y,void 0)}i(l,n.filter)||e.setFilter(t,l),c===n.minzoom&&f===n.maxzoom||e.setLayerZoomRange(t,c,f)}}(t,a,e,r.current)}catch(s){console.warn(s)}else!function(e,t,r){if(e.style&&e.style._loaded&&(!("source"in r)||e.getSource(r.source))){var n=Object.assign({},r,{id:t});delete n.beforeId,e.addLayer(n,r.beforeId)}}(t,a,e);return r.current=e,null};var G=0;const J=function(e){var t=(0,n.useContext)(C).map.getMap(),r=(0,n.useRef)(e),o=(0,n.useState)(0)[1],a=(0,n.useMemo)((function(){return e.id||"jsx-source-"+G++}),[]);(0,n.useEffect)((function(){if(t){var e=function(){return setTimeout((function(){return o((function(e){return e+1}))}),0)};return t.on("styledata",e),e(),function(){if(t.off("styledata",e),t.style&&t.style._loaded&&t.getSource(a)){var r,n=null==(r=t.getStyle())?void 0:r.layers;if(n)for(var o,i=(0,c.Z)(n);!(o=i()).done;){var s=o.value;s.source===a&&t.removeLayer(s.id)}t.removeSource(a)}}}}),[t]);var s=t&&t.style&&t.getSource(a);return s?function(e,t,r){H(t.id===r.id,"source id changed"),H(t.type===r.type,"source type changed");var n="",o=0;for(var a in t)"children"===a||"id"===a||i(r[a],t[a])||(n=a,o++);if(o){var s=t.type;if("geojson"===s)e.setData(t.data);else if("image"===s)e.updateImage({url:t.url,coordinates:t.coordinates});else if("setCoordinates"in e&&1===o&&"coordinates"===n)e.setCoordinates(t.coordinates);else if("setUrl"in e)switch(n){case"url":e.setUrl(t.url);break;case"tiles":e.setTiles(t.tiles)}else console.warn("Unable to update prop: "+n)}}(s,e,r.current):s=function(e,t,r){if(e.style&&e.style._loaded){var n=Object.assign({},r);return delete n.id,delete n.children,e.addSource(t,n),e.getSource(t)}return null}(t,a,e),r.current=e,s&&n.Children.map(e.children,(function(e){return e&&(0,n.cloneElement)(e,{source:a})}))||null};var Q=r.e(8539).then(r.t.bind(r,8539,23)),X=n.forwardRef((function(e,t){return S(e,t,Q)})),K=k,Y=O,$=I,ee=N,te=U,re=W,ne=V,oe=J;const ae=X}}]); \ No newline at end of file diff --git a/assets/js/275961e3.3a5a94f0.js b/assets/js/275961e3.3a5a94f0.js deleted file mode 100644 index 3f57eb78..00000000 --- a/assets/js/275961e3.3a5a94f0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[7944],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>f});var r=a(7294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function p(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var l=r.createContext({}),s=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):p(p({},t),e)),a},u=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,o=e.mdxType,n=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=s(a),d=o,f=c["".concat(l,".").concat(d)]||c[d]||m[d]||n;return a?r.createElement(f,p(p({ref:t},u),{},{components:a})):r.createElement(f,p({ref:t},u))}));function f(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=a.length,p=new Array(n);p[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[c]="string"==typeof e?e:o,p[1]=i;for(var s=2;s{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>f,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var r=a(7462),o=a(3366),n=(a(7294),a(3905)),p=["components"],i={},l="About Mapbox Tokens",s={unversionedId:"get-started/mapbox-tokens",id:"get-started/mapbox-tokens",title:"About Mapbox Tokens",description:"react-map-gl itself is open source and free. It provides a React wrapper for mapbox-gl or derived projects.",source:"@site/../docs/get-started/mapbox-tokens.md",sourceDirName:"get-started",slug:"/get-started/mapbox-tokens",permalink:"/react-map-gl/docs/get-started/mapbox-tokens",draft:!1,editUrl:"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/get-started/mapbox-tokens.md",tags:[],version:"current",frontMatter:{},sidebar:"docsSidebar",previous:{title:"Get Started",permalink:"/react-map-gl/docs/get-started/"},next:{title:"State Management",permalink:"/react-map-gl/docs/get-started/state-management"}},u={},c=[{value:"Display Maps Without A Mapbox Token",id:"display-maps-without-a-mapbox-token",level:2}],m={toc:c},d="wrapper";function f(e){var t=e.components,a=(0,o.Z)(e,p);return(0,n.kt)(d,(0,r.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"about-mapbox-tokens"},"About Mapbox Tokens"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"react-map-gl")," itself is open source and free. It provides a React wrapper for ",(0,n.kt)("inlineCode",{parentName:"p"},"mapbox-gl")," or derived projects.\nDepending on which Mapbox GL JS version (or fork) you use, you may need a Mapbox token. You will need a Mapbox token if you use:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/mapbox/mapbox-gl-js/releases/tag/v2.0.0"},"mapbox-gl@>=2.0.0")," and above - requires a mapbox access token in order to access the map renderer, and generates billable events regardlesss of whether you are displaying your own maps."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"mapbox-gl@1.x")," or ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/maplibre/maplibre-gl-js"},"maplibre-gl"),' - requires an access token only if you load the map styles and tiles from Mapbox\'s data service. See "Display Maps Without A Mapbox Token" section below for using non-Mapbox tiles.')),(0,n.kt)("p",null,"To get a Mapbox token, you will need to register on ",(0,n.kt)("a",{parentName:"p",href:"https://www.mapbox.com"},"their website"),". The token will be used to identify you and start serving up map tiles. The service is free until a certain level of traffic is exceeded."),(0,n.kt)("p",null,"There are several ways to provide a token to your app, as showcased in some of the example folders:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Provide a ",(0,n.kt)("inlineCode",{parentName:"li"},"mapboxAccessToken")," prop to the map component"),(0,n.kt)("li",{parentName:"ul"},"Set the ",(0,n.kt)("inlineCode",{parentName:"li"},"MapboxAccessToken")," environment variable (or set ",(0,n.kt)("inlineCode",{parentName:"li"},"REACT_APP_MAPBOX_ACCESS_TOKEN")," if you are using Create React App)"),(0,n.kt)("li",{parentName:"ul"},"Provide it in the URL, e.g ",(0,n.kt)("inlineCode",{parentName:"li"},"?access_token=TOKEN"))),(0,n.kt)("p",null,"We recommend using an environment variable to minimize leaking risks. See ",(0,n.kt)("a",{parentName:"p",href:"/react-map-gl/docs/get-started/tips-and-tricks#securing-mapbox-token"},"securing Mapbox token")," for examples."),(0,n.kt)("h2",{id:"display-maps-without-a-mapbox-token"},"Display Maps Without A Mapbox Token"),(0,n.kt)("p",null,"It is possible to use the map component without the Mapbox service, if you use another tile source (for example, if you host your own map tiles). Note that this is no longer allowed using mapbox-gl v2.0 and above. The options are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Stay on ",(0,n.kt)("inlineCode",{parentName:"li"},"mapbox-gl@1.x"),". react-map-gl plans to continue supporting this release in the foreseeable future, however, this version will not include any of the latest features of the map renderer, nor get any future updates from Mapbox."),(0,n.kt)("li",{parentName:"ul"},"Use a community fork of mapbox-gl, for example ",(0,n.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/maplibre-gl"},"maplibre-gl"),". See ",(0,n.kt)("a",{parentName:"li",href:"/react-map-gl/docs/get-started/"},"Get Started")," for how to configure your project.")),(0,n.kt)("p",null,"To use your own map service, you will need a custom Mapbox GL style that points to your own ",(0,n.kt)("a",{parentName:"p",href:"https://www.mapbox.com/mapbox-gl-js/style-spec/"},"vector tile source"),", and pass it to ",(0,n.kt)("inlineCode",{parentName:"p"},"Map")," using the ",(0,n.kt)("inlineCode",{parentName:"p"},"mapStyle")," prop. This custom style must match the schema of your tile source."),(0,n.kt)("p",null,"Open source tile schemas include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://tilezen.readthedocs.io/en/latest/layers/"},"TileZen schema")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://openmaptiles.org/schema/"},"OpenMapTiles schema "))),(0,n.kt)("p",null,"Some useful resources for creating your own map service:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://www.mapbox.com/developers/vector-tiles/"},"Mapbox Vector Tile Spec")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/mapbox/awesome-vector-tiles"},"Open source tools"))),(0,n.kt)("p",null,"If you are using a third party service that requires header based authentication, you can do this by defining a function to pass to ",(0,n.kt)("inlineCode",{parentName:"p"},"Map")," using the ",(0,n.kt)("inlineCode",{parentName:"p"},"transformRequest")," prop."),(0,n.kt)("p",null,"An example function:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-ts"},"const transformRequest = (url, resourceType) => {\n if (resourceType === 'Tile' && url.match('yourTileSource.com')) {\n return {\n url: url,\n headers: { 'Authorization': 'Bearer ' + yourAuthToken }\n }\n }\n}\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/275961e3.918a1d54.js b/assets/js/275961e3.918a1d54.js new file mode 100644 index 00000000..c672b904 --- /dev/null +++ b/assets/js/275961e3.918a1d54.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[6559],{2624:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>o,toc:()=>c});const o=JSON.parse('{"id":"get-started/mapbox-tokens","title":"About Mapbox Tokens","description":"react-map-gl itself is open source and free. It provides a React wrapper for mapbox-gl, maplibre-gl or compatible projects.","source":"@site/../docs/get-started/mapbox-tokens.md","sourceDirName":"get-started","slug":"/get-started/mapbox-tokens","permalink":"/react-map-gl/docs/get-started/mapbox-tokens","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/get-started/mapbox-tokens.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"Get Started","permalink":"/react-map-gl/docs/get-started/"},"next":{"title":"State Management","permalink":"/react-map-gl/docs/get-started/state-management"}}');var r=s(4848),n=s(8453);const a={},i="About Mapbox Tokens",l={},c=[{value:"Display Maps Without A Mapbox Token",id:"display-maps-without-a-mapbox-token",level:2}];function p(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"about-mapbox-tokens",children:"About Mapbox Tokens"})}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.code,{children:"react-map-gl"})," itself is open source and free. It provides a React wrapper for ",(0,r.jsx)(t.code,{children:"mapbox-gl"}),", ",(0,r.jsx)(t.code,{children:"maplibre-gl"})," or compatible projects.\nDepending on which base map library you use, you may need a Mapbox token. You will need a Mapbox token if you use:"]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.a,{href:"https://github.com/mapbox/mapbox-gl-js/releases/tag/v2.0.0",children:"mapbox-gl@>=2.0.0"})," - requires a mapbox access token in order to access the map renderer, and generates billable events regardlesss of whether you are displaying your own maps."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"mapbox-gl@1.x"}),' - requires an access token only if you load the map styles and tiles from Mapbox\'s data service. See "Display Maps Without A Mapbox Token" section below for using non-Mapbox tiles.']}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["To get a Mapbox token, you will need to register on ",(0,r.jsx)(t.a,{href:"https://www.mapbox.com",children:"the Mapbox website"}),". The token will be used to identify you and start serving up map tiles. The service is free until a certain level of traffic is exceeded."]}),"\n",(0,r.jsx)(t.p,{children:"There are several ways to provide a token to your app, as showcased in some of the example folders:"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["Provide a ",(0,r.jsx)(t.code,{children:"mapboxAccessToken"})," prop to the map component"]}),"\n",(0,r.jsxs)(t.li,{children:["Set the ",(0,r.jsx)(t.code,{children:"MapboxAccessToken"})," environment variable (or set ",(0,r.jsx)(t.code,{children:"REACT_APP_MAPBOX_ACCESS_TOKEN"})," if you are using Create React App)"]}),"\n",(0,r.jsxs)(t.li,{children:["Provide it in the URL, e.g ",(0,r.jsx)(t.code,{children:"?access_token=TOKEN"})]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["We recommend using an environment variable to minimize leaking risks. See ",(0,r.jsx)(t.a,{href:"/react-map-gl/docs/get-started/tips-and-tricks#securing-mapbox-token",children:"securing Mapbox token"})," for examples."]}),"\n",(0,r.jsx)(t.h2,{id:"display-maps-without-a-mapbox-token",children:"Display Maps Without A Mapbox Token"}),"\n",(0,r.jsxs)(t.p,{children:["It is possible to use the map component without the Mapbox service, if you use another tile source (for example, if you host your own map tiles). Note that this is no longer allowed using ",(0,r.jsx)(t.code,{children:"mapbox-gl"})," v2.0 and above. The options are:"]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["Use ",(0,r.jsx)(t.a,{href:"https://maplibre.org/maplibre-gl-js/docs/",children:"maplibre-gl"}),". See ",(0,r.jsx)(t.a,{href:"/react-map-gl/docs/get-started/",children:"Get Started"})," for how to configure your project."]}),"\n",(0,r.jsxs)(t.li,{children:["Stay on ",(0,r.jsx)(t.code,{children:"mapbox-gl@1.x"}),". react-map-gl plans to continue supporting this release in the foreseeable future, however, this version will not include any of the latest features of the map renderer, nor get any future updates from Mapbox."]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["To use your own map service, you will need a custom map style that points to your own ",(0,r.jsx)(t.a,{href:"https://maplibre.org/maplibre-style-spec/sources/",children:"tile source"}),", and pass it to ",(0,r.jsx)(t.code,{children:"Map"})," using the ",(0,r.jsx)(t.code,{children:"mapStyle"})," prop."]}),"\n",(0,r.jsx)(t.p,{children:"Some alternative map data providers include:"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://www.maptiler.com",children:"MapTiler"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://docs.aws.amazon.com/location/latest/developerguide/map-concepts.html",children:"Amazon Location Service"})}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:"Useful resources for creating your own map tiles and service:"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://maplibre.org/martin/introduction.html",children:"Martin Tile Server"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://openmaptiles.org",children:"OpenMapTiles"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/mapbox/vector-tile-spec",children:"Mapbox Vector Tile Spec"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/protomaps/PMTiles",children:"PMTiles"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"https://github.com/mapbox/awesome-vector-tiles",children:"List of open source tools"})}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["If you are using a third party service that requires header based authentication, you can do this by defining a function to pass to ",(0,r.jsx)(t.code,{children:"Map"})," using the ",(0,r.jsx)(t.code,{children:"transformRequest"})," prop."]}),"\n",(0,r.jsx)(t.p,{children:"An example function:"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-ts",children:"const transformRequest = (url, resourceType) => {\n if (resourceType === 'Tile' && url.match('yourTileSource.com')) {\n return {\n url: url,\n headers: { 'Authorization': 'Bearer ' + yourAuthToken }\n }\n }\n}\n"})})]})}function d(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}},8453:(e,t,s)=>{s.d(t,{R:()=>a,x:()=>i});var o=s(6540);const r={},n=o.createContext(r);function a(e){const t=o.useContext(n);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),o.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2b604174.3aafd5d4.js b/assets/js/2b604174.3aafd5d4.js deleted file mode 100644 index 1be9c103..00000000 --- a/assets/js/2b604174.3aafd5d4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[5186],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),l=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=l(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=l(n),m=o,f=p["".concat(u,".").concat(m)]||p[m]||d[m]||a;return n?r.createElement(f,i(i({ref:t},c),{},{components:n})):r.createElement(f,i({ref:t},c))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[p]="string"==typeof e?e:o,i[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>b,contentTitle:()=>y,default:()=>E,frontMatter:()=>h,metadata:()=>_,toc:()=>w});var r=n(7462),o=n(3366),a=n(7294),i=n(3905),s=(n(745),n(945));function u(){return a.createElement("div",{className:"control-panel"},a.createElement("h3",null,"Marker, Popup, NavigationControl and FullscreenControl "),a.createElement("p",null,"Map showing top 20 most populated cities of the United States. Click on a marker to learn more."),a.createElement("p",null,"Data source:"," ",a.createElement("a",{href:"https://en.wikipedia.org/wiki/List_of_United_States_cities_by_population"},"Wikipedia")),a.createElement("div",{className:"source-link"},a.createElement("a",{href:"https://github.com/visgl/react-map-gl/tree/7.1-release/examples/controls",target:"_new"},"View Code \u2197")))}const l=a.memo(u);var c={cursor:"pointer",fill:"#d00",stroke:"none"};function p(e){var t=e.size,n=void 0===t?20:t;return a.createElement("svg",{height:n,viewBox:"0 0 24 24",style:c},a.createElement("path",{d:"M20.2,15.7L20.2,15.7c1.1-1.6,1.8-3.6,1.8-5.7c0-5.6-4.5-10-10-10S2,4.5,2,10c0,2,0.6,3.9,1.6,5.4c0,0.1,0.1,0.2,0.2,0.3\n c0,0,0.1,0.1,0.1,0.2c0.2,0.3,0.4,0.6,0.7,0.9c2.6,3.1,7.4,7.6,7.4,7.6s4.8-4.5,7.4-7.5c0.2-0.3,0.5-0.6,0.7-0.9\n C20.1,15.8,20.2,15.8,20.2,15.7z"}))}const d=a.memo(p);var m=n(7971),f="";function g(){var e=(0,a.useState)(null),t=e[0],n=e[1],r=(0,a.useMemo)((function(){return m.map((function(e,t){return a.createElement(s.Jx,{key:"marker-"+t,longitude:e.longitude,latitude:e.latitude,anchor:"bottom",onClick:function(t){t.originalEvent.stopPropagation(),n(e)}},a.createElement(d,null))}))}),[]);return a.createElement(a.Fragment,null,a.createElement(s.ZP,{initialViewState:{latitude:40,longitude:-100,zoom:3.5,bearing:0,pitch:0},mapStyle:"mapbox://styles/mapbox/dark-v9",mapboxAccessToken:f},a.createElement(s.$j,{position:"top-left"}),a.createElement(s.ot,{position:"top-left"}),a.createElement(s.Pv,{position:"top-left"}),a.createElement(s.jf,null),r,t&&a.createElement(s.GI,{anchor:"top",longitude:Number(t.longitude),latitude:Number(t.latitude),onClose:function(){return n(null)}},a.createElement("div",null,t.city,", ",t.state," |"," ",a.createElement("a",{target:"_new",href:"http://en.wikipedia.org/w/index.php?title=Special:Search&search="+t.city+", "+t.state},"Wikipedia")),a.createElement("img",{width:"100%",src:t.image}))),a.createElement(l,null))}var v=["components"],h={},y="Markers, Popups and Controls",_={unversionedId:"controls",id:"controls",title:"Markers, Popups and Controls",description:"",source:"@site/src/examples/controls.mdx",sourceDirName:".",slug:"/controls",permalink:"/react-map-gl/examples/controls",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"examplesSidebar",previous:{title:"Dynamic Styling",permalink:"/react-map-gl/examples/layers"},next:{title:"Custom Cursor",permalink:"/react-map-gl/examples/custom-cursor"}},b={},w=[],k={toc:w},x="wrapper";function E(e){var t=e.components,n=(0,o.Z)(e,v);return(0,i.kt)(x,(0,r.Z)({},k,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"markers-popups-and-controls"},"Markers, Popups and Controls"),(0,i.kt)(g,{mdxType:"App"}))}E.isMDXComponent=!0},945:(e,t,n)=>{n.d(t,{ot:()=>K,$j:()=>te,mh:()=>re,D5:()=>X,Jx:()=>Y,Pv:()=>ee,GI:()=>$,jf:()=>ne,Hw:()=>oe,ZP:()=>ae,PE:()=>z});var r=n(7294),o=r.createContext(null);var a=n(1202);function i(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(var n=0;n0;)n.appendChild(a.childNodes[0]);o._container=n;var i=o._resizeObserver;i&&(i.disconnect(),i.observe(n)),r.setProps(Object.assign({},t,{styleDiffing:!1})),o.resize();var s=t.initialViewState;return s&&(s.bounds?o.fitBounds(s.bounds,Object.assign({},s.fitBoundsOptions,{duration:0})):r._updateViewState(s,!1)),o.isStyleLoaded()?o.fire("load"):o.once("styledata",(function(){return o.fire("load")})),o._update(),r},t._initialize=function(e){var t=this,n=this.props,r=n.mapStyle,o=void 0===r?m:r,a=Object.assign({},n,n.initialViewState,{accessToken:n.mapboxAccessToken||b()||null,container:e,style:d(o)}),i=a.initialViewState||a.viewState||a;if(Object.assign(a,{center:[i.longitude||0,i.latitude||0],zoom:i.zoom||0,pitch:i.pitch||0,bearing:i.bearing||0}),n.gl){var u=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=function(){return HTMLCanvasElement.prototype.getContext=u,n.gl}}var l=new this._MapClass(a);i.padding&&l.setPadding(i.padding),n.cursor&&(l.getCanvas().style.cursor=n.cursor),this._createShadowTransform(l);var c=l._render;l._render=function(e){t._inRender=!0,c.call(l,e),t._inRender=!1};var p=l._renderTaskQueue.run;l._renderTaskQueue.run=function(e){p.call(l._renderTaskQueue,e),t._onBeforeRepaint()},l.on("render",(function(){return t._onAfterRepaint()}));var h=l.fire;for(var y in l.fire=this._fireEvent.bind(this,h),l.on("resize",(function(){t._renderTransform.resize(l.transform.width,l.transform.height)})),l.on("styledata",(function(){t._updateStyleComponents(t.props,{}),s(l.transform,t._renderTransform)})),l.on("sourcedata",(function(){return t._updateStyleComponents(t.props,{})})),f)l.on(y,this._onPointerEvent);for(var _ in g)l.on(_,this._onCameraEvent);for(var w in v)l.on(w,this._onEvent);this._map=l},t.recycle=function(){var t=this.map.getContainer().querySelector("[mapboxgl-children]");null==t||t.remove(),e.savedMaps.push(this)},t.destroy=function(){this._map.remove()},t.redraw=function(){var e=this._map;!this._inRender&&e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())},t._createShadowTransform=function(e){var t,n,r=(t=e.transform,(n=t.clone()).pixelsToGLUnits=t.pixelsToGLUnits,n);e.painter.transform=r,this._renderTransform=r},t._updateSize=function(e){var t=e.viewState;if(t){var n=this._map;if(t.width!==n.transform.width||t.height!==n.transform.height)return n.resize(),!0}return!1},t._updateViewState=function(e,t){if(this._internalUpdate)return!1;var n=this._map,r=this._renderTransform,o=r.zoom,a=r.pitch,i=r.bearing,s=n.isMoving();s&&(r.cameraElevationReference="sea");var c=l(r,Object.assign({},u(n.transform),e));if(s&&(r.cameraElevationReference="ground"),c&&t){var p=this._deferredEvents;p.move=!0,p.zoom||(p.zoom=o!==r.zoom),p.rotate||(p.rotate=i!==r.bearing),p.pitch||(p.pitch=a!==r.pitch)}return s||l(n.transform,e),c},t._updateSettings=function(e,t){for(var n=this._map,r=!1,o=0,a=h;o0,a=this._queryRenderedFeatures(e.point),i=a.length>0;!i&&o&&(e.type="mouseleave",this._onPointerEvent(e)),this._hoveredFeatures=a,i&&!o&&(e.type="mouseenter",this._onPointerEvent(e)),e.type=r}else this._hoveredFeatures=null},t._fireEvent=function(e,t,n){var r=this._map,o=r.transform,a="string"==typeof t?t:t.type;return"move"===a&&this._updateViewState(this.props,!1),a in g&&("object"==typeof t&&(t.viewState=u(o)),this._map.isMoving())?(r.transform=this._renderTransform,e.call(r,t,n),r.transform=o,r):(e.call(r,t,n),r)},t._onBeforeRepaint=function(){var e=this,t=this._map;for(var n in this._internalUpdate=!0,this._deferredEvents)this._deferredEvents[n]&&t.fire(n);this._internalUpdate=!1;var r=this._map.transform;t.transform=this._renderTransform,this._onAfterRepaint=function(){s(e._renderTransform,r),t.transform=r}},(0,a.Z)(e,[{key:"map",get:function(){return this._map}},{key:"transform",get:function(){return this._renderTransform}}]),e}();function b(){var e=null;if("undefined"!=typeof location){var t=/access_token=([^&\/]*)/.exec(location.search);e=t&&t[1]}try{e=e||"pk.eyJ1IjoidWNmLW1hcGJveCIsImEiOiJja2tyNHQzdnIzYmNnMndwZGI3djNzdjVyIn0.xgCXV9mLZ47q7easx6WLCQ"}catch(n){}try{e=e||process.env.REACT_APP_MAPBOX_ACCESS_TOKEN}catch(r){}return e}_.savedMaps=[];var w=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function k(e){if(!e)return null;for(var t,n=e.map,r={getMap:function(){return n},getCenter:function(){return e.transform.center},getZoom:function(){return e.transform.zoom},getBearing:function(){return e.transform.bearing},getPitch:function(){return e.transform.pitch},getPadding:function(){return e.transform.padding},getBounds:function(){return e.transform.getBounds()},project:function(t){var r=n.transform;n.transform=e.transform;var o=n.project(t);return n.transform=r,o},unproject:function(t){var r=n.transform;n.transform=e.transform;var o=n.unproject(t);return n.transform=r,o},queryTerrainElevation:function(t,r){var o=n.transform;n.transform=e.transform;var a=n.queryTerrainElevation(t,r);return n.transform=o,a},queryRenderedFeatures:function(t,r){var o=n.transform;n.transform=e.transform;var a=n.queryRenderedFeatures(t,r);return n.transform=o,a}},o=(0,c.Z)(function(e){var t=new Set,n=e;for(;n;){for(var r,o=(0,c.Z)(Object.getOwnPropertyNames(n));!(r=o()).done;){var a=r.value;"_"!==a[0]&&"function"==typeof e[a]&&"fire"!==a&&"setEventedParent"!==a&&t.add(a)}n=Object.getPrototypeOf(n)}return Array.from(t)}(n));!(t=o()).done;){var a=t.value;a in r||w.includes(a)||(r[a]=n[a].bind(n))}return r}const x="undefined"!=typeof document?r.useLayoutEffect:r.useEffect;var E=["baseApiUrl","maxParallelImageRequests","workerClass","workerCount","workerUrl"];var S=r.createContext(null);function C(e,t,n){var a=(0,r.useContext)(o),i=(0,r.useState)(null),s=i[0],u=i[1],l=(0,r.useRef)(),p=(0,r.useRef)({mapLib:null,map:null}).current;(0,r.useEffect)((function(){var t,r=e.mapLib,o=!0;return Promise.resolve(r||n).then((function(n){if(o){if(!n)throw new Error("Invalid mapLib");var r="Map"in n?n:n.default;if(!r.Map)throw new Error("Invalid mapLib");if(function(e,t){for(var n,r=(0,c.Z)(E);!(n=r()).done;){var o=n.value;o in t&&(e[o]=t[o])}var a=t.RTLTextPlugin,i=void 0===a?"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js":a;i&&e.getRTLTextPluginStatus&&"unavailable"===e.getRTLTextPluginStatus()&&e.setRTLTextPlugin(i,(function(e){e&&console.error(e)}),!0)}(r,e),r.supported&&!r.supported(e))throw new Error("Map is not supported by this browser");e.reuseMaps&&(t=_.reuse(e,l.current)),t||(t=new _(r.Map,e,l.current)),p.map=k(t),p.mapLib=r,u(t),null==a||a.onMapMount(p.map,e.id)}})).catch((function(t){var n=e.onError;n?n({type:"error",target:null,originalEvent:null,error:t}):console.error(t)})),function(){o=!1,t&&(null==a||a.onMapUnmount(e.id),e.reuseMaps?t.recycle():t.destroy())}}),[]),x((function(){s&&s.setProps(e)})),(0,r.useImperativeHandle)(t,(function(){return p.map}),[s]);var d=(0,r.useMemo)((function(){return Object.assign({position:"relative",width:"100%",height:"100%"},e.style)}),[e.style]);return r.createElement("div",{id:e.id,ref:l,style:d},s&&r.createElement(S.Provider,{value:p},r.createElement("div",{"mapboxgl-children":"",style:{height:"100%"}},e.children)))}var P=n(3935),j=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function L(e,t){if(e&&t){var n=e.style;for(var r in t){var o=t[r];Number.isFinite(o)&&!j.test(r)?n[r]=o+"px":n[r]=o}}}function M(e,t){var n=(0,r.useContext)(S),o=n.map,a=n.mapLib,i=(0,r.useRef)({props:e});i.current.props=e;var s=(0,r.useMemo)((function(){var t=!1;r.Children.forEach(e.children,(function(e){e&&(t=!0)}));var n=Object.assign({},e,{element:t?document.createElement("div"):null}),o=new a.Marker(n);return o.setLngLat([e.longitude,e.latitude]),o.getElement().addEventListener("click",(function(e){null==i.current.props.onClick||i.current.props.onClick({type:"click",target:o,originalEvent:e})})),o.on("dragstart",(function(e){var t=e;t.lngLat=s.getLngLat(),null==i.current.props.onDragStart||i.current.props.onDragStart(t)})),o.on("drag",(function(e){var t=e;t.lngLat=s.getLngLat(),null==i.current.props.onDrag||i.current.props.onDrag(t)})),o.on("dragend",(function(e){var t=e;t.lngLat=s.getLngLat(),null==i.current.props.onDragEnd||i.current.props.onDragEnd(t)})),o}),[]);(0,r.useEffect)((function(){return s.addTo(o.getMap()),function(){s.remove()}}),[]);var u,l,c,p,d,m,f=e.longitude,g=e.latitude,v=e.offset,h=e.style,y=e.draggable,_=void 0!==y&&y,b=e.popup,w=void 0===b?null:b,k=e.rotation,x=void 0===k?0:k,E=e.rotationAlignment,C=void 0===E?"auto":E,j=e.pitchAlignment,M=void 0===j?"auto":j;return(0,r.useEffect)((function(){L(s.getElement(),h)}),[h]),(0,r.useImperativeHandle)(t,(function(){return s}),[]),s.getLngLat().lng===f&&s.getLngLat().lat===g||s.setLngLat([f,g]),v&&(u=s.getOffset(),l=v,c=Array.isArray(u)?u[0]:u?u.x:0,p=Array.isArray(u)?u[1]:u?u.y:0,d=Array.isArray(l)?l[0]:l?l.x:0,m=Array.isArray(l)?l[1]:l?l.y:0,c!==d||p!==m)&&s.setOffset(v),s.isDraggable()!==_&&s.setDraggable(_),s.getRotation()!==x&&s.setRotation(x),s.getRotationAlignment()!==C&&s.setRotationAlignment(C),s.getPitchAlignment()!==M&&s.setPitchAlignment(M),s.getPopup()!==w&&s.setPopup(w),(0,P.createPortal)(e.children,s.getElement())}const T=(0,r.memo)((0,r.forwardRef)(M));function O(e){return new Set(e?e.trim().split(/\s+/):[])}function R(e,t){var n=(0,r.useContext)(S),o=n.map,a=n.mapLib,s=(0,r.useMemo)((function(){return document.createElement("div")}),[]),u=(0,r.useRef)({props:e});u.current.props=e;var l=(0,r.useMemo)((function(){var t=Object.assign({},e),n=new a.Popup(t);return n.setLngLat([e.longitude,e.latitude]),n.once("open",(function(e){null==u.current.props.onOpen||u.current.props.onOpen(e)})),n}),[]);if((0,r.useEffect)((function(){var e=function(e){null==u.current.props.onClose||u.current.props.onClose(e)};return l.on("close",e),l.setDOMContent(s).addTo(o.getMap()),function(){l.off("close",e),l.isOpen()&&l.remove()}}),[]),(0,r.useEffect)((function(){L(l.getElement(),e.style)}),[e.style]),(0,r.useImperativeHandle)(t,(function(){return l}),[]),l.isOpen()&&(l.getLngLat().lng===e.longitude&&l.getLngLat().lat===e.latitude||l.setLngLat([e.longitude,e.latitude]),e.offset&&!i(l.options.offset,e.offset)&&l.setOffset(e.offset),l.options.anchor===e.anchor&&l.options.maxWidth===e.maxWidth||(l.options.anchor=e.anchor,l.setMaxWidth(e.maxWidth)),l.options.className!==e.className)){for(var p,d=O(l.options.className),m=O(e.className),f=(0,c.Z)(d);!(p=f()).done;){var g=p.value;m.has(g)||l.removeClassName(g)}for(var v,h=(0,c.Z)(m);!(v=h()).done;){var y=v.value;d.has(y)||l.addClassName(y)}l.options.className=e.className}return(0,P.createPortal)(e.children,s)}const D=(0,r.memo)((0,r.forwardRef)(R));const z=function(e,t,n,o){var a=(0,r.useContext)(S),i=(0,r.useMemo)((function(){return e(a)}),[]);return(0,r.useEffect)((function(){var e=o||n||t,r="function"==typeof t&&"function"==typeof n?t:null,s="function"==typeof n?n:"function"==typeof t?t:null,u=a.map;return u.hasControl(i)||(u.addControl(i,null==e?void 0:e.position),r&&r(a)),function(){s&&s(a),u.hasControl(i)&&u.removeControl(i)}}),[]),i};function A(e){var t=z((function(t){return new t.mapLib.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)})}),{position:e.position});return(0,r.useEffect)((function(){L(t._controlContainer,e.style)}),[e.style]),null}const N=(0,r.memo)(A);function I(e,t){var n=(0,r.useRef)({props:e}),o=z((function(t){var r=new t.mapLib.GeolocateControl(e),o=r._setupUI;return r._setupUI=function(e){r._container.hasChildNodes()||o(e)},r.on("geolocate",(function(e){null==n.current.props.onGeolocate||n.current.props.onGeolocate(e)})),r.on("error",(function(e){null==n.current.props.onError||n.current.props.onError(e)})),r.on("outofmaxbounds",(function(e){null==n.current.props.onOutOfMaxBounds||n.current.props.onOutOfMaxBounds(e)})),r.on("trackuserlocationstart",(function(e){null==n.current.props.onTrackUserLocationStart||n.current.props.onTrackUserLocationStart(e)})),r.on("trackuserlocationend",(function(e){null==n.current.props.onTrackUserLocationEnd||n.current.props.onTrackUserLocationEnd(e)})),r}),{position:e.position});return n.current.props=e,(0,r.useImperativeHandle)(t,(function(){return o}),[]),(0,r.useEffect)((function(){L(o._container,e.style)}),[e.style]),null}const Z=(0,r.memo)((0,r.forwardRef)(I));function F(e){var t=z((function(t){return new t.mapLib.NavigationControl(e)}),{position:e.position});return(0,r.useEffect)((function(){L(t._container,e.style)}),[e.style]),null}const U=(0,r.memo)(F);function W(e){var t=z((function(t){return new t.mapLib.ScaleControl(e)}),{position:e.position}),n=(0,r.useRef)(e),o=n.current;n.current=e;var a=e.style;return void 0!==e.maxWidth&&e.maxWidth!==o.maxWidth&&(t.options.maxWidth=e.maxWidth),void 0!==e.unit&&e.unit!==o.unit&&t.setUnit(e.unit),(0,r.useEffect)((function(){L(t._container,a)}),[a]),null}const J=(0,r.memo)(W);function G(e,t){if(!e)throw new Error(t)}var B=0;const H=function(e){var t=(0,r.useContext)(S).map.getMap(),n=(0,r.useRef)(e),o=(0,r.useState)(0)[1],a=(0,r.useMemo)((function(){return e.id||"jsx-layer-"+B++}),[]);if((0,r.useEffect)((function(){if(t){var e=function(){return o((function(e){return e+1}))};return t.on("styledata",e),e(),function(){t.off("styledata",e),t.style&&t.style._loaded&&t.getLayer(a)&&t.removeLayer(a)}}}),[t]),t&&t.style&&t.getLayer(a))try{!function(e,t,n,r){if(G(n.id===r.id,"layer id changed"),G(n.type===r.type,"layer type changed"),"custom"!==n.type&&"custom"!==r.type){var o=n.layout,a=void 0===o?{}:o,s=n.paint,u=void 0===s?{}:s,l=n.filter,c=n.minzoom,p=n.maxzoom,d=n.beforeId;if(d!==r.beforeId&&e.moveLayer(t,d),a!==r.layout){var m=r.layout||{};for(var f in a)i(a[f],m[f])||e.setLayoutProperty(t,f,a[f]);for(var g in m)a.hasOwnProperty(g)||e.setLayoutProperty(t,g,void 0)}if(u!==r.paint){var v=r.paint||{};for(var h in u)i(u[h],v[h])||e.setPaintProperty(t,h,u[h]);for(var y in v)u.hasOwnProperty(y)||e.setPaintProperty(t,y,void 0)}i(l,r.filter)||e.setFilter(t,l),c===r.minzoom&&p===r.maxzoom||e.setLayerZoomRange(t,c,p)}}(t,a,e,n.current)}catch(s){console.warn(s)}else!function(e,t,n){if(e.style&&e.style._loaded&&(!("source"in n)||e.getSource(n.source))){var r=Object.assign({},n,{id:t});delete r.beforeId,e.addLayer(r,n.beforeId)}}(t,a,e);return n.current=e,null};var V=0;const q=function(e){var t=(0,r.useContext)(S).map.getMap(),n=(0,r.useRef)(e),o=(0,r.useState)(0)[1],a=(0,r.useMemo)((function(){return e.id||"jsx-source-"+V++}),[]);(0,r.useEffect)((function(){if(t){var e=function(){return setTimeout((function(){return o((function(e){return e+1}))}),0)};return t.on("styledata",e),e(),function(){if(t.off("styledata",e),t.style&&t.style._loaded&&t.getSource(a)){var n,r=null==(n=t.getStyle())?void 0:n.layers;if(r)for(var o,i=(0,c.Z)(r);!(o=i()).done;){var s=o.value;s.source===a&&t.removeLayer(s.id)}t.removeSource(a)}}}}),[t]);var s=t&&t.style&&t.getSource(a);return s?function(e,t,n){G(t.id===n.id,"source id changed"),G(t.type===n.type,"source type changed");var r="",o=0;for(var a in t)"children"===a||"id"===a||i(n[a],t[a])||(r=a,o++);if(o){var s=t.type;if("geojson"===s)e.setData(t.data);else if("image"===s)e.updateImage({url:t.url,coordinates:t.coordinates});else if("setCoordinates"in e&&1===o&&"coordinates"===r)e.setCoordinates(t.coordinates);else if("setUrl"in e)switch(r){case"url":e.setUrl(t.url);break;case"tiles":e.setTiles(t.tiles)}else console.warn("Unable to update prop: "+r)}}(s,e,n.current):s=function(e,t,n){if(e.style&&e.style._loaded){var r=Object.assign({},n);return delete r.id,delete r.children,e.addSource(t,r),e.getSource(t)}return null}(t,a,e),n.current=e,s&&r.Children.map(e.children,(function(e){return e&&(0,r.cloneElement)(e,{source:a})}))||null};var Q=n.e(8539).then(n.t.bind(n,8539,23)),X=r.forwardRef((function(e,t){return C(e,t,Q)})),Y=T,$=D,K=N,ee=U,te=Z,ne=J,re=H,oe=q;const ae=X},745:(e,t,n)=>{var r=n(3935);r.createRoot,r.hydrateRoot},1202:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(1002);function o(e){var t=function(e,t){if("object"!==(0,r.Z)(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!==(0,r.Z)(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===(0,r.Z)(t)?t:String(t)}function a(e,t){for(var n=0;n{e.exports=JSON.parse('[{"city":"New York","population":"8,175,133","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/Above_Gotham.jpg/240px-Above_Gotham.jpg","state":"New York","latitude":40.6643,"longitude":-73.9385},{"city":"Los Angeles","population":"3,792,621","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/5/57/LA_Skyline_Mountains2.jpg/240px-LA_Skyline_Mountains2.jpg","state":"California","latitude":34.0194,"longitude":-118.4108},{"city":"Chicago","population":"2,695,598","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/8/85/2008-06-10_3000x1000_chicago_skyline.jpg/240px-2008-06-10_3000x1000_chicago_skyline.jpg","state":"Illinois","latitude":41.8376,"longitude":-87.6818},{"city":"Houston","population":"2,100,263","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/6/60/Aerial_views_of_the_Houston%2C_Texas%2C_28005u.jpg/240px-Aerial_views_of_the_Houston%2C_Texas%2C_28005u.jpg","state":"Texas","latitude":29.7805,"longitude":-95.3863},{"city":"Phoenix","population":"1,445,632","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/Downtown_Phoenix_Aerial_Looking_Northeast.jpg/207px-Downtown_Phoenix_Aerial_Looking_Northeast.jpg","state":"Arizona","latitude":33.5722,"longitude":-112.088},{"city":"Philadelphia","population":"1,526,006","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Philly_skyline.jpg/240px-Philly_skyline.jpg","state":"Pennsylvania","latitude":40.0094,"longitude":-75.1333},{"city":"San Antonio","population":"1,327,407","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Downtown_San_Antonio_View.JPG/240px-Downtown_San_Antonio_View.JPG","state":"Texas","latitude":29.4724,"longitude":-98.5251},{"city":"San Diego","population":"1,307,402","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/5/53/US_Navy_110604-N-NS602-574_Navy_and_Marine_Corps_personnel%2C_along_with_community_leaders_from_the_greater_San_Diego_area_come_together_to_commemora.jpg/240px-US_Navy_110604-N-NS602-574_Navy_and_Marine_Corps_personnel%2C_along_with_community_leaders_from_the_greater_San_Diego_area_come_together_to_commemora.jpg","state":"California","latitude":32.8153,"longitude":-117.135},{"city":"Dallas","population":"1,197,816","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/a/ab/Dallas_skyline_daytime.jpg/240px-Dallas_skyline_daytime.jpg","state":"Texas","latitude":32.7757,"longitude":-96.7967},{"city":"San Jose","population":"945,942","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/1/1e/Downtown_San_Jose_skyline.PNG/240px-Downtown_San_Jose_skyline.PNG","state":"California","latitude":37.2969,"longitude":-121.8193},{"city":"Austin","population":"790,390","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/9/97/Austin2012-12-01.JPG/240px-Austin2012-12-01.JPG","state":"Texas","latitude":30.3072,"longitude":-97.756},{"city":"Jacksonville","population":"821,784","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Skyline_of_Jacksonville_FL%2C_South_view_20160706_1.jpg/240px-Skyline_of_Jacksonville_FL%2C_South_view_20160706_1.jpg","state":"Florida","latitude":30.337,"longitude":-81.6613},{"city":"San Francisco","population":"805,235","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/San_Francisco_skyline_from_Coit_Tower.jpg/240px-San_Francisco_skyline_from_Coit_Tower.jpg","state":"California","latitude":37.7751,"longitude":-122.4193},{"city":"Columbus","population":"787,033","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Columbus-ohio-skyline-panorama.jpg/240px-Columbus-ohio-skyline-panorama.jpg","state":"Ohio","latitude":39.9848,"longitude":-82.985},{"city":"Indianapolis","population":"820,445","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/1/16/Downtown_indy_from_parking_garage_zoom.JPG/213px-Downtown_indy_from_parking_garage_zoom.JPG","state":"Indiana","latitude":39.7767,"longitude":-86.1459},{"city":"Fort Worth","population":"741,206","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/d/db/FortWorthTexasSkylineW.jpg/240px-FortWorthTexasSkylineW.jpg","state":"Texas","latitude":32.7795,"longitude":-97.3463},{"city":"Charlotte","population":"731,424","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/7/7d/Charlotte_skyline45647.jpg/222px-Charlotte_skyline45647.jpg","state":"North Carolina","latitude":35.2087,"longitude":-80.8307},{"city":"Seattle","population":"608,660","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/3/36/SeattleI5Skyline.jpg/240px-SeattleI5Skyline.jpg","state":"Washington","latitude":47.6205,"longitude":-122.3509},{"city":"Denver","population":"600,158","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/0/0b/DenverCP.JPG/240px-DenverCP.JPG","state":"Colorado","latitude":39.7618,"longitude":-104.8806},{"city":"El Paso","population":"649,121","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Downtown_El_Paso_at_sunset.jpeg/240px-Downtown_El_Paso_at_sunset.jpeg","state":"Texas","latitude":31.8484,"longitude":-106.427}]')}}]); \ No newline at end of file diff --git a/assets/js/2da7f285.20093421.js b/assets/js/2da7f285.20093421.js deleted file mode 100644 index ad86a003..00000000 --- a/assets/js/2da7f285.20093421.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[5504],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>k});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),c=u(a),d=n,k=c["".concat(p,".").concat(d)]||c[d]||m[d]||l;return a?r.createElement(k,o(o({ref:t},s),{},{components:a})):r.createElement(k,o({ref:t},s))}));function k(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,o=new Array(l);o[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[c]="string"==typeof e?e:n,o[1]=i;for(var u=2;u{a.d(t,{Z:()=>o});var r=a(7294),n=a(6010);const l={tabItem:"tabItem_Ymn6"};function o(e){var t=e.children,a=e.hidden,o=e.className;return r.createElement("div",{role:"tabpanel",className:(0,n.Z)(l.tabItem,o),hidden:a},t)}},4866:(e,t,a)=>{a.d(t,{Z:()=>N});var r=a(7462),n=a(7294),l=a(6010),o=a(2466),i=a(6550),p=a(1980),u=a(7392),s=a(12);function c(e){return function(e){var t,a;return null!=(t=null==(a=n.Children.map(e,(function(e){if(!e||(0,n.isValidElement)(e)&&(t=e.props)&&"object"==typeof t&&"value"in t)return e;var t;throw new Error("Docusaurus error: Bad child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:a.filter(Boolean))?t:[]}(e).map((function(e){var t=e.props;return{value:t.value,label:t.label,attributes:t.attributes,default:t.default}}))}function m(e){var t=e.values,a=e.children;return(0,n.useMemo)((function(){var e=null!=t?t:c(a);return function(e){var t=(0,u.l)(e,(function(e,t){return e.value===t.value}));if(t.length>0)throw new Error('Docusaurus error: Duplicate values "'+t.map((function(e){return e.value})).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[t,a])}function d(e){var t=e.value;return e.tabValues.some((function(e){return e.value===t}))}function k(e){var t=e.queryString,a=void 0!==t&&t,r=e.groupId,l=(0,i.k6)(),o=function(e){var t=e.queryString,a=void 0!==t&&t,r=e.groupId;if("string"==typeof a)return a;if(!1===a)return null;if(!0===a&&!r)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=r?r:null}({queryString:a,groupId:r});return[(0,p._X)(o),(0,n.useCallback)((function(e){if(o){var t=new URLSearchParams(l.location.search);t.set(o,e),l.replace(Object.assign({},l.location,{search:t.toString()}))}}),[o,l])]}function f(e){var t,a,r,l,o=e.defaultValue,i=e.queryString,p=void 0!==i&&i,u=e.groupId,c=m(e),f=(0,n.useState)((function(){return function(e){var t,a=e.defaultValue,r=e.tabValues;if(0===r.length)throw new Error("Docusaurus error: the component requires at least one children component");if(a){if(!d({value:a,tabValues:r}))throw new Error('Docusaurus error: The has a defaultValue "'+a+'" but none of its children has the corresponding value. Available values are: '+r.map((function(e){return e.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return a}var n=null!=(t=r.find((function(e){return e.default})))?t:r[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:o,tabValues:c})})),g=f[0],v=f[1],h=k({queryString:p,groupId:u}),b=h[0],y=h[1],N=(t=function(e){return e?"docusaurus.tab."+e:null}({groupId:u}.groupId),a=(0,s.Nk)(t),r=a[0],l=a[1],[r,(0,n.useCallback)((function(e){t&&l.set(e)}),[t,l])]),C=N[0],M=N[1],w=function(){var e=null!=b?b:C;return d({value:e,tabValues:c})?e:null}();return(0,n.useLayoutEffect)((function(){w&&v(w)}),[w]),{selectedValue:g,selectValue:(0,n.useCallback)((function(e){if(!d({value:e,tabValues:c}))throw new Error("Can't select invalid tab value="+e);v(e),y(e),M(e)}),[y,M,c]),tabValues:c}}var g=a(2389);const v={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function h(e){var t=e.className,a=e.block,i=e.selectedValue,p=e.selectValue,u=e.tabValues,s=[],c=(0,o.o5)().blockElementScrollPositionUntilNextRender,m=function(e){var t=e.currentTarget,a=s.indexOf(t),r=u[a].value;r!==i&&(c(t),p(r))},d=function(e){var t,a=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":var r,n=s.indexOf(e.currentTarget)+1;a=null!=(r=s[n])?r:s[0];break;case"ArrowLeft":var l,o=s.indexOf(e.currentTarget)-1;a=null!=(l=s[o])?l:s[s.length-1]}null==(t=a)||t.focus()};return n.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":a},t)},u.map((function(e){var t=e.value,a=e.label,o=e.attributes;return n.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:function(e){return s.push(e)},onKeyDown:d,onClick:m},o,{className:(0,l.Z)("tabs__item",v.tabItem,null==o?void 0:o.className,{"tabs__item--active":i===t})}),null!=a?a:t)})))}function b(e){var t=e.lazy,a=e.children,r=e.selectedValue,l=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){var o=l.find((function(e){return e.props.value===r}));return o?(0,n.cloneElement)(o,{className:"margin-top--md"}):null}return n.createElement("div",{className:"margin-top--md"},l.map((function(e,t){return(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==r})})))}function y(e){var t=f(e);return n.createElement("div",{className:(0,l.Z)("tabs-container",v.tabList)},n.createElement(h,(0,r.Z)({},e,t)),n.createElement(b,(0,r.Z)({},e,t)))}function N(e){var t=(0,g.Z)();return n.createElement(y,(0,r.Z)({key:String(t)},e))}},323:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>m,contentTitle:()=>s,default:()=>g,frontMatter:()=>u,metadata:()=>c,toc:()=>d});var r=a(7462),n=a(3366),l=(a(7294),a(3905)),o=a(4866),i=a(5162),p=["components"],u={},s="Marker",c={unversionedId:"api-reference/marker",id:"api-reference/marker",title:"Marker",description:"React component that wraps the base library's Marker class (Mapbox | Maplibre).",source:"@site/../docs/api-reference/marker.md",sourceDirName:"api-reference",slug:"/api-reference/marker",permalink:"/react-map-gl/docs/api-reference/marker",draft:!1,editUrl:"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/marker.md",tags:[],version:"current",frontMatter:{},sidebar:"docsSidebar",previous:{title:"MapProvider",permalink:"/react-map-gl/docs/api-reference/map-provider"},next:{title:"NavigationControl",permalink:"/react-map-gl/docs/api-reference/navigation-control"}},m={},d=[{value:"Properties",id:"properties",level:2},{value:"Reactive Properties",id:"reactive-properties",level:3},{value:"draggable: boolean",id:"draggable",level:4},{value:"latitude: number",id:"latitude",level:4},{value:"longitude: number",id:"longitude",level:4},{value:"offset: PointLike",id:"offset",level:4},{value:"pitchAlignment: 'map' | 'viewport' | 'auto'",id:"pitchalignment",level:4},{value:"popup: Popup | null",id:"popup",level:4},{value:"rotation: number",id:"rotation",level:4},{value:"rotationAlignment: 'map' | 'viewport' | 'auto'",id:"rotationalignment",level:4},{value:"style: CSSProperties",id:"style",level:4},{value:"Callbacks",id:"callbacks",level:3},{value:"onClick: (evt: MapEvent) => void",id:"onclick",level:4},{value:"onDragStart: (evt: MarkerDragEvent) => void",id:"ondragstart",level:4},{value:"onDrag: (evt: MarkerDragEvent) => void",id:"ondrag",level:4},{value:"onDragEnd: (evt: MarkerDragEvent) => void",id:"ondragend",level:4},{value:"Other Properties",id:"other-properties",level:3},{value:"Methods",id:"methods",level:2},{value:"Source",id:"source",level:2}],k={toc:d},f="wrapper";function g(e){var t=e.components,a=(0,n.Z)(e,p);return(0,l.kt)(f,(0,r.Z)({},k,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"marker"},"Marker"),(0,l.kt)("p",null,"React component that wraps the base library's ",(0,l.kt)("inlineCode",{parentName:"p"},"Marker")," class (",(0,l.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/api/markers/#marker"},"Mapbox")," | ",(0,l.kt)("a",{parentName:"p",href:"https://maplibre.org/maplibre-gl-js-docs/api/markers/#marker"},"Maplibre"),")."),(0,l.kt)(o.Z,{groupId:"map-library",mdxType:"Tabs"},(0,l.kt)(i.Z,{value:"mapbox",label:"Mapbox",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-tsx"},'import * as React from \'react\';\nimport Map, {Marker} from \'react-map-gl\';\n\nfunction App() {\n return \n \n \n \n ;\n}\n'))),(0,l.kt)(i.Z,{value:"maplibre",label:"Maplibre",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-tsx"},'import * as React from \'react\';\nimport Map, {Marker} from \'react-map-gl/maplibre\';\n\nfunction App() {\n return \n \n \n \n ;\n}\n')))),(0,l.kt)("p",null,"If ",(0,l.kt)("inlineCode",{parentName:"p"},"Marker")," is mounted with child components, then its content will be rendered to the specified location. If it is mounted with no content, then a default marker will be used."),(0,l.kt)("h2",{id:"properties"},"Properties"),(0,l.kt)("h3",{id:"reactive-properties"},"Reactive Properties"),(0,l.kt)("h4",{id:"draggable"},(0,l.kt)("inlineCode",{parentName:"h4"},"draggable"),": boolean"),(0,l.kt)("p",null,"Default: ",(0,l.kt)("inlineCode",{parentName:"p"},"false")),(0,l.kt)("p",null,"If ",(0,l.kt)("inlineCode",{parentName:"p"},"true"),", the marker is able to be dragged to a new position on the map."),(0,l.kt)("h4",{id:"latitude"},(0,l.kt)("inlineCode",{parentName:"h4"},"latitude"),": number"),(0,l.kt)("p",null,"Required. The latitude of the anchor location."),(0,l.kt)("h4",{id:"longitude"},(0,l.kt)("inlineCode",{parentName:"h4"},"longitude"),": number"),(0,l.kt)("p",null,"Required. The longitude of the anchor location."),(0,l.kt)("h4",{id:"offset"},(0,l.kt)("inlineCode",{parentName:"h4"},"offset"),": ",(0,l.kt)("a",{parentName:"h4",href:"/react-map-gl/docs/api-reference/types#pointlike"},"PointLike")),(0,l.kt)("p",null,"Default: ",(0,l.kt)("inlineCode",{parentName:"p"},"null")),(0,l.kt)("p",null,"The offset in pixels as a ",(0,l.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/api/geography/#pointlike"},"PointLike")," object to apply relative to the element's center. Negatives indicate left and up."),(0,l.kt)("h4",{id:"pitchalignment"},(0,l.kt)("inlineCode",{parentName:"h4"},"pitchAlignment"),": 'map' | 'viewport' | 'auto'"),(0,l.kt)("p",null,"Default: ",(0,l.kt)("inlineCode",{parentName:"p"},"'auto'")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"map")," aligns the ",(0,l.kt)("inlineCode",{parentName:"li"},"Marker")," to the plane of the map."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"viewport")," aligns the ",(0,l.kt)("inlineCode",{parentName:"li"},"Marker")," to the plane of the viewport."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"auto")," automatically matches the value of ",(0,l.kt)("inlineCode",{parentName:"li"},"rotationAlignment"),".")),(0,l.kt)("h4",{id:"popup"},(0,l.kt)("inlineCode",{parentName:"h4"},"popup"),": Popup | null"),(0,l.kt)("p",null,"An instance of the ",(0,l.kt)("inlineCode",{parentName:"p"},"Popup")," class (",(0,l.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/api/markers/#popup"},"Mapbox")," | ",(0,l.kt)("a",{parentName:"p",href:"https://maplibre.org/maplibre-gl-js-docs/api/markers/#popup"},"Maplibre"),") to attach to this marker. If undefined or null, any popup set on this Marker instance is unset."),(0,l.kt)("h4",{id:"rotation"},(0,l.kt)("inlineCode",{parentName:"h4"},"rotation"),": number"),(0,l.kt)("p",null,"Default: ",(0,l.kt)("inlineCode",{parentName:"p"},"0")),(0,l.kt)("p",null,"The rotation angle of the marker in degrees, relative to its ",(0,l.kt)("inlineCode",{parentName:"p"},"rotationAlignment")," setting. A positive value will rotate the marker clockwise."),(0,l.kt)("h4",{id:"rotationalignment"},(0,l.kt)("inlineCode",{parentName:"h4"},"rotationAlignment"),": 'map' | 'viewport' | 'auto'"),(0,l.kt)("p",null,"Default: ",(0,l.kt)("inlineCode",{parentName:"p"},"'auto'")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"map")," aligns the ",(0,l.kt)("inlineCode",{parentName:"li"},"Marker"),"'s rotation relative to the map, maintaining a bearing as the map rotates."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"viewport")," aligns the ",(0,l.kt)("inlineCode",{parentName:"li"},"Marker"),"'s rotation relative to the viewport, agnostic to map rotations."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"auto")," is equivalent to ",(0,l.kt)("inlineCode",{parentName:"li"},"viewport"),".")),(0,l.kt)("h4",{id:"style"},(0,l.kt)("inlineCode",{parentName:"h4"},"style"),": CSSProperties"),(0,l.kt)("p",null,"CSS style override that applies to the marker's container."),(0,l.kt)("h3",{id:"callbacks"},"Callbacks"),(0,l.kt)("h4",{id:"onclick"},(0,l.kt)("inlineCode",{parentName:"h4"},"onClick"),": (evt: ",(0,l.kt)("a",{parentName:"h4",href:"/react-map-gl/docs/api-reference/types#mapevent"},"MapEvent"),") => void"),(0,l.kt)("p",null,"Called when the marker is clicked on."),(0,l.kt)("h4",{id:"ondragstart"},(0,l.kt)("inlineCode",{parentName:"h4"},"onDragStart"),": (evt: ",(0,l.kt)("a",{parentName:"h4",href:"/react-map-gl/docs/api-reference/types#markerdragevent"},"MarkerDragEvent"),") => void"),(0,l.kt)("p",null,"Called when dragging starts, if ",(0,l.kt)("inlineCode",{parentName:"p"},"draggable")," is ",(0,l.kt)("inlineCode",{parentName:"p"},"true"),"."),(0,l.kt)("h4",{id:"ondrag"},(0,l.kt)("inlineCode",{parentName:"h4"},"onDrag"),": (evt: ",(0,l.kt)("a",{parentName:"h4",href:"/react-map-gl/docs/api-reference/types#markerdragevent"},"MarkerDragEvent"),") => void"),(0,l.kt)("p",null,"Called while dragging, if ",(0,l.kt)("inlineCode",{parentName:"p"},"draggable")," is ",(0,l.kt)("inlineCode",{parentName:"p"},"true"),"."),(0,l.kt)("h4",{id:"ondragend"},(0,l.kt)("inlineCode",{parentName:"h4"},"onDragEnd"),": (evt: ",(0,l.kt)("a",{parentName:"h4",href:"/react-map-gl/docs/api-reference/types#markerdragevent"},"MarkerDragEvent"),") => void"),(0,l.kt)("p",null,"Called when dragging ends, if ",(0,l.kt)("inlineCode",{parentName:"p"},"draggable")," is ",(0,l.kt)("inlineCode",{parentName:"p"},"true"),"."),(0,l.kt)("h3",{id:"other-properties"},"Other Properties"),(0,l.kt)("p",null,"The properties in this section are not reactive. They are only used when the component first mounts."),(0,l.kt)("p",null,"Any options supported by the ",(0,l.kt)("inlineCode",{parentName:"p"},"Marker")," class (",(0,l.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/api/markers/#marker"},"Mapbox")," | ",(0,l.kt)("a",{parentName:"p",href:"https://maplibre.org/maplibre-gl-js-docs/api/markers/#marker"},"Maplibre"),"), such as"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"anchor")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"color")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"scale")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"clickTolerance"))),(0,l.kt)("h2",{id:"methods"},"Methods"),(0,l.kt)("p",null,"The underlying native ",(0,l.kt)("inlineCode",{parentName:"p"},"Marker")," instance is accessible via a ",(0,l.kt)("a",{parentName:"p",href:"https://reactjs.org/docs/refs-and-the-dom.html#creating-refs"},"React ref")," hook.\nYou may use it to call any imperative methods:"),(0,l.kt)(o.Z,{groupId:"map-library",mdxType:"Tabs"},(0,l.kt)(i.Z,{value:"mapbox",label:"Mapbox",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-tsx"},"import * as React from 'react';\nimport {useRef, useMemo, useCallback} from 'react';\nimport Map, {Marker} from 'react-map-gl';\nimport mapboxgl from 'mapbox-gl';\n\nfunction App() {\n const markerRef = useRef();\n\n const popup = useMemo(() => {\n return mapboxgl.Popup().setText('Hello world!');\n }, [])\n\n const togglePopup = useCallback(() => {\n markerRef.current?.togglePopup();\n }, []);\n\n return <>\n \n \n \n \n ;\n}\n"))),(0,l.kt)(i.Z,{value:"maplibre",label:"Maplibre",mdxType:"TabItem"},(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-tsx"},"import * as React from 'react';\nimport {useRef, useMemo, useCallback} from 'react';\nimport Map, {Marker} from 'react-map-gl/maplibre';\nimport maplibregl from 'maplibre-gl';\n\nfunction App() {\n const markerRef = useRef();\n\n const popup = useMemo(() => {\n return maplibregl.Popup().setText('Hello world!');\n }, [])\n\n const togglePopup = useCallback(() => {\n markerRef.current?.togglePopup();\n }, []);\n\n return <>\n \n \n \n \n ;\n}\n")))),(0,l.kt)("h2",{id:"source"},"Source"),(0,l.kt)("p",null,(0,l.kt)("a",{parentName:"p",href:"https://github.com/visgl/react-map-gl/tree/7.1-release/src/components/marker.ts"},"marker.ts")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2fcc0790.2fa2fbf7.js b/assets/js/2fcc0790.2fa2fbf7.js deleted file mode 100644 index b3988588..00000000 --- a/assets/js/2fcc0790.2fa2fbf7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[811],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>g});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),c=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(a),d=n,g=u["".concat(s,".").concat(d)]||u[d]||m[d]||o;return a?r.createElement(g,i(i({ref:t},p),{},{components:a})):r.createElement(g,i({ref:t},p))}));function g(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:n,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>g,frontMatter:()=>l,metadata:()=>c,toc:()=>u});var r=a(7462),n=a(3366),o=(a(7294),a(3905)),i=["components"],l={},s="Adding Custom Data",c={unversionedId:"get-started/adding-custom-data",id:"get-started/adding-custom-data",title:"Adding Custom Data",description:"Native Mapbox Layers",source:"@site/../docs/get-started/adding-custom-data.md",sourceDirName:"get-started",slug:"/get-started/adding-custom-data",permalink:"/react-map-gl/docs/get-started/adding-custom-data",draft:!1,editUrl:"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/get-started/adding-custom-data.md",tags:[],version:"current",frontMatter:{},sidebar:"docsSidebar",previous:{title:"State Management",permalink:"/react-map-gl/docs/get-started/state-management"},next:{title:"Tips and Tricks",permalink:"/react-map-gl/docs/get-started/tips-and-tricks"}},p={},u=[{value:"Native Mapbox Layers",id:"native-mapbox-layers",level:2},{value:"Custom Overlays",id:"custom-overlays",level:2},{value:"Other vis.gl Libraries",id:"other-visgl-libraries",level:2}],m={toc:u},d="wrapper";function g(e){var t=e.components,a=(0,n.Z)(e,i);return(0,o.kt)(d,(0,r.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"adding-custom-data"},"Adding Custom Data"),(0,o.kt)("h2",{id:"native-mapbox-layers"},"Native Mapbox Layers"),(0,o.kt)("p",null,"You can inject data and mapbox native layers using the ",(0,o.kt)("a",{parentName:"p",href:"/react-map-gl/docs/api-reference/source"},"Source")," and ",(0,o.kt)("a",{parentName:"p",href:"/react-map-gl/docs/api-reference/layer"},"Layer")," components:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"import * as React from 'react';\nimport Map, {Source, Layer} from 'react-map-gl';\nimport type {CircleLayer} from 'react-map-gl';\nimport type {FeatureCollection} from 'geojson';\n\nconst geojson: FeatureCollection = {\n type: 'FeatureCollection',\n features: [\n {type: 'Feature', geometry: {type: 'Point', coordinates: [-122.4, 37.8]}}\n ]\n};\n\nconst layerStyle: CircleLayer = {\n id: 'point',\n type: 'circle',\n paint: {\n 'circle-radius': 10,\n 'circle-color': '#007cbf'\n }\n};\n\nfunction App() {\n return (\n \n \n \n \n \n );\n}\n")),(0,o.kt)("p",null,"For details about data sources and layer configuration, check out the ",(0,o.kt)("a",{parentName:"p",href:"https://www.mapbox.com/mapbox-gl-js/style-spec"},"Mapbox style specification"),"."),(0,o.kt)("p",null,"For dynamically updating data sources and layers, check out the ",(0,o.kt)("a",{parentName:"p",href:"http://visgl.github.io/react-map-gl/examples/geojson"},"GeoJSON")," and ",(0,o.kt)("a",{parentName:"p",href:"http://visgl.github.io/react-map-gl/examples/geojson-animation"},"GeoJSON animation")," examples."),(0,o.kt)("h2",{id:"custom-overlays"},"Custom Overlays"),(0,o.kt)("p",null,"You can implement a custom HTML or SVG overlay on top of the map that redraws whenever the camera changes. By calling ",(0,o.kt)("inlineCode",{parentName:"p"},"map.project()")," you can adjust the DOM or CSS properties so that the customly-drawn features are always aligned with the map. See a full example ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/visgl/react-map-gl/tree/7.1-release/examples/custom-overlay"},"here"),"."),(0,o.kt)("h2",{id:"other-visgl-libraries"},"Other vis.gl Libraries"),(0,o.kt)("p",null,"For more feature rich and performant data visualization overlay use cases, you may consider using other visualization libraries. react-map-gl is part of the ",(0,o.kt)("a",{parentName:"p",href:"https://www.github.com/visgl"},"vis.gl")," ecosystem, a suite of high-performance data visualization tools for the Web."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://deck.gl"},"deck.gl")," - WebGL-powered framework for the visualization of large datasets."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://loaders.gl"},"loaders.gl")," - loaders for file formats focused on visualization of big data, including point clouds, 3D geometries, images, geospatial formats as well as tabular data."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://nebula.gl"},"nebula.gl")," - 3D-enabled GeoJSON editing based on deck.gl and React.")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2fcc0790.fa86accf.js b/assets/js/2fcc0790.fa86accf.js new file mode 100644 index 00000000..53174ac1 --- /dev/null +++ b/assets/js/2fcc0790.fa86accf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[6917],{5735:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"get-started/adding-custom-data","title":"Adding Custom Data","description":"Native Mapbox Layers","source":"@site/../docs/get-started/adding-custom-data.md","sourceDirName":"get-started","slug":"/get-started/adding-custom-data","permalink":"/react-map-gl/docs/get-started/adding-custom-data","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/get-started/adding-custom-data.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"State Management","permalink":"/react-map-gl/docs/get-started/state-management"},"next":{"title":"Tips and Tricks","permalink":"/react-map-gl/docs/get-started/tips-and-tricks"}}');var n=t(4848),s=t(8453);const o={},i="Adding Custom Data",l={},c=[{value:"Native Mapbox Layers",id:"native-mapbox-layers",level:2},{value:"Custom Overlays",id:"custom-overlays",level:2},{value:"Other vis.gl Libraries",id:"other-visgl-libraries",level:2}];function d(e){const a={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.header,{children:(0,n.jsx)(a.h1,{id:"adding-custom-data",children:"Adding Custom Data"})}),"\n",(0,n.jsx)(a.h2,{id:"native-mapbox-layers",children:"Native Mapbox Layers"}),"\n",(0,n.jsxs)(a.p,{children:["You can inject data and mapbox native layers using the ",(0,n.jsx)(a.a,{href:"/react-map-gl/docs/api-reference/mapbox/source",children:"Source"})," and ",(0,n.jsx)(a.a,{href:"/react-map-gl/docs/api-reference/mapbox/layer",children:"Layer"})," components:"]}),"\n",(0,n.jsx)(a.pre,{children:(0,n.jsx)(a.code,{className:"language-tsx",children:"import * as React from 'react';\nimport Map, {Source, Layer} from 'react-map-gl/maplibre';\nimport type {CircleLayer} from 'react-map-gl/maplibre';\nimport type {FeatureCollection} from 'geojson';\n\nconst geojson: FeatureCollection = {\n type: 'FeatureCollection',\n features: [\n {\n type: 'Feature',\n geometry: {\n type: 'Point',\n coordinates: [-122.4, 37.8]\n },\n properties: {title: '915 Front Street, San Francisco, California'}\n }\n ]\n};\n\nconst layerStyle: CircleLayer = {\n id: 'point',\n type: 'circle',\n paint: {\n 'circle-radius': 10,\n 'circle-color': '#007cbf'\n }\n};\n\nfunction App() {\n return (\n \n \n \n \n \n );\n}\n"})}),"\n",(0,n.jsxs)(a.p,{children:["For details about data sources and layer configuration, check out the ",(0,n.jsx)(a.a,{href:"https://www.mapbox.com/mapbox-gl-js/style-spec",children:"Mapbox style specification"}),"."]}),"\n",(0,n.jsxs)(a.p,{children:["For dynamically updating data sources and layers, check out the ",(0,n.jsx)(a.a,{href:"http://visgl.github.io/react-map-gl/examples/geojson",children:"GeoJSON"})," and ",(0,n.jsx)(a.a,{href:"http://visgl.github.io/react-map-gl/examples/geojson-animation",children:"GeoJSON animation"})," examples."]}),"\n",(0,n.jsx)(a.h2,{id:"custom-overlays",children:"Custom Overlays"}),"\n",(0,n.jsxs)(a.p,{children:["You can implement a custom HTML or SVG overlay on top of the map that redraws whenever the camera changes. By calling ",(0,n.jsx)(a.code,{children:"map.project()"})," you can adjust the DOM or CSS properties so that the customly-drawn features are always aligned with the map. See a full example ",(0,n.jsx)(a.a,{href:"https://github.com/visgl/react-map-gl/tree/7.0-release/examples/custom-overlay",children:"here"}),"."]}),"\n",(0,n.jsx)(a.h2,{id:"other-visgl-libraries",children:"Other vis.gl Libraries"}),"\n",(0,n.jsxs)(a.p,{children:["For more feature rich and performant data visualization overlay use cases, you may consider using other visualization libraries. react-map-gl is part of the ",(0,n.jsx)(a.a,{href:"https://www.github.com/visgl",children:"vis.gl"})," ecosystem, a suite of high-performance data visualization tools for the Web."]}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsxs)(a.li,{children:[(0,n.jsx)(a.a,{href:"https://deck.gl",children:"deck.gl"})," - WebGL-powered framework for the visualization of large datasets."]}),"\n",(0,n.jsxs)(a.li,{children:[(0,n.jsx)(a.a,{href:"https://loaders.gl",children:"loaders.gl"})," - loaders for file formats focused on visualization of big data, including point clouds, 3D geometries, images, geospatial formats as well as tabular data."]}),"\n",(0,n.jsxs)(a.li,{children:[(0,n.jsx)(a.a,{href:"https://nebula.gl",children:"nebula.gl"})," - 3D-enabled GeoJSON editing based on deck.gl and React."]}),"\n"]})]})}function p(e={}){const{wrapper:a}={...(0,s.R)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},8453:(e,a,t)=>{t.d(a,{R:()=>o,x:()=>i});var r=t(6540);const n={},s=r.createContext(n);function o(e){const a=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function i(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),r.createElement(s.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3220.b365ff01.js b/assets/js/3220.b365ff01.js deleted file mode 100644 index 90892ac2..00000000 --- a/assets/js/3220.b365ff01.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[3220],{3905:(e,a,f)=>{f.d(a,{Zo:()=>o,kt:()=>h});var t=f(7294);function r(e,a,f){return a in e?Object.defineProperty(e,a,{value:f,enumerable:!0,configurable:!0,writable:!0}):e[a]=f,e}function c(e,a){var f=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a&&(t=t.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),f.push.apply(f,t)}return f}function n(e){for(var a=1;a=0||(r[f]=e[f]);return r}(e,a);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,f)&&(r[f]=e[f])}return r}var i=t.createContext({}),b=function(e){var a=t.useContext(i),f=a;return e&&(f="function"==typeof e?e(a):n(n({},a),e)),f},o=function(e){var a=b(e.components);return t.createElement(i.Provider,{value:a},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var a=e.children;return t.createElement(t.Fragment,{},a)}},l=t.forwardRef((function(e,a){var f=e.components,r=e.mdxType,c=e.originalType,i=e.parentName,o=d(e,["components","mdxType","originalType","parentName"]),u=b(f),l=r,h=u["".concat(i,".").concat(l)]||u[l]||s[l]||c;return f?t.createElement(h,n(n({ref:a},o),{},{components:f})):t.createElement(h,n({ref:a},o))}));function h(e,a){var f=arguments,r=a&&a.mdxType;if("string"==typeof e||r){var c=f.length,n=new Array(c);n[0]=l;var d={};for(var i in a)hasOwnProperty.call(a,i)&&(d[i]=a[i]);d.originalType=e,d[u]="string"==typeof e?e:r,n[1]=d;for(var b=2;b{function t(e,a){return ea?1:e>=a?0:NaN}f.d(a,{j2:()=>t,b4:()=>d,VR:()=>o,w6:()=>u});var r,c,n=(1===(r=t).length&&(c=r,r=function(e,a){return t(c(e),a)}),{left:function(e,a,f,t){for(null==f&&(f=0),null==t&&(t=e.length);f>>1;r(e[c],a)<0?f=c+1:t=c}return f},right:function(e,a,f,t){for(null==f&&(f=0),null==t&&(t=e.length);f>>1;r(e[c],a)>0?t=c:f=c+1}return f}});const d=n.right;var i=Array.prototype;i.slice,i.map,Math.sqrt(50),Math.sqrt(10),Math.sqrt(2);function b(e){return null===e?NaN:+e}function o(e,a,f){if(null==f&&(f=b),t=e.length){if((a=+a)<=0||t<2)return+f(e[0],0,e);if(a>=1)return+f(e[t-1],t-1,e);var t,r=(t-1)*a,c=Math.floor(r),n=+f(e[c],c,e);return n+(+f(e[c+1],c+1,e)-n)*(r-c)}}function u(e,a,f){e=+e,a=+a,f=(r=arguments.length)<2?(a=e,e=0,1):r<3?1:+f;for(var t=-1,r=0|Math.max(0,Math.ceil((a-e)/f)),c=new Array(r);++t{f.d(a,{FT:()=>s});var t=f(685),r="$";function c(){}function n(e,a){var f=new c;if(e instanceof c)e.each((function(e,a){f.set(a,e)}));else if(Array.isArray(e)){var t,r=-1,n=e.length;if(null==a)for(;++r0?f[r-1]:e[0],r>8&15|a>>4&240,a>>4&15|240&a,(15&a)<<4|15&a,1):8===f?A(a>>24&255,a>>16&255,a>>8&255,(255&a)/255):4===f?A(a>>12&15|a>>8&240,a>>8&15|a>>4&240,a>>4&15|240&a,((15&a)<<4|15&a)/255):null):(a=M.exec(e))?new H(a[1],a[2],a[3],1):(a=x.exec(e))?new H(255*a[1]/100,255*a[2]/100,255*a[3]/100,1):(a=O.exec(e))?A(a[1],a[2],a[3],a[4]):(a=j.exec(e))?A(255*a[1]/100,255*a[2]/100,255*a[3]/100,a[4]):(a=E.exec(e))?z(a[1],a[2]/100,a[3]/100,1):(a=P.exec(e))?z(a[1],a[2]/100,a[3]/100,a[4]):q.hasOwnProperty(e)?$(q[e]):"transparent"===e?new H(NaN,NaN,NaN,0):null}function $(e){return new H(e>>16&255,e>>8&255,255&e,1)}function A(e,a,f,t){return t<=0&&(e=a=f=NaN),new H(e,a,f,t)}function C(e){return e instanceof g||(e=T(e)),e?new H((e=e.rgb()).r,e.g,e.b,e.opacity):new H}function H(e,a,f,t){this.r=+e,this.g=+a,this.b=+f,this.opacity=+t}function _(){return"#"+Z(this.r)+Z(this.g)+Z(this.b)}function D(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"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===e?")":", "+e+")")}function Z(e){return((e=Math.max(0,Math.min(255,Math.round(e)||0)))<16?"0":"")+e.toString(16)}function z(e,a,f,t){return t<=0?e=a=f=NaN:f<=0||f>=1?e=a=NaN:a<=0&&(e=NaN),new F(e,a,f,t)}function I(e){if(e instanceof F)return new F(e.h,e.s,e.l,e.opacity);if(e instanceof g||(e=T(e)),!e)return new F;if(e instanceof F)return e;var a=(e=e.rgb()).r/255,f=e.g/255,t=e.b/255,r=Math.min(a,f,t),c=Math.max(a,f,t),n=NaN,d=c-r,i=(c+r)/2;return d?(n=a===c?(f-t)/d+6*(f0&&i<1?0:n,new F(n,d,i,e.opacity)}function F(e,a,f,t){this.h=+e,this.s=+a,this.l=+f,this.opacity=+t}function V(e,a,f){return 255*(e<60?a+(f-a)*e/60:e<180?f:e<240?a+(f-a)*(240-e)/60:a)}h(g,T,{copy:function(e){return Object.assign(new this.constructor,this,e)},displayable:function(){return this.rgb().displayable()},hex:R,formatHex:R,formatHsl:function(){return I(this).formatHsl()},formatRgb:S,toString:S}),h(H,(function(e,a,f,t){return 1===arguments.length?C(e):new H(e,a,f,null==t?1:t)}),p(g,{brighter:function(e){return e=null==e?m:Math.pow(m,e),new H(this.r*e,this.g*e,this.b*e,this.opacity)},darker:function(e){return e=null==e?y:Math.pow(y,e),new H(this.r*e,this.g*e,this.b*e,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:_,formatHex:_,formatRgb:D,toString:D})),h(F,(function(e,a,f,t){return 1===arguments.length?I(e):new F(e,a,f,null==t?1:t)}),p(g,{brighter:function(e){return e=null==e?m:Math.pow(m,e),new F(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=null==e?y:Math.pow(y,e),new F(this.h,this.s,this.l*e,this.opacity)},rgb:function(){var e=this.h%360+360*(this.h<0),a=isNaN(e)||isNaN(this.s)?0:this.s,f=this.l,t=f+(f<.5?f:1-f)*a,r=2*f-t;return new H(V(e>=240?e-240:e+120,r,t),V(e,r,t),V(e<120?e+240:e-120,r,t),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 e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===e?")":", "+e+")")}}));var L=Math.PI/180,X=180/Math.PI,B=-.14861,G=1.78277,J=-.29227,K=-.90649,Q=1.97294,U=Q*K,W=Q*G,Y=G*J-K*B;function ee(e,a,f,t){return 1===arguments.length?function(e){if(e instanceof ae)return new ae(e.h,e.s,e.l,e.opacity);e instanceof H||(e=C(e));var a=e.r/255,f=e.g/255,t=e.b/255,r=(Y*t+U*a-W*f)/(Y+U-W),c=t-r,n=(Q*(f-r)-J*c)/K,d=Math.sqrt(n*n+c*c)/(Q*r*(1-r)),i=d?Math.atan2(n,c)*X-120:NaN;return new ae(i<0?i+360:i,d,r,e.opacity)}(e):new ae(e,a,f,null==t?1:t)}function ae(e,a,f,t){this.h=+e,this.s=+a,this.l=+f,this.opacity=+t}function fe(e){return function(){return e}}function te(e,a){return function(f){return e+f*a}}function re(e,a){var f=a-e;return f?te(e,f):fe(isNaN(e)?a:e)}function ce(e){return function a(f){function t(a,t){var r=e((a=ee(a)).h,(t=ee(t)).h),c=re(a.s,t.s),n=re(a.l,t.l),d=re(a.opacity,t.opacity);return function(e){return a.h=r(e),a.s=c(e),a.l=n(Math.pow(e,f)),a.opacity=d(e),a+""}}return f=+f,t.gamma=a,t}(1)}h(ae,ee,p(g,{brighter:function(e){return e=null==e?m:Math.pow(m,e),new ae(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=null==e?y:Math.pow(y,e),new ae(this.h,this.s,this.l*e,this.opacity)},rgb:function(){var e=isNaN(this.h)?0:(this.h+120)*L,a=+this.l,f=isNaN(this.s)?0:this.s*a*(1-a),t=Math.cos(e),r=Math.sin(e);return new H(255*(a+f*(B*t+G*r)),255*(a+f*(J*t+K*r)),255*(a+f*(Q*t)),this.opacity)}}));ce((function(e,a){var f=a-e;return f?te(e,f>180||f<-180?f-360*Math.round(f/360):f):fe(isNaN(e)?a:e)}));var ne=ce(re);ne(ee(300,.5,0),ee(-240,.5,1));ne(ee(-100,.75,.35),ee(80,1.5,.8)),ne(ee(260,.75,.35),ee(80,1.5,.8)),ee();function de(e){var a=e.length;return function(f){return e[Math.max(0,Math.min(a-1,Math.floor(f*a)))]}}de(l("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));de(l("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),de(l("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),de(l("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"))},745:(e,a,f)=>{var t=f(3935);t.createRoot,t.hydrateRoot},1202:(e,a,f)=>{f.d(a,{Z:()=>n});var t=f(1002);function r(e){var a=function(e,a){if("object"!==(0,t.Z)(e)||null===e)return e;var f=e[Symbol.toPrimitive];if(void 0!==f){var r=f.call(e,a||"default");if("object"!==(0,t.Z)(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===a?String:Number)(e)}(e,"string");return"symbol"===(0,t.Z)(a)?a:String(a)}function c(e,a){for(var f=0;f{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>s,metadata:()=>o,toc:()=>a});const o=JSON.parse('{"id":"api-reference/mapbox/fullscreen-control","title":"FullscreenControl","description":"React component that wraps mapbox-gl\'s FullscreenControl class.","source":"@site/../docs/api-reference/mapbox/fullscreen-control.md","sourceDirName":"api-reference/mapbox","slug":"/api-reference/mapbox/fullscreen-control","permalink":"/react-map-gl/docs/api-reference/mapbox/fullscreen-control","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/mapbox/fullscreen-control.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"AttributionControl","permalink":"/react-map-gl/docs/api-reference/mapbox/attribution-control"},"next":{"title":"GeolocateControl","permalink":"/react-map-gl/docs/api-reference/mapbox/geolocate-control"}}');var n=t(4848),l=t(8453);const s={},c="FullscreenControl",i={},a=[{value:"Properties",id:"properties",level:2},{value:"Reactive Properties",id:"reactive-properties",level:3},{value:"style: CSSProperties",id:"style",level:4},{value:"Other Properties",id:"other-properties",level:3},{value:"containerId: string",id:"containerid",level:4},{value:"position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'",id:"position",level:4},{value:"Source",id:"source",level:2}];function p(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",...(0,l.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"fullscreencontrol",children:"FullscreenControl"})}),"\n",(0,n.jsxs)(r.p,{children:["React component that wraps mapbox-gl's ",(0,n.jsx)(r.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/markers/#fullscreencontrol",children:"FullscreenControl"})," class."]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:"import * as React from 'react';\r\nimport Map, {FullscreenControl} from 'react-map-gl/mapbox';\r\nimport 'mapbox-gl/dist/mapbox-gl.css';\r\n\r\nfunction App() {\r\n return \"\r\n initialViewState={{\r\n longitude: -100,\r\n latitude: 40,\r\n zoom: 3.5\r\n }}\r\n mapStyle=\"mapbox://styles/mapbox/streets-v9\"\r\n >\r\n \r\n ;\r\n}\n"})}),"\n",(0,n.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsx)(r.h3,{id:"reactive-properties",children:"Reactive Properties"}),"\n",(0,n.jsxs)(r.h4,{id:"style",children:[(0,n.jsx)(r.code,{children:"style"}),": CSSProperties"]}),"\n",(0,n.jsx)(r.p,{children:"CSS style override that applies to the control's container."}),"\n",(0,n.jsx)(r.h3,{id:"other-properties",children:"Other Properties"}),"\n",(0,n.jsx)(r.p,{children:"The properties in this section are not reactive. They are only used when the component first mounts."}),"\n",(0,n.jsxs)(r.h4,{id:"containerid",children:[(0,n.jsx)(r.code,{children:"containerId"}),": string"]}),"\n",(0,n.jsx)(r.p,{children:"Id of the DOM element which should be made full screen. By default, the map container element will be made full screen."}),"\n",(0,n.jsxs)(r.h4,{id:"position",children:[(0,n.jsx)(r.code,{children:"position"}),": 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'"]}),"\n",(0,n.jsxs)(r.p,{children:["Default: ",(0,n.jsx)(r.code,{children:"'top-right'"})]}),"\n",(0,n.jsx)(r.p,{children:"Placement of the control relative to the map."}),"\n",(0,n.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:(0,n.jsx)(r.a,{href:"https://github.com/visgl/react-map-gl/tree/7.1-release/src/components/fullscreen-control.tsx",children:"fullscreen-control.ts"})})]})}function d(e={}){const{wrapper:r}={...(0,l.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(p,{...e})}):p(e)}},8453:(e,r,t)=>{t.d(r,{R:()=>s,x:()=>c});var o=t(6540);const n={},l=o.createContext(n);function s(e){const r=o.useContext(l);return o.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),o.createElement(l.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/339cc0f4.9d51fe55.js b/assets/js/339cc0f4.9d51fe55.js deleted file mode 100644 index e13f8798..00000000 --- a/assets/js/339cc0f4.9d51fe55.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[2203],{1353:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"examples"}')}}]); \ No newline at end of file diff --git a/assets/js/352ab42e.df7e8b86.js b/assets/js/352ab42e.df7e8b86.js deleted file mode 100644 index 5010c5d0..00000000 --- a/assets/js/352ab42e.df7e8b86.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[9984],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),s=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=s(r),m=n,f=c["".concat(u,".").concat(m)]||c[m]||d[m]||o;return r?a.createElement(f,l(l({ref:t},p),{},{components:r})):a.createElement(f,l({ref:t},p))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[c]="string"==typeof e?e:n,l[1]=i;for(var s=2;s{r.d(t,{Z:()=>l});var a=r(7294),n=r(6010);const o={tabItem:"tabItem_Ymn6"};function l(e){var t=e.children,r=e.hidden,l=e.className;return a.createElement("div",{role:"tabpanel",className:(0,n.Z)(o.tabItem,l),hidden:r},t)}},4866:(e,t,r)=>{r.d(t,{Z:()=>w});var a=r(7462),n=r(7294),o=r(6010),l=r(2466),i=r(6550),u=r(1980),s=r(7392),p=r(12);function c(e){return function(e){var t,r;return null!=(t=null==(r=n.Children.map(e,(function(e){if(!e||(0,n.isValidElement)(e)&&(t=e.props)&&"object"==typeof t&&"value"in t)return e;var t;throw new Error("Docusaurus error: Bad child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:r.filter(Boolean))?t:[]}(e).map((function(e){var t=e.props;return{value:t.value,label:t.label,attributes:t.attributes,default:t.default}}))}function d(e){var t=e.values,r=e.children;return(0,n.useMemo)((function(){var e=null!=t?t:c(r);return function(e){var t=(0,s.l)(e,(function(e,t){return e.value===t.value}));if(t.length>0)throw new Error('Docusaurus error: Duplicate values "'+t.map((function(e){return e.value})).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[t,r])}function m(e){var t=e.value;return e.tabValues.some((function(e){return e.value===t}))}function f(e){var t=e.queryString,r=void 0!==t&&t,a=e.groupId,o=(0,i.k6)(),l=function(e){var t=e.queryString,r=void 0!==t&&t,a=e.groupId;if("string"==typeof r)return r;if(!1===r)return null;if(!0===r&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=a?a:null}({queryString:r,groupId:a});return[(0,u._X)(l),(0,n.useCallback)((function(e){if(l){var t=new URLSearchParams(o.location.search);t.set(l,e),o.replace(Object.assign({},o.location,{search:t.toString()}))}}),[l,o])]}function y(e){var t,r,a,o,l=e.defaultValue,i=e.queryString,u=void 0!==i&&i,s=e.groupId,c=d(e),y=(0,n.useState)((function(){return function(e){var t,r=e.defaultValue,a=e.tabValues;if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(r){if(!m({value:r,tabValues:a}))throw new Error('Docusaurus error: The has a defaultValue "'+r+'" but none of its children has the corresponding value. Available values are: '+a.map((function(e){return e.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return r}var n=null!=(t=a.find((function(e){return e.default})))?t:a[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:l,tabValues:c})})),b=y[0],h=y[1],v=f({queryString:u,groupId:s}),g=v[0],k=v[1],w=(t=function(e){return e?"docusaurus.tab."+e:null}({groupId:s}.groupId),r=(0,p.Nk)(t),a=r[0],o=r[1],[a,(0,n.useCallback)((function(e){t&&o.set(e)}),[t,o])]),N=w[0],T=w[1],x=function(){var e=null!=g?g:N;return m({value:e,tabValues:c})?e:null}();return(0,n.useLayoutEffect)((function(){x&&h(x)}),[x]),{selectedValue:b,selectValue:(0,n.useCallback)((function(e){if(!m({value:e,tabValues:c}))throw new Error("Can't select invalid tab value="+e);h(e),k(e),T(e)}),[k,T,c]),tabValues:c}}var b=r(2389);const h={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function v(e){var t=e.className,r=e.block,i=e.selectedValue,u=e.selectValue,s=e.tabValues,p=[],c=(0,l.o5)().blockElementScrollPositionUntilNextRender,d=function(e){var t=e.currentTarget,r=p.indexOf(t),a=s[r].value;a!==i&&(c(t),u(a))},m=function(e){var t,r=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":var a,n=p.indexOf(e.currentTarget)+1;r=null!=(a=p[n])?a:p[0];break;case"ArrowLeft":var o,l=p.indexOf(e.currentTarget)-1;r=null!=(o=p[l])?o:p[p.length-1]}null==(t=r)||t.focus()};return n.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":r},t)},s.map((function(e){var t=e.value,r=e.label,l=e.attributes;return n.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:function(e){return p.push(e)},onKeyDown:m,onClick:d},l,{className:(0,o.Z)("tabs__item",h.tabItem,null==l?void 0:l.className,{"tabs__item--active":i===t})}),null!=r?r:t)})))}function g(e){var t=e.lazy,r=e.children,a=e.selectedValue,o=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){var l=o.find((function(e){return e.props.value===a}));return l?(0,n.cloneElement)(l,{className:"margin-top--md"}):null}return n.createElement("div",{className:"margin-top--md"},o.map((function(e,t){return(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==a})})))}function k(e){var t=y(e);return n.createElement("div",{className:(0,o.Z)("tabs-container",h.tabList)},n.createElement(v,(0,a.Z)({},e,t)),n.createElement(g,(0,a.Z)({},e,t)))}function w(e){var t=(0,b.Z)();return n.createElement(k,(0,a.Z)({key:String(t)},e))}},8908:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>p,default:()=>b,frontMatter:()=>s,metadata:()=>c,toc:()=>m});var a=r(7462),n=r(3366),o=(r(7294),r(3905)),l=r(4866),i=r(5162),u=["components"],s={},p="Layer",c={unversionedId:"api-reference/layer",id:"api-reference/layer",title:"Layer",description:"This component allows apps to create a map layer using React.",source:"@site/../docs/api-reference/layer.md",sourceDirName:"api-reference",slug:"/api-reference/layer",permalink:"/react-map-gl/docs/api-reference/layer",draft:!1,editUrl:"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/layer.md",tags:[],version:"current",frontMatter:{},sidebar:"docsSidebar",previous:{title:"GeolocateControl",permalink:"/react-map-gl/docs/api-reference/geolocate-control"},next:{title:"MapProvider",permalink:"/react-map-gl/docs/api-reference/map-provider"}},d={},m=[{value:"Properties",id:"properties",level:2},{value:"Identity Properties",id:"identity-properties",level:3},{value:"id: string",id:"id",level:4},{value:"type: string",id:"type",level:4},{value:"Options",id:"options",level:3},{value:"beforeId: string",id:"beforeid",level:4},{value:"source: string",id:"source",level:4},{value:"Source",id:"source",level:2}],f={toc:m},y="wrapper";function b(e){var t=e.components,r=(0,n.Z)(e,u);return(0,o.kt)(y,(0,a.Z)({},f,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"layer"},"Layer"),(0,o.kt)("p",null,"This component allows apps to create a ",(0,o.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/#layers"},"map layer")," using React."),(0,o.kt)(l.Z,{groupId:"map-library",mdxType:"Tabs"},(0,o.kt)(i.Z,{value:"mapbox",label:"Mapbox",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"import * as React from 'react';\nimport Map, {Layer} from 'react-map-gl';\nimport type {FillLayer} from 'react-map-gl';\n\nconst parkLayer: FillLayer = {\n id: 'landuse_park',\n type: 'fill',\n source: 'mapbox',\n 'source-layer': 'landuse',\n filter: ['==', 'class', 'park'],\n paint: {\n 'fill-color': '#4E3FC8'\n }\n};\n\nfunction App() {\n return \"\n initialViewState={{\n longitude: -122.4,\n latitude: 37.8,\n zoom: 14\n }}\n mapStyle=\"mapbox://styles/mapbox/streets-v9\"\n >\n \n ;\n}\n"))),(0,o.kt)(i.Z,{value:"maplibre",label:"Maplibre",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"import * as React from 'react';\nimport Map, {Layer} from 'react-map-gl/maplibre';\nimport type {FillLayer} from 'react-map-gl/maplibre';\n\nconst parkLayer: FillLayer = {\n id: 'landuse_park',\n type: 'fill',\n source: 'mapbox',\n 'source-layer': 'landuse',\n filter: ['==', 'class', 'park'],\n paint: {\n 'fill-color': '#4E3FC8'\n }\n};\n\nfunction App() {\n return \n \n ;\n}\n")))),(0,o.kt)("h2",{id:"properties"},"Properties"),(0,o.kt)("p",null,"The props provided to this component should be conforming to the ",(0,o.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/#layers"},"Mapbox layer specification"),"."),(0,o.kt)("p",null,"When props change ",(0,o.kt)("em",{parentName:"p"},"shallowly"),", the component will perform style diffing to update the layer. Avoid defining constant objects/arrays inline may help performance."),(0,o.kt)("h3",{id:"identity-properties"},"Identity Properties"),(0,o.kt)("p",null,"Once a ",(0,o.kt)("inlineCode",{parentName:"p"},"")," is mounted, the following props should not change. If you add/remove multiple JSX layers dynamically, make sure you use React's ",(0,o.kt)("a",{parentName:"p",href:"https://reactjs.org/docs/lists-and-keys.html#keys"},"key prop")," to give each element a stable identity."),(0,o.kt)("h4",{id:"id"},(0,o.kt)("inlineCode",{parentName:"h4"},"id"),": string"),(0,o.kt)("p",null,"Unique identifier of the layer. If not provided, a default id will be assigned."),(0,o.kt)("h4",{id:"type"},(0,o.kt)("inlineCode",{parentName:"h4"},"type"),": string"),(0,o.kt)("p",null,"Required. Type of the layer."),(0,o.kt)("h3",{id:"options"},"Options"),(0,o.kt)("h4",{id:"beforeid"},(0,o.kt)("inlineCode",{parentName:"h4"},"beforeId"),": string"),(0,o.kt)("p",null,"The ID of an existing layer to insert this layer before. If this prop is omitted, the layer will be appended to the end of the layers array. This is useful when using dynamic layers with a map style from a URL."),(0,o.kt)("p",null,"Note that layers are added by the order that they mount. They are ",(0,o.kt)("em",{parentName:"p"},"NOT")," reordered later if their relative positions in the JSX tree change. If dynamic reordering is desired, you should manipulate ",(0,o.kt)("inlineCode",{parentName:"p"},"beforeId")," for consistent behavior."),(0,o.kt)("h4",{id:"source"},(0,o.kt)("inlineCode",{parentName:"h4"},"source"),": string"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"source")," is required by some layer types in the Mapbox style specification. If ",(0,o.kt)("inlineCode",{parentName:"p"},"")," is used as the immediate child of a ",(0,o.kt)("a",{parentName:"p",href:"/react-map-gl/docs/api-reference/source"},"Source")," component, this prop will be overwritten by the id of the parent source. If the ",(0,o.kt)("inlineCode",{parentName:"p"},"")," component is not an immediate descendant of ",(0,o.kt)("inlineCode",{parentName:"p"},""),", e.g wrapped inside a helper component, source property needs to be provided same as the id of the ",(0,o.kt)("inlineCode",{parentName:"p"},"")," component for the ",(0,o.kt)("inlineCode",{parentName:"p"},"")," component to show."),(0,o.kt)("h2",{id:"source"},"Source"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/visgl/react-map-gl/tree/7.1-release/src/components/layer.ts"},"layer.ts")))}b.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3791760b.dd359a5c.js b/assets/js/3791760b.dd359a5c.js new file mode 100644 index 00000000..f6d46e4a --- /dev/null +++ b/assets/js/3791760b.dd359a5c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[6558],{6088:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>g,contentTitle:()=>h,default:()=>b,frontMatter:()=>f,metadata:()=>n,toc:()=>y});const n=JSON.parse('{"id":"maplibre/clusters","title":"Clusters","description":"","source":"@site/src/examples/maplibre/clusters.mdx","sourceDirName":"maplibre","slug":"/maplibre/clusters","permalink":"/react-map-gl/examples/maplibre/clusters","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"Zoom to Bounds","permalink":"/react-map-gl/examples/mapbox/zoom-to-bounds"},"next":{"title":"Markers, Popups and Controls","permalink":"/react-map-gl/examples/maplibre/controls"}}');var r=o(4848),s=o(8453),a=o(6540),i=(o(5338),o(5490));function l(){return(0,r.jsxs)("div",{className:"control-panel",children:[(0,r.jsx)("h3",{children:"Create and Style Clusters"}),(0,r.jsx)("p",{children:"Use Maplibre GL JS' built-in functions to visualize points as clusters."}),(0,r.jsx)("div",{className:"source-link",children:(0,r.jsx)("a",{href:"https://github.com/visgl/react-maplibre/tree/1.0-release/examples/clusters",target:"_new",children:"View Code \u2197"})})]})}const c=a.memo(l),u={id:"clusters",type:"circle",source:"earthquakes",filter:["has","point_count"],paint:{"circle-color":["step",["get","point_count"],"#51bbd6",100,"#f1f075",750,"#f28cb1"],"circle-radius":["step",["get","point_count"],20,100,30,750,40]}},p={id:"cluster-count",type:"symbol",source:"earthquakes",filter:["has","point_count"],layout:{"text-field":"{point_count_abbreviated}","text-size":12}},d={id:"unclustered-point",type:"circle",source:"earthquakes",filter:["!",["has","point_count"]],paint:{"circle-color":"#11b4da","circle-radius":4,"circle-stroke-width":1,"circle-stroke-color":"#fff"}};function m(){const e=(0,a.useRef)(null);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.T5,{initialViewState:{latitude:40.67,longitude:-103.59,zoom:3},mapStyle:"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json",interactiveLayerIds:[u.id],onClick:async t=>{const o=t.features[0];if(!o)return;const n=o.properties.cluster_id,r=e.current.getSource("earthquakes"),s=await r.getClusterExpansionZoom(n);e.current.easeTo({center:o.geometry.coordinates,zoom:s,duration:500})},ref:e,children:(0,r.jsxs)(i.kL,{id:"earthquakes",type:"geojson",data:"https://maplibre.org/maplibre-gl-js/docs/assets/earthquakes.geojson",cluster:!0,clusterMaxZoom:14,clusterRadius:50,children:[(0,r.jsx)(i.Wd,Object.assign({},u)),(0,r.jsx)(i.Wd,Object.assign({},p)),(0,r.jsx)(i.Wd,Object.assign({},d))]})}),(0,r.jsx)(c,{})]})}const f={},h="Clusters",g={},y=[];function v(e){const t={h1:"h1",header:"header",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"clusters",children:"Clusters"})}),"\n","\n",(0,r.jsx)(m,{})]})}function b(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(v,{...e})}):v(e)}},5490:(e,t,o)=>{o.d(t,{T3:()=>R,tG:()=>T,Wd:()=>B,T5:()=>L,pH:()=>w,ov:()=>I,zD:()=>P,g0:()=>D,kL:()=>q,jG:()=>N,Ay:()=>L,VI:()=>k});var n=o(6540),r=o(4848);const s=n.createContext(null);function a(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let o=0;o{let o=null;"interactive"in e&&(o=Object.assign({},e),delete o.interactive);const n=t[e.ref];if(n){o=o||Object.assign({},e),delete o.ref;for(const e of c)e in n&&(o[e]=n[e])}return o||e}));return Object.assign({},e,{layers:o})}const p={version:8,sources:{},layers:[]},d={mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",click:"onClick",dblclick:"onDblClick",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",mouseout:"onMouseOut",contextmenu:"onContextMenu",touchstart:"onTouchStart",touchend:"onTouchEnd",touchmove:"onTouchMove",touchcancel:"onTouchCancel"},m={movestart:"onMoveStart",move:"onMove",moveend:"onMoveEnd",dragstart:"onDragStart",drag:"onDrag",dragend:"onDragEnd",zoomstart:"onZoomStart",zoom:"onZoom",zoomend:"onZoomEnd",rotatestart:"onRotateStart",rotate:"onRotate",rotateend:"onRotateEnd",pitchstart:"onPitchStart",pitch:"onPitch",pitchend:"onPitchEnd"},f={wheel:"onWheel",boxzoomstart:"onBoxZoomStart",boxzoomend:"onBoxZoomEnd",boxzoomcancel:"onBoxZoomCancel",resize:"onResize",load:"onLoad",render:"onRender",idle:"onIdle",remove:"onRemove",data:"onData",styledata:"onStyleData",sourcedata:"onSourceData",error:"onError"},h=["minZoom","maxZoom","minPitch","maxPitch","maxBounds","projection","renderWorldCopies"],g=["scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate","touchPitch"];class y{constructor(e,t,o){this._map=null,this._internalUpdate=!1,this._hoveredFeatures=null,this._propsedCameraUpdate=null,this._styleComponents={},this._onEvent=e=>{const t=this.props[f[e.type]];t?t(e):"error"===e.type&&console.error(e.error)},this._onCameraEvent=e=>{if(this._internalUpdate)return;e.viewState=this._propsedCameraUpdate||i(this._map.transform);const t=this.props[m[e.type]];t&&t(e)},this._onCameraUpdate=e=>this._internalUpdate?e:(this._propsedCameraUpdate=i(e),l(e,this.props)),this._onPointerEvent=e=>{"mousemove"!==e.type&&"mouseout"!==e.type||this._updateHover(e);const t=this.props[d[e.type]];t&&(this.props.interactiveLayerIds&&"mouseover"!==e.type&&"mouseout"!==e.type&&(e.features=this._hoveredFeatures||this._queryRenderedFeatures(e.point)),t(e),delete e.features)},this._MapClass=e,this.props=t,this._initialize(o)}get map(){return this._map}setProps(e){const t=this.props;this.props=e;const o=this._updateSettings(e,t),n=this._updateSize(e),r=this._updateViewState(e);this._updateStyle(e,t),this._updateStyleComponents(e),this._updateHandlers(e,t),(o||n||r&&!this._map.isMoving())&&this.redraw()}static reuse(e,t){const o=y.savedMaps.pop();if(!o)return null;const n=o.map,r=n.getContainer();for(t.className=r.className;r.childNodes.length>0;)t.appendChild(r.childNodes[0]);n._container=t;const s=n._resizeObserver;s&&(s.disconnect(),s.observe(t)),o.setProps(Object.assign({},e,{styleDiffing:!1})),n.resize();const{initialViewState:a}=e;return a&&(a.bounds?n.fitBounds(a.bounds,Object.assign({},a.fitBoundsOptions,{duration:0})):o._updateViewState(a)),n.isStyleLoaded()?n.fire("load"):n.once("style.load",(()=>n.fire("load"))),n._update(),o}_initialize(e){const{props:t}=this,{mapStyle:o=p}=t,n=Object.assign({},t,t.initialViewState,{container:e,style:u(o)}),r=n.initialViewState||n.viewState||n;if(Object.assign(n,{center:[r.longitude||0,r.latitude||0],zoom:r.zoom||0,pitch:r.pitch||0,bearing:r.bearing||0}),t.gl){const e=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=e,t.gl)}const s=new this._MapClass(n);r.padding&&s.setPadding(r.padding),t.cursor&&(s.getCanvas().style.cursor=t.cursor),s.transformCameraUpdate=this._onCameraUpdate,s.on("style.load",(()=>{this._styleComponents={light:s.getLight(),sky:s.getSky(),projection:null==s.getProjection?void 0:s.getProjection(),terrain:s.getTerrain()},this._updateStyleComponents(this.props)})),s.on("sourcedata",(()=>{this._updateStyleComponents(this.props)}));for(const a in d)s.on(a,this._onPointerEvent);for(const a in m)s.on(a,this._onCameraEvent);for(const a in f)s.on(a,this._onEvent);this._map=s}recycle(){const e=this.map.getContainer().querySelector("[mapboxgl-children]");null==e||e.remove(),y.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){const e=this._map;e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())}_updateSize(e){const{viewState:t}=e;if(t){const e=this._map;if(t.width!==e.transform.width||t.height!==e.transform.height)return e.resize(),!0}return!1}_updateViewState(e){const t=this._map,o=t.transform;if(!t.isMoving()){const n=l(o,e);if(Object.keys(n).length>0)return this._internalUpdate=!0,t.jumpTo(n),this._internalUpdate=!1,!0}return!1}_updateSettings(e,t){const o=this._map;let n=!1;for(const r of h)if(r in e&&!a(e[r],t[r])){n=!0;const t=o["set"+r[0].toUpperCase()+r.slice(1)];null==t||t.call(o,e[r])}return n}_updateStyle(e,t){if(e.cursor!==t.cursor&&(this._map.getCanvas().style.cursor=e.cursor||""),e.mapStyle!==t.mapStyle){const{mapStyle:t=p,styleDiffing:o=!0}=e,n={diff:o};"localIdeographFontFamily"in e&&(n.localIdeographFontFamily=e.localIdeographFontFamily),this._map.setStyle(u(t),n)}}_updateStyleComponents(e){let{light:t,projection:o,sky:n,terrain:r}=e;const s=this._map,i=this._styleComponents;var l;s.style._loaded&&(t&&!a(t,i.light)&&(i.light=t,s.setLight(t)),o&&!a(o,i.projection)&&o!==(null==(l=i.projection)?void 0:l.type)&&(i.projection="string"==typeof o?{type:o}:o,null==s.setProjection||s.setProjection(i.projection)),n&&!a(n,i.sky)&&(i.sky=n,s.setSky(n)),void 0===r||a(r,i.terrain)||r&&!s.getSource(r.source)||(i.terrain=r,s.setTerrain(r)))}_updateHandlers(e,t){const o=this._map;for(const s of g){var n,r;const i=null==(n=e[s])||n;a(i,null==(r=t[s])||r)||(i?o[s].enable(i):o[s].disable())}}_queryRenderedFeatures(e){const t=this._map,{interactiveLayerIds:o=[]}=this.props;try{return t.queryRenderedFeatures(e,{layers:o.filter(t.getLayer.bind(t))})}catch(n){return[]}}_updateHover(e){const{props:t}=this;if(t.interactiveLayerIds&&(t.onMouseMove||t.onMouseEnter||t.onMouseLeave)){var o;const t=e.type,n=(null==(o=this._hoveredFeatures)?void 0:o.length)>0,r=this._queryRenderedFeatures(e.point),s=r.length>0;!s&&n&&(e.type="mouseleave",this._onPointerEvent(e)),this._hoveredFeatures=r,s&&!n&&(e.type="mouseenter",this._onPointerEvent(e)),e.type=t}else this._hoveredFeatures=null}}y.savedMaps=[];const v=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function b(e){if(!e)return null;const t=e.map,o={getMap:()=>t};for(const n of function(e){const t=new Set;let o=e;for(;o;){for(const n of Object.getOwnPropertyNames(o))"_"!==n[0]&&"function"==typeof e[n]&&"fire"!==n&&"setEventedParent"!==n&&t.add(n);o=Object.getPrototypeOf(o)}return Array.from(t)}(t))n in o||v.includes(n)||(o[n]=t[n].bind(t));return o}const _="undefined"!=typeof document?n.useLayoutEffect:n.useEffect;const x=n.createContext(null);function C(e,t){const a=(0,n.useContext)(s),[i,l]=(0,n.useState)(null),c=(0,n.useRef)(),{current:u}=(0,n.useRef)({mapLib:null,map:null});(0,n.useEffect)((()=>{const t=e.mapLib;let n,r=!0;return Promise.resolve(t||o.e(6443).then(o.t.bind(o,6443,23))).then((t=>{if(!r)return;if(!t)throw new Error("Invalid mapLib");const o="Map"in t?t:t.default;if(!o.Map)throw new Error("Invalid mapLib");if(function(e,t){const{RTLTextPlugin:o,maxParallelImageRequests:n,workerCount:r,workerUrl:s}=t;if(o&&e.getRTLTextPluginStatus&&"unavailable"===e.getRTLTextPluginStatus()){const{pluginUrl:t,lazy:n=!0}="string"==typeof o?{pluginUrl:o}:o;e.setRTLTextPlugin(t,(e=>{e&&console.error(e)}),n)}void 0!==n&&e.setMaxParallelImageRequests(n),void 0!==r&&e.setWorkerCount(r),void 0!==s&&e.setWorkerUrl(s)}(o,e),o.supported&&!o.supported(e))throw new Error("Map is not supported by this browser");e.reuseMaps&&(n=y.reuse(e,c.current)),n||(n=new y(o.Map,e,c.current)),u.map=b(n),u.mapLib=o,l(n),null==a||a.onMapMount(u.map,e.id)})).catch((t=>{const{onError:o}=e;o?o({type:"error",target:null,originalEvent:null,error:t}):console.error(t)})),()=>{r=!1,n&&(null==a||a.onMapUnmount(e.id),e.reuseMaps?n.recycle():n.destroy())}}),[]),_((()=>{i&&i.setProps(e)})),(0,n.useImperativeHandle)(t,(()=>u.map),[i]);const p=(0,n.useMemo)((()=>Object.assign({position:"relative",width:"100%",height:"100%"},e.style)),[e.style]);return(0,r.jsx)("div",{id:e.id,ref:c,style:p,children:i&&(0,r.jsx)(x.Provider,{value:u,children:(0,r.jsx)("div",{"mapboxgl-children":"",style:{height:"100%"},children:e.children})})})}const L=n.forwardRef(C);var S=o(961);const j=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function M(e,t){if(!e||!t)return;const o=e.style;for(const n in t){const e=t[n];Number.isFinite(e)&&!j.test(n)?o[n]=e+"px":o[n]=e}}const w=(0,n.memo)((0,n.forwardRef)(((e,t)=>{const{map:o,mapLib:r}=(0,n.useContext)(x),s=(0,n.useRef)({props:e});s.current.props=e;const a=(0,n.useMemo)((()=>{let t=!1;n.Children.forEach(e.children,(e=>{e&&(t=!0)}));const o=Object.assign({},e,{element:t?document.createElement("div"):null}),i=new r.Marker(o);return i.setLngLat([e.longitude,e.latitude]),i.getElement().addEventListener("click",(e=>{null==s.current.props.onClick||s.current.props.onClick({type:"click",target:i,originalEvent:e})})),i.on("dragstart",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDragStart||s.current.props.onDragStart(t)})),i.on("drag",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDrag||s.current.props.onDrag(t)})),i.on("dragend",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDragEnd||s.current.props.onDragEnd(t)})),i}),[]);(0,n.useEffect)((()=>(a.addTo(o.getMap()),()=>{a.remove()})),[]);const{longitude:i,latitude:l,offset:c,style:u,draggable:p=!1,popup:d=null,rotation:m=0,rotationAlignment:f="auto",pitchAlignment:h="auto"}=e;return(0,n.useEffect)((()=>{M(a.getElement(),u)}),[u]),(0,n.useImperativeHandle)(t,(()=>a),[]),a.getLngLat().lng===i&&a.getLngLat().lat===l||a.setLngLat([i,l]),c&&!function(e,t){const o=Array.isArray(e)?e[0]:e?e.x:0,n=Array.isArray(e)?e[1]:e?e.y:0,r=Array.isArray(t)?t[0]:t?t.x:0,s=Array.isArray(t)?t[1]:t?t.y:0;return o===r&&n===s}(a.getOffset(),c)&&a.setOffset(c),a.isDraggable()!==p&&a.setDraggable(p),a.getRotation()!==m&&a.setRotation(m),a.getRotationAlignment()!==f&&a.setRotationAlignment(f),a.getPitchAlignment()!==h&&a.setPitchAlignment(h),a.getPopup()!==d&&a.setPopup(d),(0,S.createPortal)(e.children,a.getElement())})));function E(e){return new Set(e?e.trim().split(/\s+/):[])}const P=(0,n.memo)((0,n.forwardRef)(((e,t)=>{const{map:o,mapLib:r}=(0,n.useContext)(x),s=(0,n.useMemo)((()=>document.createElement("div")),[]),i=(0,n.useRef)({props:e});i.current.props=e;const l=(0,n.useMemo)((()=>{const t=Object.assign({},e),o=new r.Popup(t);return o.setLngLat([e.longitude,e.latitude]),o.once("open",(e=>{null==i.current.props.onOpen||i.current.props.onOpen(e)})),o}),[]);if((0,n.useEffect)((()=>{const e=e=>{null==i.current.props.onClose||i.current.props.onClose(e)};return l.on("close",e),l.setDOMContent(s).addTo(o.getMap()),()=>{l.off("close",e),l.isOpen()&&l.remove()}}),[]),(0,n.useEffect)((()=>{M(l.getElement(),e.style)}),[e.style]),(0,n.useImperativeHandle)(t,(()=>l),[]),l.isOpen()&&(l.getLngLat().lng===e.longitude&&l.getLngLat().lat===e.latitude||l.setLngLat([e.longitude,e.latitude]),e.offset&&!a(l.options.offset,e.offset)&&l.setOffset(e.offset),l.options.anchor===e.anchor&&l.options.maxWidth===e.maxWidth||(l.options.anchor=e.anchor,l.setMaxWidth(e.maxWidth)),l.options.className!==e.className)){const t=E(l.options.className),o=E(e.className);for(const e of t)o.has(e)||l.removeClassName(e);for(const e of o)t.has(e)||l.addClassName(e);l.options.className=e.className}return(0,S.createPortal)(e.children,s)})));function k(e,t,o,r){const s=(0,n.useContext)(x),a=(0,n.useMemo)((()=>e(s)),[]);return(0,n.useEffect)((()=>{const e=r||o||t,n="function"==typeof t&&"function"==typeof o?t:null,i="function"==typeof o?o:"function"==typeof t?t:null,{map:l}=s;return l.hasControl(a)||(l.addControl(a,null==e?void 0:e.position),n&&n(s)),()=>{i&&i(s),l.hasControl(a)&&l.removeControl(a)}}),[]),a}function O(e){const t=k((t=>{let{mapLib:o}=t;return new o.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)})}),{position:e.position});return(0,n.useEffect)((()=>{M(t._controlContainer,e.style)}),[e.style]),null}const R=(0,n.memo)(O);function z(e,t){const o=(0,n.useRef)({props:e}),r=k((t=>{let{mapLib:n}=t;const r=new n.GeolocateControl(e),s=r._setupUI;return r._setupUI=()=>{r._container.hasChildNodes()||s()},r.on("geolocate",(e=>{null==o.current.props.onGeolocate||o.current.props.onGeolocate(e)})),r.on("error",(e=>{null==o.current.props.onError||o.current.props.onError(e)})),r.on("outofmaxbounds",(e=>{null==o.current.props.onOutOfMaxBounds||o.current.props.onOutOfMaxBounds(e)})),r.on("trackuserlocationstart",(e=>{null==o.current.props.onTrackUserLocationStart||o.current.props.onTrackUserLocationStart(e)})),r.on("trackuserlocationend",(e=>{null==o.current.props.onTrackUserLocationEnd||o.current.props.onTrackUserLocationEnd(e)})),r}),{position:e.position});return o.current.props=e,(0,n.useImperativeHandle)(t,(()=>r),[]),(0,n.useEffect)((()=>{M(r._container,e.style)}),[e.style]),null}const T=(0,n.memo)((0,n.forwardRef)(z));function U(e){const t=k((t=>{let{mapLib:o}=t;return new o.NavigationControl(e)}),{position:e.position});return(0,n.useEffect)((()=>{M(t._container,e.style)}),[e.style]),null}const I=(0,n.memo)(U);function A(e){const t=k((t=>{let{mapLib:o}=t;return new o.ScaleControl(e)}),{position:e.position}),o=(0,n.useRef)(e),r=o.current;o.current=e;const{style:s}=e;return void 0!==e.maxWidth&&e.maxWidth!==r.maxWidth&&(t.options.maxWidth=e.maxWidth),void 0!==e.unit&&e.unit!==r.unit&&t.setUnit(e.unit),(0,n.useEffect)((()=>{M(t._container,s)}),[s]),null}const D=(0,n.memo)(A);function F(e){const t=k((t=>{let{mapLib:o}=t;return new o.TerrainControl(e)}),{position:e.position});return(0,n.useEffect)((()=>{M(t._container,e.style)}),[e.style]),null}const N=(0,n.memo)(F);function W(e,t){if(!e)throw new Error(t)}let Z=0;function q(e){const t=(0,n.useContext)(x).map.getMap(),o=(0,n.useRef)(e),[,r]=(0,n.useState)(0),s=(0,n.useMemo)((()=>e.id||"jsx-source-"+Z++),[]);(0,n.useEffect)((()=>{if(t){const e=()=>setTimeout((()=>r((e=>e+1))),0);return t.on("styledata",e),e(),()=>{if(t.off("styledata",e),t.style&&t.style._loaded&&t.getSource(s)){var o;const e=null==(o=t.getStyle())?void 0:o.layers;if(e)for(const o of e)o.source===s&&t.removeLayer(o.id);t.removeSource(s)}}}}),[t]);let i=t&&t.style&&t.getSource(s);return i?function(e,t,o){W(t.id===o.id,"source id changed"),W(t.type===o.type,"source type changed");let n="",r=0;for(const i in t)"children"===i||"id"===i||a(o[i],t[i])||(n=i,r++);if(!r)return;const s=t.type;if("geojson"===s)e.setData(t.data);else if("image"===s)e.updateImage({url:t.url,coordinates:t.coordinates});else switch(n){case"coordinates":null==e.setCoordinates||e.setCoordinates(t.coordinates);break;case"url":null==e.setUrl||e.setUrl(t.url);break;case"tiles":null==e.setTiles||e.setTiles(t.tiles);break;default:console.warn("Unable to update prop: "+n)}}(i,e,o.current):i=function(e,t,o){if(e.style&&e.style._loaded){const n=Object.assign({},o);return delete n.id,delete n.children,e.addSource(t,n),e.getSource(t)}return null}(t,s,e),o.current=e,i&&n.Children.map(e.children,(e=>e&&(0,n.cloneElement)(e,{source:s})))||null}let H=0;function B(e){const t=(0,n.useContext)(x).map.getMap(),o=(0,n.useRef)(e),[,r]=(0,n.useState)(0),s=(0,n.useMemo)((()=>e.id||"jsx-layer-"+H++),[]);(0,n.useEffect)((()=>{if(t){const e=()=>r((e=>e+1));return t.on("styledata",e),e(),()=>{t.off("styledata",e),t.style&&t.style._loaded&&t.getLayer(s)&&t.removeLayer(s)}}}),[t]);if(t&&t.style&&t.getLayer(s))try{!function(e,t,o,n){if(W(o.id===n.id,"layer id changed"),W(o.type===n.type,"layer type changed"),"custom"===o.type||"custom"===n.type)return;const{layout:r={},paint:s={},filter:i,minzoom:l,maxzoom:c,beforeId:u}=o;if(u!==n.beforeId&&e.moveLayer(t,u),r!==n.layout){const o=n.layout||{};for(const n in r)a(r[n],o[n])||e.setLayoutProperty(t,n,r[n]);for(const n in o)r.hasOwnProperty(n)||e.setLayoutProperty(t,n,void 0)}if(s!==n.paint){const o=n.paint||{};for(const n in s)a(s[n],o[n])||e.setPaintProperty(t,n,s[n]);for(const n in o)s.hasOwnProperty(n)||e.setPaintProperty(t,n,void 0)}a(i,n.filter)||e.setFilter(t,i),l===n.minzoom&&c===n.maxzoom||e.setLayerZoomRange(t,l,c)}(t,s,e,o.current)}catch(i){console.warn(i)}else!function(e,t,o){if(e.style&&e.style._loaded&&(!("source"in o)||e.getSource(o.source))){const n=Object.assign({},o,{id:t});delete n.beforeId,e.addLayer(n,o.beforeId)}}(t,s,e);return o.current=e,null}},8453:(e,t,o)=>{o.d(t,{R:()=>a,x:()=>i});var n=o(6540);const r={},s=n.createContext(r);function a(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3897572f.db3858fd.js b/assets/js/3897572f.db3858fd.js new file mode 100644 index 00000000..3365018d --- /dev/null +++ b/assets/js/3897572f.db3858fd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[3886],{9285:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>n,toc:()=>a});const n=JSON.parse('{"id":"api-reference/maplibre/fullscreen-control","title":"FullscreenControl","description":"React component that wraps maplibre-gl\'s FullscreenControl class.","source":"@site/../docs/api-reference/maplibre/fullscreen-control.md","sourceDirName":"api-reference/maplibre","slug":"/api-reference/maplibre/fullscreen-control","permalink":"/react-map-gl/docs/api-reference/maplibre/fullscreen-control","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/maplibre/fullscreen-control.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"AttributionControl","permalink":"/react-map-gl/docs/api-reference/maplibre/attribution-control"},"next":{"title":"GeolocateControl","permalink":"/react-map-gl/docs/api-reference/maplibre/geolocate-control"}}');var o=t(4848),l=t(8453);const i={},s="FullscreenControl",c={},a=[{value:"Properties",id:"properties",level:2},{value:"Reactive Properties",id:"reactive-properties",level:3},{value:"style: CSSProperties",id:"style",level:4},{value:"Other Properties",id:"other-properties",level:3},{value:"containerId: string",id:"containerid",level:4},{value:"position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'",id:"position",level:4},{value:"Source",id:"source",level:2}];function p(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",...(0,l.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.header,{children:(0,o.jsx)(r.h1,{id:"fullscreencontrol",children:"FullscreenControl"})}),"\n",(0,o.jsxs)(r.p,{children:["React component that wraps maplibre-gl's ",(0,o.jsx)(r.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/FullscreenControl/",children:"FullscreenControl"})," class."]}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-tsx",children:"import * as React from 'react';\r\nimport {Map, FullscreenControl} from 'react-map-gl/maplibre';\r\nimport 'maplibre-gl/dist/maplibre-gl.css';\r\n\r\nfunction App() {\r\n return \r\n \r\n ;\r\n}\n"})}),"\n",(0,o.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,o.jsx)(r.h3,{id:"reactive-properties",children:"Reactive Properties"}),"\n",(0,o.jsxs)(r.h4,{id:"style",children:[(0,o.jsx)(r.code,{children:"style"}),": CSSProperties"]}),"\n",(0,o.jsx)(r.p,{children:"CSS style override that applies to the control's container."}),"\n",(0,o.jsx)(r.h3,{id:"other-properties",children:"Other Properties"}),"\n",(0,o.jsx)(r.p,{children:"The properties in this section are not reactive. They are only used when the component first mounts."}),"\n",(0,o.jsxs)(r.h4,{id:"containerid",children:[(0,o.jsx)(r.code,{children:"containerId"}),": string"]}),"\n",(0,o.jsx)(r.p,{children:"Id of the DOM element which should be made full screen. By default, the map container element will be made full screen."}),"\n",(0,o.jsxs)(r.h4,{id:"position",children:[(0,o.jsx)(r.code,{children:"position"}),": 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'"]}),"\n",(0,o.jsxs)(r.p,{children:["Default: ",(0,o.jsx)(r.code,{children:"'top-right'"})]}),"\n",(0,o.jsx)(r.p,{children:"Placement of the control relative to the map."}),"\n",(0,o.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(r.p,{children:(0,o.jsx)(r.a,{href:"https://github.com/visgl/react-map-gl/tree/master/modules/maplibre/src/components/fullscreen-control.ts",children:"fullscreen-control.ts"})})]})}function d(e={}){const{wrapper:r}={...(0,l.R)(),...e.components};return r?(0,o.jsx)(r,{...e,children:(0,o.jsx)(p,{...e})}):p(e)}},8453:(e,r,t)=>{t.d(r,{R:()=>i,x:()=>s});var n=t(6540);const o={},l=n.createContext(o);function i(e){const r=n.useContext(l);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function s(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),n.createElement(l.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/38b80d8b.ada5e399.js b/assets/js/38b80d8b.ada5e399.js new file mode 100644 index 00000000..5c2be3d9 --- /dev/null +++ b/assets/js/38b80d8b.ada5e399.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[2834],{6364:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>p,contentTitle:()=>c,default:()=>l,frontMatter:()=>s,metadata:()=>t,toc:()=>i});const t=JSON.parse('{"id":"api-reference/mapbox/use-map","title":"useMap","description":"The useMap hook allows a component to reference the Map that contains it.","source":"@site/../docs/api-reference/mapbox/use-map.md","sourceDirName":"api-reference/mapbox","slug":"/api-reference/mapbox/use-map","permalink":"/react-map-gl/docs/api-reference/mapbox/use-map","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/mapbox/use-map.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"useControl","permalink":"/react-map-gl/docs/api-reference/mapbox/use-control"},"next":{"title":"Types","permalink":"/react-map-gl/docs/api-reference/mapbox/types"}}');var a=r(4848),o=r(8453);const s={},c="useMap",p={},i=[{value:"Signature",id:"signature",level:2},{value:"Source",id:"source",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",...(0,o.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.header,{children:(0,a.jsx)(n.h1,{id:"usemap",children:"useMap"})}),"\n",(0,a.jsxs)(n.p,{children:["The ",(0,a.jsx)(n.code,{children:"useMap"})," hook allows a component to reference the ",(0,a.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/map",children:"Map"})," that contains it."]}),"\n",(0,a.jsxs)(n.p,{children:["When used with ",(0,a.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/map-provider",children:"MapProvider"}),", this hook can also reference maps that are rendered outside of the current map component's direct render tree."]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-tsx",children:"import {Map, useMap} from 'react-map-gl/mapbox';\n\nfunction Root() {\n return (\n \n \n \n );\n}\n\nfunction NavigateButton() {\n const {current: map} = useMap();\n\n const onClick = () => {\n map.flyTo({center: [-122.4, 37.8]});\n };\n\n return ;\n}\n"})}),"\n",(0,a.jsxs)(n.p,{children:["When used with the ",(0,a.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/map-provider",children:"MapProvider"}),", this hook can also reference maps that are rendered outside of the current component's direct render tree as long as both trees are part of the current ",(0,a.jsx)(n.code,{children:""}),"."]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-tsx",children:'import {MapProvider, Map, useMap} from \'react-map-gl/mapbox\';\n\nfunction Root() {\n // Note: `useMap` will not work in , only children of can use `useMap`\n\n return (\n \n \n \n \n \n );\n}\n\nfunction NavigateButton() {\n const {myMapA, myMapB} = useMap();\n\n const onClick = () => {\n myMapA.flyTo({center: [-122.4, 37.8]});\n myMapB.flyTo({center: [-74, 40.7]});\n };\n\n return ;\n}\n'})}),"\n",(0,a.jsxs)(n.p,{children:["See a full example ",(0,a.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/7.0-release/examples/get-started/hook",children:"here"}),"."]}),"\n",(0,a.jsx)(n.h2,{id:"signature",children:"Signature"}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsx)(n.code,{children:"useMap(): {current?: MapRef, [id: string]: MapRef}"})}),"\n",(0,a.jsxs)(n.p,{children:["The hook returns an object that contains all mounted maps under the closest ",(0,a.jsx)(n.code,{children:"MapProvider"}),". The keys are each map's ",(0,a.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/map#id",children:"id"})," and the values are the ",(0,a.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#mapref",children:"MapRef"}),"."]}),"\n",(0,a.jsxs)(n.p,{children:["If the hook is used inside a decendent of a ",(0,a.jsx)(n.code,{children:"Map"})," component, the returned object additionally contains a ",(0,a.jsx)(n.code,{children:"current"})," field that references the containing map."]}),"\n",(0,a.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/7.0-release/src/components/use-map.tsx",children:"use-map.tsx"})})]})}function l(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>s,x:()=>c});var t=r(6540);const a={},o=t.createContext(a);function s(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/38d649ee.9127bd6e.js b/assets/js/38d649ee.9127bd6e.js deleted file mode 100644 index 28353100..00000000 --- a/assets/js/38d649ee.9127bd6e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[4681],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>d});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function p(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var i=o.createContext({}),s=function(e){var t=o.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):p(p({},t),e)),n},c=function(e){var t=s(e.components);return o.createElement(i.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},f=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,i=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=s(n),f=r,d=m["".concat(i,".").concat(f)]||m[f]||u[f]||a;return n?o.createElement(d,p(p({ref:t},c),{},{components:n})):o.createElement(d,p({ref:t},c))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,p=new Array(a);p[0]=f;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[m]="string"==typeof e?e:r,p[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>s,toc:()=>m});var o=n(7462),r=n(3366),a=(n(7294),n(3905)),p=["components"],l={},i="useControl",s={unversionedId:"api-reference/use-control",id:"api-reference/use-control",title:"useControl",description:"The useControl hook is used to create React wrappers for custom map controls.",source:"@site/../docs/api-reference/use-control.md",sourceDirName:"api-reference",slug:"/api-reference/use-control",permalink:"/react-map-gl/docs/api-reference/use-control",draft:!1,editUrl:"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/use-control.md",tags:[],version:"current",frontMatter:{},sidebar:"docsSidebar",previous:{title:"Source",permalink:"/react-map-gl/docs/api-reference/source"},next:{title:"useMap",permalink:"/react-map-gl/docs/api-reference/use-map"}},c={},m=[{value:"Signature",id:"signature",level:2},{value:"Source",id:"source",level:2}],u={toc:m},f="wrapper";function d(e){var t=e.components,n=(0,r.Z)(e,p);return(0,a.kt)(f,(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"usecontrol"},"useControl"),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"useControl")," hook is used to create React wrappers for custom map controls."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-tsx"},"import MapboxDraw from '@mapbox/mapbox-gl-draw';\nimport Map, {useControl} from 'react-map-gl';\n\nfunction DrawControl(props: DrawControlProps) {\n useControl(() => new MapboxDraw(props), {\n position: props.position\n });\n\n return null;\n}\n\nfunction App() {\n return (\n \n \n \n );\n}\n")),(0,a.kt)("p",null,"See a full example ",(0,a.kt)("a",{parentName:"p",href:"/examples/draw-polygon"},"here"),"."),(0,a.kt)("h2",{id:"signature"},"Signature"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-js"},"useControl(\n onCreate: ({map: MapRef, mapLib: mapboxgl}) => IControl,\n options?: {\n position?: ControlPosition;\n }\n): T\n\nuseControl(\n onCreate: ({map: MapRef, mapLib: mapboxgl}) => IControl,\n onRemove: ({map: MapRef, mapLib: mapboxgl}) => void,\n options?: {\n position?: ControlPosition;\n }\n): T\n\nuseControl(\n onCreate: ({map: MapRef, mapLib: mapboxgl}) => IControl,\n onAdd: ({map: MapRef, mapLib: mapboxgl}) => void,\n onRemove: ({map: MapRef, mapLib: mapboxgl}) => void,\n options?: {\n position?: ControlPosition;\n }\n): T\n")),(0,a.kt)("p",null,"The hook creates an ",(0,a.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/api/markers/#icontrol"},"IControl")," instance, adds it to the map when it's available, and removes it upon unmount."),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"onCreate"),": ({map: MapRef, mapLib: mapboxgl}) => ",(0,a.kt)("a",{parentName:"li",href:"/react-map-gl/docs/api-reference/types#icontrol"},"IControl")," - called to create an instance of the control."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"onAdd"),": ({map: MapRef, mapLib: mapboxgl}) => void - called when the control has been added to the map."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"onRemove"),": ({map: MapRef, mapLib: mapboxgl}) => void - called when the control is about to be removed from the map."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"options"),": object",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"position"),": 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' - control position relative to the map")))),(0,a.kt)("p",null,"Returns:"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"/react-map-gl/docs/api-reference/types#icontrol"},"IControl")," - the control instance from ",(0,a.kt)("inlineCode",{parentName:"p"},"onCreate"),"."),(0,a.kt)("h2",{id:"source"},"Source"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://github.com/visgl/react-map-gl/tree/7.1-release/src/components/use-control.ts"},"use-control.ts")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/39a77820.3089b34b.js b/assets/js/39a77820.3089b34b.js new file mode 100644 index 00000000..c0da8d8d --- /dev/null +++ b/assets/js/39a77820.3089b34b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[9096],{5817:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>b,contentTitle:()=>v,default:()=>C,frontMatter:()=>y,metadata:()=>o,toc:()=>x});const o=JSON.parse('{"id":"maplibre/draggable-markers","title":"Draggable Marker","description":"","source":"@site/src/examples/maplibre/draggable-markers.mdx","sourceDirName":"maplibre","slug":"/maplibre/draggable-markers","permalink":"/react-map-gl/examples/maplibre/draggable-markers","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"Custom Cursor","permalink":"/react-map-gl/examples/maplibre/custom-cursor"},"next":{"title":"Draw Polygon","permalink":"/react-map-gl/examples/maplibre/draw-polygon"}}');var r=n(4848),s=n(8453),a=n(6540),i=(n(5338),n(5490));const l=["onDragStart","onDrag","onDragEnd"];function c(e){return(Math.round(1e5*e)/1e5).toFixed(5)}function u(e){return(0,r.jsxs)("div",{className:"control-panel",children:[(0,r.jsx)("h3",{children:"Draggable Marker"}),(0,r.jsx)("p",{children:"Try dragging the marker to another location."}),(0,r.jsx)("div",{children:l.map((t=>{const{events:n={}}=e,o=n[t];return(0,r.jsxs)("div",{children:[(0,r.jsxs)("strong",{children:[t,":"]})," ",o?c(o.lng)+", "+c(o.lat):(0,r.jsx)("em",{children:"null"})]},t)}))}),(0,r.jsx)("div",{className:"source-link",children:(0,r.jsx)("a",{href:"https://github.com/visgl/react-maplibre/tree/1.0-release/examples/draggable-markers",target:"_new",children:"View Code \u2197"})})]})}const p=a.memo(u),d={fill:"#d00",stroke:"none"};function m(e){const{size:t=20}=e;return(0,r.jsx)("svg",{height:t,viewBox:"0 0 24 24",style:d,children:(0,r.jsx)("path",{d:"M20.2,15.7L20.2,15.7c1.1-1.6,1.8-3.6,1.8-5.7c0-5.6-4.5-10-10-10S2,4.5,2,10c0,2,0.6,3.9,1.6,5.4c0,0.1,0.1,0.2,0.2,0.3\n c0,0,0.1,0.1,0.1,0.2c0.2,0.3,0.4,0.6,0.7,0.9c2.6,3.1,7.4,7.6,7.4,7.6s4.8-4.5,7.4-7.5c0.2-0.3,0.5-0.6,0.7-0.9\n C20.1,15.8,20.2,15.8,20.2,15.7z"})})}const g=a.memo(m),f={latitude:40,longitude:-100,zoom:3.5};function h(){const[e,t]=(0,a.useState)({latitude:40,longitude:-100}),[n,o]=(0,a.useState)({}),s=(0,a.useCallback)((e=>{o((t=>Object.assign({},t,{onDragStart:e.lngLat})))}),[]),l=(0,a.useCallback)((e=>{o((t=>Object.assign({},t,{onDrag:e.lngLat}))),t({longitude:e.lngLat.lng,latitude:e.lngLat.lat})}),[]),c=(0,a.useCallback)((e=>{o((t=>Object.assign({},t,{onDragEnd:e.lngLat})))}),[]);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(i.T5,{initialViewState:f,mapStyle:"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json",children:[(0,r.jsx)(i.pH,{longitude:e.longitude,latitude:e.latitude,anchor:"bottom",draggable:!0,onDragStart:s,onDrag:l,onDragEnd:c,children:(0,r.jsx)(g,{size:20})}),(0,r.jsx)(i.ov,{position:"top-left"})]}),(0,r.jsx)(p,{events:n})]})}const y={},v="Draggable Marker",b={},x=[];function _(e){const t={h1:"h1",header:"header",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"draggable-marker",children:"Draggable Marker"})}),"\n","\n",(0,r.jsx)(h,{})]})}function C(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(_,{...e})}):_(e)}},5490:(e,t,n)=>{n.d(t,{T3:()=>R,tG:()=>D,Wd:()=>V,T5:()=>L,pH:()=>E,ov:()=>U,zD:()=>k,g0:()=>F,kL:()=>H,jG:()=>N,Ay:()=>L,VI:()=>P});var o=n(6540),r=n(4848);const s=o.createContext(null);function a(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n{let n=null;"interactive"in e&&(n=Object.assign({},e),delete n.interactive);const o=t[e.ref];if(o){n=n||Object.assign({},e),delete n.ref;for(const e of c)e in o&&(n[e]=o[e])}return n||e}));return Object.assign({},e,{layers:n})}const p={version:8,sources:{},layers:[]},d={mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",click:"onClick",dblclick:"onDblClick",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",mouseout:"onMouseOut",contextmenu:"onContextMenu",touchstart:"onTouchStart",touchend:"onTouchEnd",touchmove:"onTouchMove",touchcancel:"onTouchCancel"},m={movestart:"onMoveStart",move:"onMove",moveend:"onMoveEnd",dragstart:"onDragStart",drag:"onDrag",dragend:"onDragEnd",zoomstart:"onZoomStart",zoom:"onZoom",zoomend:"onZoomEnd",rotatestart:"onRotateStart",rotate:"onRotate",rotateend:"onRotateEnd",pitchstart:"onPitchStart",pitch:"onPitch",pitchend:"onPitchEnd"},g={wheel:"onWheel",boxzoomstart:"onBoxZoomStart",boxzoomend:"onBoxZoomEnd",boxzoomcancel:"onBoxZoomCancel",resize:"onResize",load:"onLoad",render:"onRender",idle:"onIdle",remove:"onRemove",data:"onData",styledata:"onStyleData",sourcedata:"onSourceData",error:"onError"},f=["minZoom","maxZoom","minPitch","maxPitch","maxBounds","projection","renderWorldCopies"],h=["scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate","touchPitch"];class y{constructor(e,t,n){this._map=null,this._internalUpdate=!1,this._hoveredFeatures=null,this._propsedCameraUpdate=null,this._styleComponents={},this._onEvent=e=>{const t=this.props[g[e.type]];t?t(e):"error"===e.type&&console.error(e.error)},this._onCameraEvent=e=>{if(this._internalUpdate)return;e.viewState=this._propsedCameraUpdate||i(this._map.transform);const t=this.props[m[e.type]];t&&t(e)},this._onCameraUpdate=e=>this._internalUpdate?e:(this._propsedCameraUpdate=i(e),l(e,this.props)),this._onPointerEvent=e=>{"mousemove"!==e.type&&"mouseout"!==e.type||this._updateHover(e);const t=this.props[d[e.type]];t&&(this.props.interactiveLayerIds&&"mouseover"!==e.type&&"mouseout"!==e.type&&(e.features=this._hoveredFeatures||this._queryRenderedFeatures(e.point)),t(e),delete e.features)},this._MapClass=e,this.props=t,this._initialize(n)}get map(){return this._map}setProps(e){const t=this.props;this.props=e;const n=this._updateSettings(e,t),o=this._updateSize(e),r=this._updateViewState(e);this._updateStyle(e,t),this._updateStyleComponents(e),this._updateHandlers(e,t),(n||o||r&&!this._map.isMoving())&&this.redraw()}static reuse(e,t){const n=y.savedMaps.pop();if(!n)return null;const o=n.map,r=o.getContainer();for(t.className=r.className;r.childNodes.length>0;)t.appendChild(r.childNodes[0]);o._container=t;const s=o._resizeObserver;s&&(s.disconnect(),s.observe(t)),n.setProps(Object.assign({},e,{styleDiffing:!1})),o.resize();const{initialViewState:a}=e;return a&&(a.bounds?o.fitBounds(a.bounds,Object.assign({},a.fitBoundsOptions,{duration:0})):n._updateViewState(a)),o.isStyleLoaded()?o.fire("load"):o.once("style.load",(()=>o.fire("load"))),o._update(),n}_initialize(e){const{props:t}=this,{mapStyle:n=p}=t,o=Object.assign({},t,t.initialViewState,{container:e,style:u(n)}),r=o.initialViewState||o.viewState||o;if(Object.assign(o,{center:[r.longitude||0,r.latitude||0],zoom:r.zoom||0,pitch:r.pitch||0,bearing:r.bearing||0}),t.gl){const e=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=e,t.gl)}const s=new this._MapClass(o);r.padding&&s.setPadding(r.padding),t.cursor&&(s.getCanvas().style.cursor=t.cursor),s.transformCameraUpdate=this._onCameraUpdate,s.on("style.load",(()=>{this._styleComponents={light:s.getLight(),sky:s.getSky(),projection:null==s.getProjection?void 0:s.getProjection(),terrain:s.getTerrain()},this._updateStyleComponents(this.props)})),s.on("sourcedata",(()=>{this._updateStyleComponents(this.props)}));for(const a in d)s.on(a,this._onPointerEvent);for(const a in m)s.on(a,this._onCameraEvent);for(const a in g)s.on(a,this._onEvent);this._map=s}recycle(){const e=this.map.getContainer().querySelector("[mapboxgl-children]");null==e||e.remove(),y.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){const e=this._map;e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())}_updateSize(e){const{viewState:t}=e;if(t){const e=this._map;if(t.width!==e.transform.width||t.height!==e.transform.height)return e.resize(),!0}return!1}_updateViewState(e){const t=this._map,n=t.transform;if(!t.isMoving()){const o=l(n,e);if(Object.keys(o).length>0)return this._internalUpdate=!0,t.jumpTo(o),this._internalUpdate=!1,!0}return!1}_updateSettings(e,t){const n=this._map;let o=!1;for(const r of f)if(r in e&&!a(e[r],t[r])){o=!0;const t=n["set"+r[0].toUpperCase()+r.slice(1)];null==t||t.call(n,e[r])}return o}_updateStyle(e,t){if(e.cursor!==t.cursor&&(this._map.getCanvas().style.cursor=e.cursor||""),e.mapStyle!==t.mapStyle){const{mapStyle:t=p,styleDiffing:n=!0}=e,o={diff:n};"localIdeographFontFamily"in e&&(o.localIdeographFontFamily=e.localIdeographFontFamily),this._map.setStyle(u(t),o)}}_updateStyleComponents(e){let{light:t,projection:n,sky:o,terrain:r}=e;const s=this._map,i=this._styleComponents;var l;s.style._loaded&&(t&&!a(t,i.light)&&(i.light=t,s.setLight(t)),n&&!a(n,i.projection)&&n!==(null==(l=i.projection)?void 0:l.type)&&(i.projection="string"==typeof n?{type:n}:n,null==s.setProjection||s.setProjection(i.projection)),o&&!a(o,i.sky)&&(i.sky=o,s.setSky(o)),void 0===r||a(r,i.terrain)||r&&!s.getSource(r.source)||(i.terrain=r,s.setTerrain(r)))}_updateHandlers(e,t){const n=this._map;for(const s of h){var o,r;const i=null==(o=e[s])||o;a(i,null==(r=t[s])||r)||(i?n[s].enable(i):n[s].disable())}}_queryRenderedFeatures(e){const t=this._map,{interactiveLayerIds:n=[]}=this.props;try{return t.queryRenderedFeatures(e,{layers:n.filter(t.getLayer.bind(t))})}catch(o){return[]}}_updateHover(e){const{props:t}=this;if(t.interactiveLayerIds&&(t.onMouseMove||t.onMouseEnter||t.onMouseLeave)){var n;const t=e.type,o=(null==(n=this._hoveredFeatures)?void 0:n.length)>0,r=this._queryRenderedFeatures(e.point),s=r.length>0;!s&&o&&(e.type="mouseleave",this._onPointerEvent(e)),this._hoveredFeatures=r,s&&!o&&(e.type="mouseenter",this._onPointerEvent(e)),e.type=t}else this._hoveredFeatures=null}}y.savedMaps=[];const v=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function b(e){if(!e)return null;const t=e.map,n={getMap:()=>t};for(const o of function(e){const t=new Set;let n=e;for(;n;){for(const o of Object.getOwnPropertyNames(n))"_"!==o[0]&&"function"==typeof e[o]&&"fire"!==o&&"setEventedParent"!==o&&t.add(o);n=Object.getPrototypeOf(n)}return Array.from(t)}(t))o in n||v.includes(o)||(n[o]=t[o].bind(t));return n}const x="undefined"!=typeof document?o.useLayoutEffect:o.useEffect;const _=o.createContext(null);function C(e,t){const a=(0,o.useContext)(s),[i,l]=(0,o.useState)(null),c=(0,o.useRef)(),{current:u}=(0,o.useRef)({mapLib:null,map:null});(0,o.useEffect)((()=>{const t=e.mapLib;let o,r=!0;return Promise.resolve(t||n.e(6443).then(n.t.bind(n,6443,23))).then((t=>{if(!r)return;if(!t)throw new Error("Invalid mapLib");const n="Map"in t?t:t.default;if(!n.Map)throw new Error("Invalid mapLib");if(function(e,t){const{RTLTextPlugin:n,maxParallelImageRequests:o,workerCount:r,workerUrl:s}=t;if(n&&e.getRTLTextPluginStatus&&"unavailable"===e.getRTLTextPluginStatus()){const{pluginUrl:t,lazy:o=!0}="string"==typeof n?{pluginUrl:n}:n;e.setRTLTextPlugin(t,(e=>{e&&console.error(e)}),o)}void 0!==o&&e.setMaxParallelImageRequests(o),void 0!==r&&e.setWorkerCount(r),void 0!==s&&e.setWorkerUrl(s)}(n,e),n.supported&&!n.supported(e))throw new Error("Map is not supported by this browser");e.reuseMaps&&(o=y.reuse(e,c.current)),o||(o=new y(n.Map,e,c.current)),u.map=b(o),u.mapLib=n,l(o),null==a||a.onMapMount(u.map,e.id)})).catch((t=>{const{onError:n}=e;n?n({type:"error",target:null,originalEvent:null,error:t}):console.error(t)})),()=>{r=!1,o&&(null==a||a.onMapUnmount(e.id),e.reuseMaps?o.recycle():o.destroy())}}),[]),x((()=>{i&&i.setProps(e)})),(0,o.useImperativeHandle)(t,(()=>u.map),[i]);const p=(0,o.useMemo)((()=>Object.assign({position:"relative",width:"100%",height:"100%"},e.style)),[e.style]);return(0,r.jsx)("div",{id:e.id,ref:c,style:p,children:i&&(0,r.jsx)(_.Provider,{value:u,children:(0,r.jsx)("div",{"mapboxgl-children":"",style:{height:"100%"},children:e.children})})})}const L=o.forwardRef(C);var S=n(961);const j=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function M(e,t){if(!e||!t)return;const n=e.style;for(const o in t){const e=t[o];Number.isFinite(e)&&!j.test(o)?n[o]=e+"px":n[o]=e}}const E=(0,o.memo)((0,o.forwardRef)(((e,t)=>{const{map:n,mapLib:r}=(0,o.useContext)(_),s=(0,o.useRef)({props:e});s.current.props=e;const a=(0,o.useMemo)((()=>{let t=!1;o.Children.forEach(e.children,(e=>{e&&(t=!0)}));const n=Object.assign({},e,{element:t?document.createElement("div"):null}),i=new r.Marker(n);return i.setLngLat([e.longitude,e.latitude]),i.getElement().addEventListener("click",(e=>{null==s.current.props.onClick||s.current.props.onClick({type:"click",target:i,originalEvent:e})})),i.on("dragstart",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDragStart||s.current.props.onDragStart(t)})),i.on("drag",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDrag||s.current.props.onDrag(t)})),i.on("dragend",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDragEnd||s.current.props.onDragEnd(t)})),i}),[]);(0,o.useEffect)((()=>(a.addTo(n.getMap()),()=>{a.remove()})),[]);const{longitude:i,latitude:l,offset:c,style:u,draggable:p=!1,popup:d=null,rotation:m=0,rotationAlignment:g="auto",pitchAlignment:f="auto"}=e;return(0,o.useEffect)((()=>{M(a.getElement(),u)}),[u]),(0,o.useImperativeHandle)(t,(()=>a),[]),a.getLngLat().lng===i&&a.getLngLat().lat===l||a.setLngLat([i,l]),c&&!function(e,t){const n=Array.isArray(e)?e[0]:e?e.x:0,o=Array.isArray(e)?e[1]:e?e.y:0,r=Array.isArray(t)?t[0]:t?t.x:0,s=Array.isArray(t)?t[1]:t?t.y:0;return n===r&&o===s}(a.getOffset(),c)&&a.setOffset(c),a.isDraggable()!==p&&a.setDraggable(p),a.getRotation()!==m&&a.setRotation(m),a.getRotationAlignment()!==g&&a.setRotationAlignment(g),a.getPitchAlignment()!==f&&a.setPitchAlignment(f),a.getPopup()!==d&&a.setPopup(d),(0,S.createPortal)(e.children,a.getElement())})));function w(e){return new Set(e?e.trim().split(/\s+/):[])}const k=(0,o.memo)((0,o.forwardRef)(((e,t)=>{const{map:n,mapLib:r}=(0,o.useContext)(_),s=(0,o.useMemo)((()=>document.createElement("div")),[]),i=(0,o.useRef)({props:e});i.current.props=e;const l=(0,o.useMemo)((()=>{const t=Object.assign({},e),n=new r.Popup(t);return n.setLngLat([e.longitude,e.latitude]),n.once("open",(e=>{null==i.current.props.onOpen||i.current.props.onOpen(e)})),n}),[]);if((0,o.useEffect)((()=>{const e=e=>{null==i.current.props.onClose||i.current.props.onClose(e)};return l.on("close",e),l.setDOMContent(s).addTo(n.getMap()),()=>{l.off("close",e),l.isOpen()&&l.remove()}}),[]),(0,o.useEffect)((()=>{M(l.getElement(),e.style)}),[e.style]),(0,o.useImperativeHandle)(t,(()=>l),[]),l.isOpen()&&(l.getLngLat().lng===e.longitude&&l.getLngLat().lat===e.latitude||l.setLngLat([e.longitude,e.latitude]),e.offset&&!a(l.options.offset,e.offset)&&l.setOffset(e.offset),l.options.anchor===e.anchor&&l.options.maxWidth===e.maxWidth||(l.options.anchor=e.anchor,l.setMaxWidth(e.maxWidth)),l.options.className!==e.className)){const t=w(l.options.className),n=w(e.className);for(const e of t)n.has(e)||l.removeClassName(e);for(const e of n)t.has(e)||l.addClassName(e);l.options.className=e.className}return(0,S.createPortal)(e.children,s)})));function P(e,t,n,r){const s=(0,o.useContext)(_),a=(0,o.useMemo)((()=>e(s)),[]);return(0,o.useEffect)((()=>{const e=r||n||t,o="function"==typeof t&&"function"==typeof n?t:null,i="function"==typeof n?n:"function"==typeof t?t:null,{map:l}=s;return l.hasControl(a)||(l.addControl(a,null==e?void 0:e.position),o&&o(s)),()=>{i&&i(s),l.hasControl(a)&&l.removeControl(a)}}),[]),a}function O(e){const t=P((t=>{let{mapLib:n}=t;return new n.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)})}),{position:e.position});return(0,o.useEffect)((()=>{M(t._controlContainer,e.style)}),[e.style]),null}const R=(0,o.memo)(O);function z(e,t){const n=(0,o.useRef)({props:e}),r=P((t=>{let{mapLib:o}=t;const r=new o.GeolocateControl(e),s=r._setupUI;return r._setupUI=()=>{r._container.hasChildNodes()||s()},r.on("geolocate",(e=>{null==n.current.props.onGeolocate||n.current.props.onGeolocate(e)})),r.on("error",(e=>{null==n.current.props.onError||n.current.props.onError(e)})),r.on("outofmaxbounds",(e=>{null==n.current.props.onOutOfMaxBounds||n.current.props.onOutOfMaxBounds(e)})),r.on("trackuserlocationstart",(e=>{null==n.current.props.onTrackUserLocationStart||n.current.props.onTrackUserLocationStart(e)})),r.on("trackuserlocationend",(e=>{null==n.current.props.onTrackUserLocationEnd||n.current.props.onTrackUserLocationEnd(e)})),r}),{position:e.position});return n.current.props=e,(0,o.useImperativeHandle)(t,(()=>r),[]),(0,o.useEffect)((()=>{M(r._container,e.style)}),[e.style]),null}const D=(0,o.memo)((0,o.forwardRef)(z));function T(e){const t=P((t=>{let{mapLib:n}=t;return new n.NavigationControl(e)}),{position:e.position});return(0,o.useEffect)((()=>{M(t._container,e.style)}),[e.style]),null}const U=(0,o.memo)(T);function I(e){const t=P((t=>{let{mapLib:n}=t;return new n.ScaleControl(e)}),{position:e.position}),n=(0,o.useRef)(e),r=n.current;n.current=e;const{style:s}=e;return void 0!==e.maxWidth&&e.maxWidth!==r.maxWidth&&(t.options.maxWidth=e.maxWidth),void 0!==e.unit&&e.unit!==r.unit&&t.setUnit(e.unit),(0,o.useEffect)((()=>{M(t._container,s)}),[s]),null}const F=(0,o.memo)(I);function A(e){const t=P((t=>{let{mapLib:n}=t;return new n.TerrainControl(e)}),{position:e.position});return(0,o.useEffect)((()=>{M(t._container,e.style)}),[e.style]),null}const N=(0,o.memo)(A);function W(e,t){if(!e)throw new Error(t)}let Z=0;function H(e){const t=(0,o.useContext)(_).map.getMap(),n=(0,o.useRef)(e),[,r]=(0,o.useState)(0),s=(0,o.useMemo)((()=>e.id||"jsx-source-"+Z++),[]);(0,o.useEffect)((()=>{if(t){const e=()=>setTimeout((()=>r((e=>e+1))),0);return t.on("styledata",e),e(),()=>{if(t.off("styledata",e),t.style&&t.style._loaded&&t.getSource(s)){var n;const e=null==(n=t.getStyle())?void 0:n.layers;if(e)for(const n of e)n.source===s&&t.removeLayer(n.id);t.removeSource(s)}}}}),[t]);let i=t&&t.style&&t.getSource(s);return i?function(e,t,n){W(t.id===n.id,"source id changed"),W(t.type===n.type,"source type changed");let o="",r=0;for(const i in t)"children"===i||"id"===i||a(n[i],t[i])||(o=i,r++);if(!r)return;const s=t.type;if("geojson"===s)e.setData(t.data);else if("image"===s)e.updateImage({url:t.url,coordinates:t.coordinates});else switch(o){case"coordinates":null==e.setCoordinates||e.setCoordinates(t.coordinates);break;case"url":null==e.setUrl||e.setUrl(t.url);break;case"tiles":null==e.setTiles||e.setTiles(t.tiles);break;default:console.warn("Unable to update prop: "+o)}}(i,e,n.current):i=function(e,t,n){if(e.style&&e.style._loaded){const o=Object.assign({},n);return delete o.id,delete o.children,e.addSource(t,o),e.getSource(t)}return null}(t,s,e),n.current=e,i&&o.Children.map(e.children,(e=>e&&(0,o.cloneElement)(e,{source:s})))||null}let B=0;function V(e){const t=(0,o.useContext)(_).map.getMap(),n=(0,o.useRef)(e),[,r]=(0,o.useState)(0),s=(0,o.useMemo)((()=>e.id||"jsx-layer-"+B++),[]);(0,o.useEffect)((()=>{if(t){const e=()=>r((e=>e+1));return t.on("styledata",e),e(),()=>{t.off("styledata",e),t.style&&t.style._loaded&&t.getLayer(s)&&t.removeLayer(s)}}}),[t]);if(t&&t.style&&t.getLayer(s))try{!function(e,t,n,o){if(W(n.id===o.id,"layer id changed"),W(n.type===o.type,"layer type changed"),"custom"===n.type||"custom"===o.type)return;const{layout:r={},paint:s={},filter:i,minzoom:l,maxzoom:c,beforeId:u}=n;if(u!==o.beforeId&&e.moveLayer(t,u),r!==o.layout){const n=o.layout||{};for(const o in r)a(r[o],n[o])||e.setLayoutProperty(t,o,r[o]);for(const o in n)r.hasOwnProperty(o)||e.setLayoutProperty(t,o,void 0)}if(s!==o.paint){const n=o.paint||{};for(const o in s)a(s[o],n[o])||e.setPaintProperty(t,o,s[o]);for(const o in n)s.hasOwnProperty(o)||e.setPaintProperty(t,o,void 0)}a(i,o.filter)||e.setFilter(t,i),l===o.minzoom&&c===o.maxzoom||e.setLayerZoomRange(t,l,c)}(t,s,e,n.current)}catch(i){console.warn(i)}else!function(e,t,n){if(e.style&&e.style._loaded&&(!("source"in n)||e.getSource(n.source))){const o=Object.assign({},n,{id:t});delete o.beforeId,e.addLayer(o,n.beforeId)}}(t,s,e);return n.current=e,null}},8453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>i});var o=n(6540);const r={},s=o.createContext(r);function a(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3a4d92a3.1c8eb99e.js b/assets/js/3a4d92a3.1c8eb99e.js deleted file mode 100644 index 45c2dd9b..00000000 --- a/assets/js/3a4d92a3.1c8eb99e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[1341],{5700:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>_,contentTitle:()=>h,default:()=>S,frontMatter:()=>g,metadata:()=>y,toc:()=>b});var n=r(7462),o=r(3366),a=r(7294),i=r(3905),s=(r(745),r(945));function u(e){var t=e.year;return a.createElement("div",{className:"control-panel"},a.createElement("h3",null,"Interactive GeoJSON"),a.createElement("p",null,"Map showing median household income by state in year ",a.createElement("b",null,t),". Hover over a state to see details."),a.createElement("p",null,"Data source: ",a.createElement("a",{href:"www.census.gov"},"US Census Bureau")),a.createElement("div",{className:"source-link"},a.createElement("a",{href:"https://github.com/visgl/react-map-gl/tree/7.1-release/examples/geojson",target:"_new"},"View Code \u2197")),a.createElement("hr",null),a.createElement("div",{key:"year",className:"input"},a.createElement("label",null,"Year"),a.createElement("input",{type:"range",value:t,min:1995,max:2015,step:1,onChange:function(t){return e.onChange(t.target.value)}})))}const l=a.memo(u);var c={id:"data",type:"fill",paint:{"fill-color":{property:"percentile",stops:[[0,"#3288bd"],[1,"#66c2a5"],[2,"#abdda4"],[3,"#e6f598"],[4,"#ffffbf"],[5,"#fee08b"],[6,"#fdae61"],[7,"#f46d43"],[8,"#d53e4f"]]},"fill-opacity":.8}},f=r(685),p=r(5256);var d="";function m(){var e=(0,a.useState)(2015),t=e[0],r=e[1],n=(0,a.useState)(null),o=n[0],i=n[1],u=(0,a.useState)(null),m=u[0],v=u[1];(0,a.useEffect)((function(){fetch("https://raw.githubusercontent.com/uber/react-map-gl/master/examples/.data/us-income.geojson").then((function(e){return e.json()})).then((function(e){return i(e)})).catch((function(e){return console.error("Could not load data",e)}))}),[]);var g=(0,a.useCallback)((function(e){var t=e.features,r=e.point,n=r.x,o=r.y,a=t&&t[0];v(a&&{feature:a,x:n,y:o})}),[]),h=(0,a.useMemo)((function(){return o&&(e=function(e){return e.properties.income[t]},r=o.features,n=(0,p.FT)().domain(r.map(e)).range((0,f.w6)(9)),{type:"FeatureCollection",features:r.map((function(t){var r=e(t),o=Object.assign({},t.properties,{value:r,percentile:n(r)});return Object.assign({},t,{properties:o})}))});var e,r,n}),[o,t]);return a.createElement(a.Fragment,null,a.createElement(s.ZP,{initialViewState:{latitude:40,longitude:-100,zoom:3},mapStyle:"mapbox://styles/mapbox/light-v9",mapboxAccessToken:d,interactiveLayerIds:["data"],onMouseMove:g},a.createElement(s.Hw,{type:"geojson",data:h},a.createElement(s.mh,c)),m&&a.createElement("div",{className:"tooltip",style:{left:m.x,top:m.y}},a.createElement("div",null,"State: ",m.feature.properties.name),a.createElement("div",null,"Median Household Income: ",m.feature.properties.value),a.createElement("div",null,"Percentile: ",m.feature.properties.percentile/8*100))),a.createElement(l,{year:t,onChange:function(e){return r(e)}}))}var v=["components"],g={},h="GeoJSON",y={unversionedId:"geojson",id:"geojson",title:"GeoJSON",description:"",source:"@site/src/examples/geojson.mdx",sourceDirName:".",slug:"/geojson",permalink:"/react-map-gl/examples/geojson",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"examplesSidebar",previous:{title:"Draggable Marker",permalink:"/react-map-gl/examples/draggable-markers"},next:{title:"GeoJSON Animation",permalink:"/react-map-gl/examples/geojson-animation"}},_={},b=[],E={toc:b},x="wrapper";function S(e){var t=e.components,r=(0,o.Z)(e,v);return(0,i.kt)(x,(0,n.Z)({},E,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"geojson"},"GeoJSON"),(0,i.kt)(m,{mdxType:"App"}))}S.isMDXComponent=!0},945:(e,t,r)=>{r.d(t,{ot:()=>$,$j:()=>te,mh:()=>ne,D5:()=>X,Jx:()=>Y,Pv:()=>ee,GI:()=>K,jf:()=>re,Hw:()=>oe,ZP:()=>ae,PE:()=>I});var n=r(7294),o=n.createContext(null);var a=r(1202);function i(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(var r=0;r0;)r.appendChild(a.childNodes[0]);o._container=r;var i=o._resizeObserver;i&&(i.disconnect(),i.observe(r)),n.setProps(Object.assign({},t,{styleDiffing:!1})),o.resize();var s=t.initialViewState;return s&&(s.bounds?o.fitBounds(s.bounds,Object.assign({},s.fitBoundsOptions,{duration:0})):n._updateViewState(s,!1)),o.isStyleLoaded()?o.fire("load"):o.once("styledata",(function(){return o.fire("load")})),o._update(),n},t._initialize=function(e){var t=this,r=this.props,n=r.mapStyle,o=void 0===n?d:n,a=Object.assign({},r,r.initialViewState,{accessToken:r.mapboxAccessToken||b()||null,container:e,style:p(o)}),i=a.initialViewState||a.viewState||a;if(Object.assign(a,{center:[i.longitude||0,i.latitude||0],zoom:i.zoom||0,pitch:i.pitch||0,bearing:i.bearing||0}),r.gl){var u=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=function(){return HTMLCanvasElement.prototype.getContext=u,r.gl}}var l=new this._MapClass(a);i.padding&&l.setPadding(i.padding),r.cursor&&(l.getCanvas().style.cursor=r.cursor),this._createShadowTransform(l);var c=l._render;l._render=function(e){t._inRender=!0,c.call(l,e),t._inRender=!1};var f=l._renderTaskQueue.run;l._renderTaskQueue.run=function(e){f.call(l._renderTaskQueue,e),t._onBeforeRepaint()},l.on("render",(function(){return t._onAfterRepaint()}));var h=l.fire;for(var y in l.fire=this._fireEvent.bind(this,h),l.on("resize",(function(){t._renderTransform.resize(l.transform.width,l.transform.height)})),l.on("styledata",(function(){t._updateStyleComponents(t.props,{}),s(l.transform,t._renderTransform)})),l.on("sourcedata",(function(){return t._updateStyleComponents(t.props,{})})),m)l.on(y,this._onPointerEvent);for(var _ in v)l.on(_,this._onCameraEvent);for(var E in g)l.on(E,this._onEvent);this._map=l},t.recycle=function(){var t=this.map.getContainer().querySelector("[mapboxgl-children]");null==t||t.remove(),e.savedMaps.push(this)},t.destroy=function(){this._map.remove()},t.redraw=function(){var e=this._map;!this._inRender&&e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())},t._createShadowTransform=function(e){var t,r,n=(t=e.transform,(r=t.clone()).pixelsToGLUnits=t.pixelsToGLUnits,r);e.painter.transform=n,this._renderTransform=n},t._updateSize=function(e){var t=e.viewState;if(t){var r=this._map;if(t.width!==r.transform.width||t.height!==r.transform.height)return r.resize(),!0}return!1},t._updateViewState=function(e,t){if(this._internalUpdate)return!1;var r=this._map,n=this._renderTransform,o=n.zoom,a=n.pitch,i=n.bearing,s=r.isMoving();s&&(n.cameraElevationReference="sea");var c=l(n,Object.assign({},u(r.transform),e));if(s&&(n.cameraElevationReference="ground"),c&&t){var f=this._deferredEvents;f.move=!0,f.zoom||(f.zoom=o!==n.zoom),f.rotate||(f.rotate=i!==n.bearing),f.pitch||(f.pitch=a!==n.pitch)}return s||l(r.transform,e),c},t._updateSettings=function(e,t){for(var r=this._map,n=!1,o=0,a=h;o0,a=this._queryRenderedFeatures(e.point),i=a.length>0;!i&&o&&(e.type="mouseleave",this._onPointerEvent(e)),this._hoveredFeatures=a,i&&!o&&(e.type="mouseenter",this._onPointerEvent(e)),e.type=n}else this._hoveredFeatures=null},t._fireEvent=function(e,t,r){var n=this._map,o=n.transform,a="string"==typeof t?t:t.type;return"move"===a&&this._updateViewState(this.props,!1),a in v&&("object"==typeof t&&(t.viewState=u(o)),this._map.isMoving())?(n.transform=this._renderTransform,e.call(n,t,r),n.transform=o,n):(e.call(n,t,r),n)},t._onBeforeRepaint=function(){var e=this,t=this._map;for(var r in this._internalUpdate=!0,this._deferredEvents)this._deferredEvents[r]&&t.fire(r);this._internalUpdate=!1;var n=this._map.transform;t.transform=this._renderTransform,this._onAfterRepaint=function(){s(e._renderTransform,n),t.transform=n}},(0,a.Z)(e,[{key:"map",get:function(){return this._map}},{key:"transform",get:function(){return this._renderTransform}}]),e}();function b(){var e=null;if("undefined"!=typeof location){var t=/access_token=([^&\/]*)/.exec(location.search);e=t&&t[1]}try{e=e||"pk.eyJ1IjoidWNmLW1hcGJveCIsImEiOiJja2tyNHQzdnIzYmNnMndwZGI3djNzdjVyIn0.xgCXV9mLZ47q7easx6WLCQ"}catch(r){}try{e=e||process.env.REACT_APP_MAPBOX_ACCESS_TOKEN}catch(n){}return e}_.savedMaps=[];var E=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function x(e){if(!e)return null;for(var t,r=e.map,n={getMap:function(){return r},getCenter:function(){return e.transform.center},getZoom:function(){return e.transform.zoom},getBearing:function(){return e.transform.bearing},getPitch:function(){return e.transform.pitch},getPadding:function(){return e.transform.padding},getBounds:function(){return e.transform.getBounds()},project:function(t){var n=r.transform;r.transform=e.transform;var o=r.project(t);return r.transform=n,o},unproject:function(t){var n=r.transform;r.transform=e.transform;var o=r.unproject(t);return r.transform=n,o},queryTerrainElevation:function(t,n){var o=r.transform;r.transform=e.transform;var a=r.queryTerrainElevation(t,n);return r.transform=o,a},queryRenderedFeatures:function(t,n){var o=r.transform;r.transform=e.transform;var a=r.queryRenderedFeatures(t,n);return r.transform=o,a}},o=(0,c.Z)(function(e){var t=new Set,r=e;for(;r;){for(var n,o=(0,c.Z)(Object.getOwnPropertyNames(r));!(n=o()).done;){var a=n.value;"_"!==a[0]&&"function"==typeof e[a]&&"fire"!==a&&"setEventedParent"!==a&&t.add(a)}r=Object.getPrototypeOf(r)}return Array.from(t)}(r));!(t=o()).done;){var a=t.value;a in n||E.includes(a)||(n[a]=r[a].bind(r))}return n}const S="undefined"!=typeof document?n.useLayoutEffect:n.useEffect;var L=["baseApiUrl","maxParallelImageRequests","workerClass","workerCount","workerUrl"];var C=n.createContext(null);function w(e,t,r){var a=(0,n.useContext)(o),i=(0,n.useState)(null),s=i[0],u=i[1],l=(0,n.useRef)(),f=(0,n.useRef)({mapLib:null,map:null}).current;(0,n.useEffect)((function(){var t,n=e.mapLib,o=!0;return Promise.resolve(n||r).then((function(r){if(o){if(!r)throw new Error("Invalid mapLib");var n="Map"in r?r:r.default;if(!n.Map)throw new Error("Invalid mapLib");if(function(e,t){for(var r,n=(0,c.Z)(L);!(r=n()).done;){var o=r.value;o in t&&(e[o]=t[o])}var a=t.RTLTextPlugin,i=void 0===a?"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js":a;i&&e.getRTLTextPluginStatus&&"unavailable"===e.getRTLTextPluginStatus()&&e.setRTLTextPlugin(i,(function(e){e&&console.error(e)}),!0)}(n,e),n.supported&&!n.supported(e))throw new Error("Map is not supported by this browser");e.reuseMaps&&(t=_.reuse(e,l.current)),t||(t=new _(n.Map,e,l.current)),f.map=x(t),f.mapLib=n,u(t),null==a||a.onMapMount(f.map,e.id)}})).catch((function(t){var r=e.onError;r?r({type:"error",target:null,originalEvent:null,error:t}):console.error(t)})),function(){o=!1,t&&(null==a||a.onMapUnmount(e.id),e.reuseMaps?t.recycle():t.destroy())}}),[]),S((function(){s&&s.setProps(e)})),(0,n.useImperativeHandle)(t,(function(){return f.map}),[s]);var p=(0,n.useMemo)((function(){return Object.assign({position:"relative",width:"100%",height:"100%"},e.style)}),[e.style]);return n.createElement("div",{id:e.id,ref:l,style:p},s&&n.createElement(C.Provider,{value:f},n.createElement("div",{"mapboxgl-children":"",style:{height:"100%"}},e.children)))}var M=r(3935),P=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function j(e,t){if(e&&t){var r=e.style;for(var n in t){var o=t[n];Number.isFinite(o)&&!P.test(n)?r[n]=o+"px":r[n]=o}}}function T(e,t){var r=(0,n.useContext)(C),o=r.map,a=r.mapLib,i=(0,n.useRef)({props:e});i.current.props=e;var s=(0,n.useMemo)((function(){var t=!1;n.Children.forEach(e.children,(function(e){e&&(t=!0)}));var r=Object.assign({},e,{element:t?document.createElement("div"):null}),o=new a.Marker(r);return o.setLngLat([e.longitude,e.latitude]),o.getElement().addEventListener("click",(function(e){null==i.current.props.onClick||i.current.props.onClick({type:"click",target:o,originalEvent:e})})),o.on("dragstart",(function(e){var t=e;t.lngLat=s.getLngLat(),null==i.current.props.onDragStart||i.current.props.onDragStart(t)})),o.on("drag",(function(e){var t=e;t.lngLat=s.getLngLat(),null==i.current.props.onDrag||i.current.props.onDrag(t)})),o.on("dragend",(function(e){var t=e;t.lngLat=s.getLngLat(),null==i.current.props.onDragEnd||i.current.props.onDragEnd(t)})),o}),[]);(0,n.useEffect)((function(){return s.addTo(o.getMap()),function(){s.remove()}}),[]);var u,l,c,f,p,d,m=e.longitude,v=e.latitude,g=e.offset,h=e.style,y=e.draggable,_=void 0!==y&&y,b=e.popup,E=void 0===b?null:b,x=e.rotation,S=void 0===x?0:x,L=e.rotationAlignment,w=void 0===L?"auto":L,P=e.pitchAlignment,T=void 0===P?"auto":P;return(0,n.useEffect)((function(){j(s.getElement(),h)}),[h]),(0,n.useImperativeHandle)(t,(function(){return s}),[]),s.getLngLat().lng===m&&s.getLngLat().lat===v||s.setLngLat([m,v]),g&&(u=s.getOffset(),l=g,c=Array.isArray(u)?u[0]:u?u.x:0,f=Array.isArray(u)?u[1]:u?u.y:0,p=Array.isArray(l)?l[0]:l?l.x:0,d=Array.isArray(l)?l[1]:l?l.y:0,c!==p||f!==d)&&s.setOffset(g),s.isDraggable()!==_&&s.setDraggable(_),s.getRotation()!==S&&s.setRotation(S),s.getRotationAlignment()!==w&&s.setRotationAlignment(w),s.getPitchAlignment()!==T&&s.setPitchAlignment(T),s.getPopup()!==E&&s.setPopup(E),(0,M.createPortal)(e.children,s.getElement())}const R=(0,n.memo)((0,n.forwardRef)(T));function k(e){return new Set(e?e.trim().split(/\s+/):[])}function O(e,t){var r=(0,n.useContext)(C),o=r.map,a=r.mapLib,s=(0,n.useMemo)((function(){return document.createElement("div")}),[]),u=(0,n.useRef)({props:e});u.current.props=e;var l=(0,n.useMemo)((function(){var t=Object.assign({},e),r=new a.Popup(t);return r.setLngLat([e.longitude,e.latitude]),r.once("open",(function(e){null==u.current.props.onOpen||u.current.props.onOpen(e)})),r}),[]);if((0,n.useEffect)((function(){var e=function(e){null==u.current.props.onClose||u.current.props.onClose(e)};return l.on("close",e),l.setDOMContent(s).addTo(o.getMap()),function(){l.off("close",e),l.isOpen()&&l.remove()}}),[]),(0,n.useEffect)((function(){j(l.getElement(),e.style)}),[e.style]),(0,n.useImperativeHandle)(t,(function(){return l}),[]),l.isOpen()&&(l.getLngLat().lng===e.longitude&&l.getLngLat().lat===e.latitude||l.setLngLat([e.longitude,e.latitude]),e.offset&&!i(l.options.offset,e.offset)&&l.setOffset(e.offset),l.options.anchor===e.anchor&&l.options.maxWidth===e.maxWidth||(l.options.anchor=e.anchor,l.setMaxWidth(e.maxWidth)),l.options.className!==e.className)){for(var f,p=k(l.options.className),d=k(e.className),m=(0,c.Z)(p);!(f=m()).done;){var v=f.value;d.has(v)||l.removeClassName(v)}for(var g,h=(0,c.Z)(d);!(g=h()).done;){var y=g.value;p.has(y)||l.addClassName(y)}l.options.className=e.className}return(0,M.createPortal)(e.children,s)}const z=(0,n.memo)((0,n.forwardRef)(O));const I=function(e,t,r,o){var a=(0,n.useContext)(C),i=(0,n.useMemo)((function(){return e(a)}),[]);return(0,n.useEffect)((function(){var e=o||r||t,n="function"==typeof t&&"function"==typeof r?t:null,s="function"==typeof r?r:"function"==typeof t?t:null,u=a.map;return u.hasControl(i)||(u.addControl(i,null==e?void 0:e.position),n&&n(a)),function(){s&&s(a),u.hasControl(i)&&u.removeControl(i)}}),[]),i};function A(e){var t=I((function(t){return new t.mapLib.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)})}),{position:e.position});return(0,n.useEffect)((function(){j(t._controlContainer,e.style)}),[e.style]),null}const Z=(0,n.memo)(A);function N(e,t){var r=(0,n.useRef)({props:e}),o=I((function(t){var n=new t.mapLib.GeolocateControl(e),o=n._setupUI;return n._setupUI=function(e){n._container.hasChildNodes()||o(e)},n.on("geolocate",(function(e){null==r.current.props.onGeolocate||r.current.props.onGeolocate(e)})),n.on("error",(function(e){null==r.current.props.onError||r.current.props.onError(e)})),n.on("outofmaxbounds",(function(e){null==r.current.props.onOutOfMaxBounds||r.current.props.onOutOfMaxBounds(e)})),n.on("trackuserlocationstart",(function(e){null==r.current.props.onTrackUserLocationStart||r.current.props.onTrackUserLocationStart(e)})),n.on("trackuserlocationend",(function(e){null==r.current.props.onTrackUserLocationEnd||r.current.props.onTrackUserLocationEnd(e)})),n}),{position:e.position});return r.current.props=e,(0,n.useImperativeHandle)(t,(function(){return o}),[]),(0,n.useEffect)((function(){j(o._container,e.style)}),[e.style]),null}const F=(0,n.memo)((0,n.forwardRef)(N));function D(e){var t=I((function(t){return new t.mapLib.NavigationControl(e)}),{position:e.position});return(0,n.useEffect)((function(){j(t._container,e.style)}),[e.style]),null}const U=(0,n.memo)(D);function B(e){var t=I((function(t){return new t.mapLib.ScaleControl(e)}),{position:e.position}),r=(0,n.useRef)(e),o=r.current;r.current=e;var a=e.style;return void 0!==e.maxWidth&&e.maxWidth!==o.maxWidth&&(t.options.maxWidth=e.maxWidth),void 0!==e.unit&&e.unit!==o.unit&&t.setUnit(e.unit),(0,n.useEffect)((function(){j(t._container,a)}),[a]),null}const H=(0,n.memo)(B);function W(e,t){if(!e)throw new Error(t)}var G=0;const q=function(e){var t=(0,n.useContext)(C).map.getMap(),r=(0,n.useRef)(e),o=(0,n.useState)(0)[1],a=(0,n.useMemo)((function(){return e.id||"jsx-layer-"+G++}),[]);if((0,n.useEffect)((function(){if(t){var e=function(){return o((function(e){return e+1}))};return t.on("styledata",e),e(),function(){t.off("styledata",e),t.style&&t.style._loaded&&t.getLayer(a)&&t.removeLayer(a)}}}),[t]),t&&t.style&&t.getLayer(a))try{!function(e,t,r,n){if(W(r.id===n.id,"layer id changed"),W(r.type===n.type,"layer type changed"),"custom"!==r.type&&"custom"!==n.type){var o=r.layout,a=void 0===o?{}:o,s=r.paint,u=void 0===s?{}:s,l=r.filter,c=r.minzoom,f=r.maxzoom,p=r.beforeId;if(p!==n.beforeId&&e.moveLayer(t,p),a!==n.layout){var d=n.layout||{};for(var m in a)i(a[m],d[m])||e.setLayoutProperty(t,m,a[m]);for(var v in d)a.hasOwnProperty(v)||e.setLayoutProperty(t,v,void 0)}if(u!==n.paint){var g=n.paint||{};for(var h in u)i(u[h],g[h])||e.setPaintProperty(t,h,u[h]);for(var y in g)u.hasOwnProperty(y)||e.setPaintProperty(t,y,void 0)}i(l,n.filter)||e.setFilter(t,l),c===n.minzoom&&f===n.maxzoom||e.setLayerZoomRange(t,c,f)}}(t,a,e,r.current)}catch(s){console.warn(s)}else!function(e,t,r){if(e.style&&e.style._loaded&&(!("source"in r)||e.getSource(r.source))){var n=Object.assign({},r,{id:t});delete n.beforeId,e.addLayer(n,r.beforeId)}}(t,a,e);return r.current=e,null};var J=0;const V=function(e){var t=(0,n.useContext)(C).map.getMap(),r=(0,n.useRef)(e),o=(0,n.useState)(0)[1],a=(0,n.useMemo)((function(){return e.id||"jsx-source-"+J++}),[]);(0,n.useEffect)((function(){if(t){var e=function(){return setTimeout((function(){return o((function(e){return e+1}))}),0)};return t.on("styledata",e),e(),function(){if(t.off("styledata",e),t.style&&t.style._loaded&&t.getSource(a)){var r,n=null==(r=t.getStyle())?void 0:r.layers;if(n)for(var o,i=(0,c.Z)(n);!(o=i()).done;){var s=o.value;s.source===a&&t.removeLayer(s.id)}t.removeSource(a)}}}}),[t]);var s=t&&t.style&&t.getSource(a);return s?function(e,t,r){W(t.id===r.id,"source id changed"),W(t.type===r.type,"source type changed");var n="",o=0;for(var a in t)"children"===a||"id"===a||i(r[a],t[a])||(n=a,o++);if(o){var s=t.type;if("geojson"===s)e.setData(t.data);else if("image"===s)e.updateImage({url:t.url,coordinates:t.coordinates});else if("setCoordinates"in e&&1===o&&"coordinates"===n)e.setCoordinates(t.coordinates);else if("setUrl"in e)switch(n){case"url":e.setUrl(t.url);break;case"tiles":e.setTiles(t.tiles)}else console.warn("Unable to update prop: "+n)}}(s,e,r.current):s=function(e,t,r){if(e.style&&e.style._loaded){var n=Object.assign({},r);return delete n.id,delete n.children,e.addSource(t,n),e.getSource(t)}return null}(t,a,e),r.current=e,s&&n.Children.map(e.children,(function(e){return e&&(0,n.cloneElement)(e,{source:a})}))||null};var Q=r.e(8539).then(r.t.bind(r,8539,23)),X=n.forwardRef((function(e,t){return w(e,t,Q)})),Y=R,K=z,$=Z,ee=U,te=F,re=H,ne=q,oe=V;const ae=X}}]); \ No newline at end of file diff --git a/assets/js/3b516b76.38e01a56.js b/assets/js/3b516b76.38e01a56.js new file mode 100644 index 00000000..10739b89 --- /dev/null +++ b/assets/js/3b516b76.38e01a56.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[369],{6933:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>a,metadata:()=>r,toc:()=>l});const r=JSON.parse('{"id":"api-reference/mapbox/navigation-control","title":"NavigationControl","description":"React component that wraps mapbox-gl\'s NavigationControl class.","source":"@site/../docs/api-reference/mapbox/navigation-control.md","sourceDirName":"api-reference/mapbox","slug":"/api-reference/mapbox/navigation-control","permalink":"/react-map-gl/docs/api-reference/mapbox/navigation-control","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/mapbox/navigation-control.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"Marker","permalink":"/react-map-gl/docs/api-reference/mapbox/marker"},"next":{"title":"Popup","permalink":"/react-map-gl/docs/api-reference/mapbox/popup"}}');var n=o(4848),i=o(8453);const a={},s="NavigationControl",c={},l=[{value:"Properties",id:"properties",level:2},{value:"Reactive Properties",id:"reactive-properties",level:3},{value:"style: CSSProperties",id:"style",level:4},{value:"Other Properties",id:"other-properties",level:3},{value:"position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'",id:"position",level:4},{value:"Source",id:"source",level:2}];function p(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"navigationcontrol",children:"NavigationControl"})}),"\n",(0,n.jsxs)(t.p,{children:["React component that wraps mapbox-gl's ",(0,n.jsx)(t.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/markers/#navigationcontrol",children:"NavigationControl"})," class."]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-tsx",children:"import * as React from 'react';\r\nimport Map, {NavigationControl} from 'react-map-gl/mapbox';\r\nimport 'mapbox-gl/dist/mapbox-gl.css';\r\n\r\nfunction App() {\r\n return \"\r\n initialViewState={{\r\n longitude: -100,\r\n latitude: 40,\r\n zoom: 3.5\r\n }}\r\n mapStyle=\"mapbox://styles/mapbox/streets-v9\"\r\n >\r\n \r\n ;\r\n}\n"})}),"\n",(0,n.jsx)(t.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsx)(t.h3,{id:"reactive-properties",children:"Reactive Properties"}),"\n",(0,n.jsxs)(t.h4,{id:"style",children:[(0,n.jsx)(t.code,{children:"style"}),": CSSProperties"]}),"\n",(0,n.jsx)(t.p,{children:"CSS style override that applies to the control's container."}),"\n",(0,n.jsx)(t.h3,{id:"other-properties",children:"Other Properties"}),"\n",(0,n.jsx)(t.p,{children:"The properties in this section are not reactive. They are only used when the component first mounts."}),"\n",(0,n.jsxs)(t.p,{children:["Any options supported by the ",(0,n.jsx)(t.code,{children:"NavigationControl"})," class (",(0,n.jsx)(t.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/markers/#navigationcontrol",children:"Mapbox"})," | ",(0,n.jsx)(t.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/type-aliases/NavigationControlOptions/",children:"Maplibre"}),"), such as"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.code,{children:"showCompass"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.code,{children:"showZoom"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.code,{children:"visualizePitch"})}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"Plus the following:"}),"\n",(0,n.jsxs)(t.h4,{id:"position",children:[(0,n.jsx)(t.code,{children:"position"}),": 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'"]}),"\n",(0,n.jsxs)(t.p,{children:["Default: ",(0,n.jsx)(t.code,{children:"'top-right'"})]}),"\n",(0,n.jsx)(t.p,{children:"Placement of the control relative to the map."}),"\n",(0,n.jsx)(t.h2,{id:"source",children:"Source"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://github.com/visgl/react-map-gl/tree/7.0-release/src/components/navigation-control.ts",children:"navigation-control.ts"})})]})}function d(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(p,{...e})}):p(e)}},8453:(e,t,o)=>{o.d(t,{R:()=>a,x:()=>s});var r=o(6540);const n={},i=r.createContext(n);function a(e){const t=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),r.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3ef54029.95b2589c.js b/assets/js/3ef54029.95b2589c.js new file mode 100644 index 00000000..cabe3b85 --- /dev/null +++ b/assets/js/3ef54029.95b2589c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[7095],{2077:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var o=n(6540),i=n(6065),l=n(6025);const a=i.Ay.div.withConfig({displayName:"doc-item-component__DemoContainer",componentId:"sc-187t2dd-0"})(["position:absolute;overflow:hidden !important;left:0;right:0;top:0;bottom:0;> h1,> header{display:none;}"]);function c(e){let{content:t,route:n}=e;const i=t,c=(0,l.Ay)("/examples");return n.path===c?o.createElement("div",{key:"index"},o.createElement(i,null)):o.createElement(a,{key:"demo"},o.createElement(i,null))}}}]); \ No newline at end of file diff --git a/assets/js/3fde0636.49ae1182.js b/assets/js/3fde0636.49ae1182.js deleted file mode 100644 index 09714b73..00000000 --- a/assets/js/3fde0636.49ae1182.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[1568],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=s(r),b=a,f=p["".concat(u,".").concat(b)]||p[b]||m[b]||o;return r?n.createElement(f,l(l({ref:t},c),{},{components:r})):n.createElement(f,l({ref:t},c))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=b;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{r.d(t,{Z:()=>l});var n=r(7294),a=r(6010);const o={tabItem:"tabItem_Ymn6"};function l(e){var t=e.children,r=e.hidden,l=e.className;return n.createElement("div",{role:"tabpanel",className:(0,a.Z)(o.tabItem,l),hidden:r},t)}},4866:(e,t,r)=>{r.d(t,{Z:()=>w});var n=r(7462),a=r(7294),o=r(6010),l=r(2466),i=r(6550),u=r(1980),s=r(7392),c=r(12);function p(e){return function(e){var t,r;return null!=(t=null==(r=a.Children.map(e,(function(e){if(!e||(0,a.isValidElement)(e)&&(t=e.props)&&"object"==typeof t&&"value"in t)return e;var t;throw new Error("Docusaurus error: Bad child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:r.filter(Boolean))?t:[]}(e).map((function(e){var t=e.props;return{value:t.value,label:t.label,attributes:t.attributes,default:t.default}}))}function m(e){var t=e.values,r=e.children;return(0,a.useMemo)((function(){var e=null!=t?t:p(r);return function(e){var t=(0,s.l)(e,(function(e,t){return e.value===t.value}));if(t.length>0)throw new Error('Docusaurus error: Duplicate values "'+t.map((function(e){return e.value})).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[t,r])}function b(e){var t=e.value;return e.tabValues.some((function(e){return e.value===t}))}function f(e){var t=e.queryString,r=void 0!==t&&t,n=e.groupId,o=(0,i.k6)(),l=function(e){var t=e.queryString,r=void 0!==t&&t,n=e.groupId;if("string"==typeof r)return r;if(!1===r)return null;if(!0===r&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=n?n:null}({queryString:r,groupId:n});return[(0,u._X)(l),(0,a.useCallback)((function(e){if(l){var t=new URLSearchParams(o.location.search);t.set(l,e),o.replace(Object.assign({},o.location,{search:t.toString()}))}}),[l,o])]}function d(e){var t,r,n,o,l=e.defaultValue,i=e.queryString,u=void 0!==i&&i,s=e.groupId,p=m(e),d=(0,a.useState)((function(){return function(e){var t,r=e.defaultValue,n=e.tabValues;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(r){if(!b({value:r,tabValues:n}))throw new Error('Docusaurus error: The has a defaultValue "'+r+'" but none of its children has the corresponding value. Available values are: '+n.map((function(e){return e.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return r}var a=null!=(t=n.find((function(e){return e.default})))?t:n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:l,tabValues:p})})),v=d[0],h=d[1],g=f({queryString:u,groupId:s}),y=g[0],k=g[1],w=(t=function(e){return e?"docusaurus.tab."+e:null}({groupId:s}.groupId),r=(0,c.Nk)(t),n=r[0],o=r[1],[n,(0,a.useCallback)((function(e){t&&o.set(e)}),[t,o])]),C=w[0],x=w[1],N=function(){var e=null!=y?y:C;return b({value:e,tabValues:p})?e:null}();return(0,a.useLayoutEffect)((function(){N&&h(N)}),[N]),{selectedValue:v,selectValue:(0,a.useCallback)((function(e){if(!b({value:e,tabValues:p}))throw new Error("Can't select invalid tab value="+e);h(e),k(e),x(e)}),[k,x,p]),tabValues:p}}var v=r(2389);const h={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function g(e){var t=e.className,r=e.block,i=e.selectedValue,u=e.selectValue,s=e.tabValues,c=[],p=(0,l.o5)().blockElementScrollPositionUntilNextRender,m=function(e){var t=e.currentTarget,r=c.indexOf(t),n=s[r].value;n!==i&&(p(t),u(n))},b=function(e){var t,r=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":var n,a=c.indexOf(e.currentTarget)+1;r=null!=(n=c[a])?n:c[0];break;case"ArrowLeft":var o,l=c.indexOf(e.currentTarget)-1;r=null!=(o=c[l])?o:c[c.length-1]}null==(t=r)||t.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":r},t)},s.map((function(e){var t=e.value,r=e.label,l=e.attributes;return a.createElement("li",(0,n.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:function(e){return c.push(e)},onKeyDown:b,onClick:m},l,{className:(0,o.Z)("tabs__item",h.tabItem,null==l?void 0:l.className,{"tabs__item--active":i===t})}),null!=r?r:t)})))}function y(e){var t=e.lazy,r=e.children,n=e.selectedValue,o=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){var l=o.find((function(e){return e.props.value===n}));return l?(0,a.cloneElement)(l,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map((function(e,t){return(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==n})})))}function k(e){var t=d(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",h.tabList)},a.createElement(g,(0,n.Z)({},e,t)),a.createElement(y,(0,n.Z)({},e,t)))}function w(e){var t=(0,v.Z)();return a.createElement(k,(0,n.Z)({key:String(t)},e))}},3999:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>m,contentTitle:()=>c,default:()=>v,frontMatter:()=>s,metadata:()=>p,toc:()=>b});var n=r(7462),a=r(3366),o=(r(7294),r(3905)),l=r(4866),i=r(5162),u=["components"],s={},c="AttributionControl",p={unversionedId:"api-reference/attribution-control",id:"api-reference/attribution-control",title:"AttributionControl",description:"React component that wraps the base library's AttributionControl class (Mapbox | Maplibre).",source:"@site/../docs/api-reference/attribution-control.md",sourceDirName:"api-reference",slug:"/api-reference/attribution-control",permalink:"/react-map-gl/docs/api-reference/attribution-control",draft:!1,editUrl:"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/attribution-control.md",tags:[],version:"current",frontMatter:{},sidebar:"docsSidebar",previous:{title:"default (Map)",permalink:"/react-map-gl/docs/api-reference/map"},next:{title:"FullscreenControl",permalink:"/react-map-gl/docs/api-reference/fullscreen-control"}},m={},b=[{value:"Properties",id:"properties",level:2},{value:"Reactive Properties",id:"reactive-properties",level:3},{value:"style: CSSProperties",id:"style",level:4},{value:"Other Properties",id:"other-properties",level:3},{value:"position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'",id:"position",level:4},{value:"Source",id:"source",level:2}],f={toc:b},d="wrapper";function v(e){var t=e.components,r=(0,a.Z)(e,u);return(0,o.kt)(d,(0,n.Z)({},f,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"attributioncontrol"},"AttributionControl"),(0,o.kt)("p",null,"React component that wraps the base library's ",(0,o.kt)("inlineCode",{parentName:"p"},"AttributionControl")," class (",(0,o.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/api/markers/#attributioncontrol"},"Mapbox")," | ",(0,o.kt)("a",{parentName:"p",href:"https://maplibre.org/maplibre-gl-js-docs/api/markers/#attributioncontrol"},"Maplibre"),")."),(0,o.kt)(l.Z,{groupId:"map-library",mdxType:"Tabs"},(0,o.kt)(i.Z,{value:"mapbox",label:"Mapbox",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},'import * as React from \'react\';\nimport Map, {AttributionControl} from \'react-map-gl\';\n\nfunction App() {\n return \n \n ;\n}\n'))),(0,o.kt)(i.Z,{value:"maplibre",label:"Maplibre",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"import * as React from 'react';\nimport Map, {AttributionControl} from 'react-map-gl/maplibre';\n\nfunction App() {\n return \n \n ;\n}\n")))),(0,o.kt)("h2",{id:"properties"},"Properties"),(0,o.kt)("h3",{id:"reactive-properties"},"Reactive Properties"),(0,o.kt)("h4",{id:"style"},(0,o.kt)("inlineCode",{parentName:"h4"},"style"),": CSSProperties"),(0,o.kt)("p",null,"CSS style override that applies to the control's container."),(0,o.kt)("h3",{id:"other-properties"},"Other Properties"),(0,o.kt)("p",null,"The properties in this section are not reactive. They are only used when the component first mounts."),(0,o.kt)("p",null,"Any options supported by the ",(0,o.kt)("inlineCode",{parentName:"p"},"AttributionControl")," class (",(0,o.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/api/markers/#attributioncontrol"},"Mapbox")," | ",(0,o.kt)("a",{parentName:"p",href:"https://maplibre.org/maplibre-gl-js-docs/api/markers/#attributioncontrol"},"Maplibre"),"), such as"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"compact")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"customAttribution"))),(0,o.kt)("p",null,"Plus the following:"),(0,o.kt)("h4",{id:"position"},(0,o.kt)("inlineCode",{parentName:"h4"},"position"),": 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'"),(0,o.kt)("p",null,"Default: ",(0,o.kt)("inlineCode",{parentName:"p"},"'bottom-right'")),(0,o.kt)("p",null,"Placement of the control relative to the map."),(0,o.kt)("h2",{id:"source"},"Source"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/visgl/react-map-gl/tree/7.1-release/src/components/attribution-control.ts"},"attribution-control.ts")))}v.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/410ad0ce.c4cf4495.js b/assets/js/410ad0ce.c4cf4495.js new file mode 100644 index 00000000..fa5b0732 --- /dev/null +++ b/assets/js/410ad0ce.c4cf4495.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[3183],{9290:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>h,contentTitle:()=>f,default:()=>v,frontMatter:()=>m,metadata:()=>o,toc:()=>g});const o=JSON.parse('{"id":"mapbox/terrain","title":"Terrain","description":"","source":"@site/src/examples/mapbox/terrain.mdx","sourceDirName":"mapbox","slug":"/mapbox/terrain","permalink":"/react-map-gl/examples/mapbox/terrain","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"Side by Side","permalink":"/react-map-gl/examples/mapbox/side-by-side"},"next":{"title":"Camera Transition","permalink":"/react-map-gl/examples/mapbox/viewport-animation"}}');var r=n(4848),s=n(8453),a=n(6540),i=(n(5338),n(2198));function c(){return(0,r.jsxs)("div",{className:"control-panel",children:[(0,r.jsx)("h3",{children:"3D Terrain"}),(0,r.jsx)("p",{children:"Add 3D terrain and sky to a map."}),(0,r.jsx)("div",{className:"source-link",children:(0,r.jsx)("a",{href:"https://github.com/visgl/react-map-gl/tree/7.0-release/examples/terrain",target:"_new",children:"View Code \u2197"})})]})}const l=a.memo(c),u="",p={id:"sky",type:"sky",paint:{"sky-type":"atmosphere","sky-atmosphere-sun":[0,0],"sky-atmosphere-sun-intensity":15}};function d(){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(i.Ay,{initialViewState:{latitude:32.6141,longitude:-114.34411,zoom:14,bearing:80,pitch:80},maxPitch:85,mapStyle:"mapbox://styles/mapbox/satellite-v9",mapboxAccessToken:u,terrain:{source:"mapbox-dem",exaggeration:1.5},children:[(0,r.jsx)(i.kL,{id:"mapbox-dem",type:"raster-dem",url:"mapbox://mapbox.mapbox-terrain-dem-v1",tileSize:512,maxzoom:14}),(0,r.jsx)(i.Wd,Object.assign({},p))]}),(0,r.jsx)(l,{})]})}const m={},f="Terrain",h={},g=[];function y(e){const t={h1:"h1",header:"header",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"terrain",children:"Terrain"})}),"\n","\n",(0,r.jsx)(d,{})]})}function v(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(y,{...e})}):y(e)}},2198:(e,t,n)=>{n.d(t,{T3:()=>A,tG:()=>F,Wd:()=>V,T5:()=>w,pH:()=>T,ov:()=>D,zD:()=>k,g0:()=>Z,kL:()=>H,Ay:()=>w,VI:()=>z});var o=n(6540),r=n(4848);const s=o.createContext(null);function a(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n{let n=null;"interactive"in e&&(n=Object.assign({},e),delete n.interactive);const o=t[e.ref];if(o){n=n||Object.assign({},e),delete n.ref;for(const e of u)e in o&&(n[e]=o[e])}return n||e}));return Object.assign({},e,{layers:n})}const d={version:8,sources:{},layers:[]},m={mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",click:"onClick",dblclick:"onDblClick",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",mouseout:"onMouseOut",contextmenu:"onContextMenu",touchstart:"onTouchStart",touchend:"onTouchEnd",touchmove:"onTouchMove",touchcancel:"onTouchCancel"},f={movestart:"onMoveStart",move:"onMove",moveend:"onMoveEnd",dragstart:"onDragStart",drag:"onDrag",dragend:"onDragEnd",zoomstart:"onZoomStart",zoom:"onZoom",zoomend:"onZoomEnd",rotatestart:"onRotateStart",rotate:"onRotate",rotateend:"onRotateEnd",pitchstart:"onPitchStart",pitch:"onPitch",pitchend:"onPitchEnd"},h={wheel:"onWheel",boxzoomstart:"onBoxZoomStart",boxzoomend:"onBoxZoomEnd",boxzoomcancel:"onBoxZoomCancel",resize:"onResize",load:"onLoad",render:"onRender",idle:"onIdle",remove:"onRemove",data:"onData",styledata:"onStyleData",sourcedata:"onSourceData",error:"onError"},g=["minZoom","maxZoom","minPitch","maxPitch","maxBounds","projection","renderWorldCopies"],y=["scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate","touchPitch"];class v{constructor(e,t,n){this._map=null,this._internalUpdate=!1,this._inRender=!1,this._hoveredFeatures=null,this._deferredEvents={move:!1,zoom:!1,pitch:!1,rotate:!1},this._onEvent=e=>{const t=this.props[h[e.type]];t?t(e):"error"===e.type&&console.error(e.error)},this._onPointerEvent=e=>{"mousemove"!==e.type&&"mouseout"!==e.type||this._updateHover(e);const t=this.props[m[e.type]];t&&(this.props.interactiveLayerIds&&"mouseover"!==e.type&&"mouseout"!==e.type&&(e.features=this._hoveredFeatures||this._queryRenderedFeatures(e.point)),t(e),delete e.features)},this._onCameraEvent=e=>{if(!this._internalUpdate){const t=this.props[f[e.type]];t&&t(e)}e.type in this._deferredEvents&&(this._deferredEvents[e.type]=!1)},this._MapClass=e,this.props=t,this._initialize(n)}get map(){return this._map}get transform(){return this._renderTransform}setProps(e){const t=this.props;this.props=e;const n=this._updateSettings(e,t);n&&this._createShadowTransform(this._map);const o=this._updateSize(e),r=this._updateViewState(e,!0);this._updateStyle(e,t),this._updateStyleComponents(e,t),this._updateHandlers(e,t),(n||o||r&&!this._map.isMoving())&&this.redraw()}static reuse(e,t){const n=v.savedMaps.pop();if(!n)return null;const o=n.map,r=o.getContainer();for(t.className=r.className;r.childNodes.length>0;)t.appendChild(r.childNodes[0]);o._container=t,n.setProps(Object.assign({},e,{styleDiffing:!1})),o.resize();const{initialViewState:s}=e;return s&&(s.bounds?o.fitBounds(s.bounds,Object.assign({},s.fitBoundsOptions,{duration:0})):n._updateViewState(s,!1)),o.isStyleLoaded()?o.fire("load"):o.once("styledata",(()=>o.fire("load"))),o._update(),n}_initialize(e){const{props:t}=this,{mapStyle:n=d}=t,o=Object.assign({},t,t.initialViewState,{accessToken:t.mapboxAccessToken||_()||null,container:e,style:p(n)}),r=o.initialViewState||o.viewState||o;if(Object.assign(o,{center:[r.longitude||0,r.latitude||0],zoom:r.zoom||0,pitch:r.pitch||0,bearing:r.bearing||0}),t.gl){const e=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=e,t.gl)}const s=new this._MapClass(o);r.padding&&s.setPadding(r.padding),t.cursor&&(s.getCanvas().style.cursor=t.cursor),this._createShadowTransform(s);const a=s._render;s._render=e=>{this._inRender=!0,a.call(s,e),this._inRender=!1};const c=s._renderTaskQueue.run;s._renderTaskQueue.run=e=>{c.call(s._renderTaskQueue,e),this._onBeforeRepaint()},s.on("render",(()=>this._onAfterRepaint()));const l=s.fire;s.fire=this._fireEvent.bind(this,l),s.on("resize",(()=>{this._renderTransform.resize(s.transform.width,s.transform.height)})),s.on("styledata",(()=>{this._updateStyleComponents(this.props,{}),i(s.transform,this._renderTransform)})),s.on("sourcedata",(()=>this._updateStyleComponents(this.props,{})));for(const i in m)s.on(i,this._onPointerEvent);for(const i in f)s.on(i,this._onCameraEvent);for(const i in h)s.on(i,this._onEvent);this._map=s}recycle(){const e=this.map.getContainer().querySelector("[mapboxgl-children]");null==e||e.remove(),v.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){const e=this._map;!this._inRender&&e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())}_createShadowTransform(e){const t=function(e){const t=e.clone();return t.pixelsToGLUnits=e.pixelsToGLUnits,t}(e.transform);e.painter.transform=t,this._renderTransform=t}_updateSize(e){const{viewState:t}=e;if(t){const e=this._map;if(t.width!==e.transform.width||t.height!==e.transform.height)return e.resize(),!0}return!1}_updateViewState(e,t){if(this._internalUpdate)return!1;const n=this._map,o=this._renderTransform,{zoom:r,pitch:s,bearing:a}=o,i=n.isMoving();i&&(o.cameraElevationReference="sea");const u=l(o,Object.assign({},c(n.transform),e));if(i&&(o.cameraElevationReference="ground"),u&&t){const e=this._deferredEvents;e.move=!0,e.zoom||(e.zoom=r!==o.zoom),e.rotate||(e.rotate=a!==o.bearing),e.pitch||(e.pitch=s!==o.pitch)}return i||l(n.transform,e),u}_updateSettings(e,t){const n=this._map;let o=!1;for(const r of g)if(r in e&&!a(e[r],t[r])){o=!0;const t=n["set"+r[0].toUpperCase()+r.slice(1)];null==t||t.call(n,e[r])}return o}_updateStyle(e,t){if(e.cursor!==t.cursor&&(this._map.getCanvas().style.cursor=e.cursor||""),e.mapStyle!==t.mapStyle){const{mapStyle:t=d,styleDiffing:n=!0}=e,o={diff:n};return"localIdeographFontFamily"in e&&(o.localIdeographFontFamily=e.localIdeographFontFamily),this._map.setStyle(p(t),o),!0}return!1}_updateStyleComponents(e,t){const n=this._map;let o=!1;return n.isStyleLoaded()&&("light"in e&&n.setLight&&!a(e.light,t.light)&&(o=!0,n.setLight(e.light)),"fog"in e&&n.setFog&&!a(e.fog,t.fog)&&(o=!0,n.setFog(e.fog)),"terrain"in e&&n.setTerrain&&!a(e.terrain,t.terrain)&&(e.terrain&&!n.getSource(e.terrain.source)||(o=!0,n.setTerrain(e.terrain)))),o}_updateHandlers(e,t){const n=this._map;let o=!1;for(const i of y){var r,s;const c=null==(r=e[i])||r;a(c,null==(s=t[i])||s)||(o=!0,c?n[i].enable(c):n[i].disable())}return o}_queryRenderedFeatures(e){const t=this._map,n=t.transform,{interactiveLayerIds:o=[]}=this.props;try{return t.transform=this._renderTransform,t.queryRenderedFeatures(e,{layers:o.filter(t.getLayer.bind(t))})}catch(r){return[]}finally{t.transform=n}}_updateHover(e){const{props:t}=this;if(t.interactiveLayerIds&&(t.onMouseMove||t.onMouseEnter||t.onMouseLeave)){var n;const t=e.type,o=(null==(n=this._hoveredFeatures)?void 0:n.length)>0,r=this._queryRenderedFeatures(e.point),s=r.length>0;!s&&o&&(e.type="mouseleave",this._onPointerEvent(e)),this._hoveredFeatures=r,s&&!o&&(e.type="mouseenter",this._onPointerEvent(e)),e.type=t}else this._hoveredFeatures=null}_fireEvent(e,t,n){const o=this._map,r=o.transform,s="string"==typeof t?t:t.type;return"move"===s&&this._updateViewState(this.props,!1),s in f&&("object"==typeof t&&(t.viewState=c(r)),this._map.isMoving())?(o.transform=this._renderTransform,e.call(o,t,n),o.transform=r,o):(e.call(o,t,n),o)}_onBeforeRepaint(){const e=this._map;this._internalUpdate=!0;for(const n in this._deferredEvents)this._deferredEvents[n]&&e.fire(n);this._internalUpdate=!1;const t=this._map.transform;e.transform=this._renderTransform,this._onAfterRepaint=()=>{i(this._renderTransform,t),e.transform=t}}}function _(){let e=null;if("undefined"!=typeof location){const t=/access_token=([^&\/]*)/.exec(location.search);e=t&&t[1]}try{e=e||"pk.eyJ1IjoidWNmLW1hcGJveCIsImEiOiJja2tyNHQzdnIzYmNnMndwZGI3djNzdjVyIn0.xgCXV9mLZ47q7easx6WLCQ"}catch(t){}try{e=e||process.env.REACT_APP_MAPBOX_ACCESS_TOKEN}catch(n){}return e}v.savedMaps=[];const x=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function b(e){if(!e)return null;const t=e.map,n={getMap:()=>t,getCenter:()=>e.transform.center,getZoom:()=>e.transform.zoom,getBearing:()=>e.transform.bearing,getPitch:()=>e.transform.pitch,getPadding:()=>e.transform.padding,getBounds:()=>e.transform.getBounds(),project:n=>{const o=t.transform;t.transform=e.transform;const r=t.project(n);return t.transform=o,r},unproject:n=>{const o=t.transform;t.transform=e.transform;const r=t.unproject(n);return t.transform=o,r},queryTerrainElevation:(n,o)=>{const r=t.transform;t.transform=e.transform;const s=t.queryTerrainElevation(n,o);return t.transform=r,s},queryRenderedFeatures:(n,o)=>{const r=t.transform;t.transform=e.transform;const s=t.queryRenderedFeatures(n,o);return t.transform=r,s}};for(const o of function(e){const t=new Set;let n=e;for(;n;){for(const o of Object.getOwnPropertyNames(n))"_"!==o[0]&&"function"==typeof e[o]&&"fire"!==o&&"setEventedParent"!==o&&t.add(o);n=Object.getPrototypeOf(n)}return Array.from(t)}(t))o in n||x.includes(o)||(n[o]=t[o].bind(t));return n}const L="undefined"!=typeof document?o.useLayoutEffect:o.useEffect,S=["baseApiUrl","maxParallelImageRequests","workerClass","workerCount","workerUrl"];const E=o.createContext(null);function C(e,t){const a=(0,o.useContext)(s),[i,c]=(0,o.useState)(null),l=(0,o.useRef)(),{current:u}=(0,o.useRef)({mapLib:null,map:null});(0,o.useEffect)((()=>{const t=e.mapLib;let o,r=!0;return Promise.resolve(t||n.e(842).then(n.t.bind(n,842,23))).then((t=>{if(!r)return;if(!t)throw new Error("Invalid mapLib");const n="Map"in t?t:t.default;if(!n.Map)throw new Error("Invalid mapLib");if(function(e,t){for(const o of S)o in t&&(e[o]=t[o]);const{RTLTextPlugin:n="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js"}=t;n&&e.getRTLTextPluginStatus&&"unavailable"===e.getRTLTextPluginStatus()&&e.setRTLTextPlugin(n,(e=>{e&&console.error(e)}),!0)}(n,e),n.supported&&!n.supported(e))throw new Error("Map is not supported by this browser");e.reuseMaps&&(o=v.reuse(e,l.current)),o||(o=new v(n.Map,e,l.current)),u.map=b(o),u.mapLib=n,c(o),null==a||a.onMapMount(u.map,e.id)})).catch((t=>{const{onError:n}=e;n?n({type:"error",target:null,error:t}):console.error(t)})),()=>{r=!1,o&&(null==a||a.onMapUnmount(e.id),e.reuseMaps?o.recycle():o.destroy())}}),[]),L((()=>{i&&i.setProps(e)})),(0,o.useImperativeHandle)(t,(()=>u.map),[i]);const p=(0,o.useMemo)((()=>Object.assign({position:"relative",width:"100%",height:"100%"},e.style)),[e.style]);return(0,r.jsx)("div",{id:e.id,ref:l,style:p,children:i&&(0,r.jsx)(E.Provider,{value:u,children:(0,r.jsx)("div",{"mapboxgl-children":"",style:{height:"100%"},children:e.children})})})}const w=o.forwardRef(C);var M=n(961);const j=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function P(e,t){if(!e||!t)return;const n=e.style;for(const o in t){const e=t[o];Number.isFinite(e)&&!j.test(o)?n[o]=e+"px":n[o]=e}}const T=(0,o.memo)((0,o.forwardRef)(((e,t)=>{const{map:n,mapLib:r}=(0,o.useContext)(E),s=(0,o.useRef)({props:e});s.current.props=e;const a=(0,o.useMemo)((()=>{let t=!1;o.Children.forEach(e.children,(e=>{e&&(t=!0)}));const n=Object.assign({},e,{element:t?document.createElement("div"):null}),i=new r.Marker(n);return i.setLngLat([e.longitude,e.latitude]),i.getElement().addEventListener("click",(e=>{null==s.current.props.onClick||s.current.props.onClick({type:"click",target:i,originalEvent:e})})),i.on("dragstart",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDragStart||s.current.props.onDragStart(t)})),i.on("drag",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDrag||s.current.props.onDrag(t)})),i.on("dragend",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDragEnd||s.current.props.onDragEnd(t)})),i}),[]);(0,o.useEffect)((()=>(a.addTo(n.getMap()),()=>{a.remove()})),[]);const{longitude:i,latitude:c,offset:l,style:u,draggable:p=!1,popup:d=null,rotation:m=0,rotationAlignment:f="auto",pitchAlignment:h="auto"}=e;return(0,o.useEffect)((()=>{P(a.getElement(),u)}),[u]),(0,o.useImperativeHandle)(t,(()=>a),[]),a.getLngLat().lng===i&&a.getLngLat().lat===c||a.setLngLat([i,c]),l&&!function(e,t){const n=Array.isArray(e)?e[0]:e?e.x:0,o=Array.isArray(e)?e[1]:e?e.y:0,r=Array.isArray(t)?t[0]:t?t.x:0,s=Array.isArray(t)?t[1]:t?t.y:0;return n===r&&o===s}(a.getOffset(),l)&&a.setOffset(l),a.isDraggable()!==p&&a.setDraggable(p),a.getRotation()!==m&&a.setRotation(m),a.getRotationAlignment()!==f&&a.setRotationAlignment(f),a.getPitchAlignment()!==h&&a.setPitchAlignment(h),a.getPopup()!==d&&a.setPopup(d),(0,M.createPortal)(e.children,a.getElement())})));function R(e){return new Set(e?e.trim().split(/\s+/):[])}const k=(0,o.memo)((0,o.forwardRef)(((e,t)=>{const{map:n,mapLib:r}=(0,o.useContext)(E),s=(0,o.useMemo)((()=>document.createElement("div")),[]),i=(0,o.useRef)({props:e});i.current.props=e;const c=(0,o.useMemo)((()=>{const t=Object.assign({},e),n=new r.Popup(t);return n.setLngLat([e.longitude,e.latitude]),n.once("open",(e=>{null==i.current.props.onOpen||i.current.props.onOpen(e)})),n}),[]);if((0,o.useEffect)((()=>{const e=e=>{null==i.current.props.onClose||i.current.props.onClose(e)};return c.on("close",e),c.setDOMContent(s).addTo(n.getMap()),()=>{c.off("close",e),c.isOpen()&&c.remove()}}),[]),(0,o.useEffect)((()=>{P(c.getElement(),e.style)}),[e.style]),(0,o.useImperativeHandle)(t,(()=>c),[]),c.isOpen()&&(c.getLngLat().lng===e.longitude&&c.getLngLat().lat===e.latitude||c.setLngLat([e.longitude,e.latitude]),e.offset&&!a(c.options.offset,e.offset)&&c.setOffset(e.offset),c.options.anchor===e.anchor&&c.options.maxWidth===e.maxWidth||(c.options.anchor=e.anchor,c.setMaxWidth(e.maxWidth)),c.options.className!==e.className)){const t=R(c.options.className),n=R(e.className);for(const e of t)n.has(e)||c.removeClassName(e);for(const e of n)t.has(e)||c.addClassName(e);c.options.className=e.className}return(0,M.createPortal)(e.children,s)})));function z(e,t,n,r){const s=(0,o.useContext)(E),a=(0,o.useMemo)((()=>e(s)),[]);return(0,o.useEffect)((()=>{const e=r||n||t,o="function"==typeof t&&"function"==typeof n?t:null,i="function"==typeof n?n:"function"==typeof t?t:null,{map:c}=s;return c.hasControl(a)||(c.addControl(a,null==e?void 0:e.position),o&&o(s)),()=>{i&&i(s),c.hasControl(a)&&c.removeControl(a)}}),[]),a}function O(e){const t=z((t=>{let{mapLib:n}=t;return new n.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)})}),{position:e.position});return(0,o.useEffect)((()=>{P(t._controlContainer,e.style)}),[e.style]),null}const A=(0,o.memo)(O);function I(e,t){const n=(0,o.useRef)({props:e}),r=z((t=>{let{mapLib:o}=t;const r=new o.GeolocateControl(e),s=r._setupUI.bind(r);return r._setupUI=e=>{r._container.hasChildNodes()||s(e)},r.on("geolocate",(e=>{null==n.current.props.onGeolocate||n.current.props.onGeolocate(e)})),r.on("error",(e=>{null==n.current.props.onError||n.current.props.onError(e)})),r.on("outofmaxbounds",(e=>{null==n.current.props.onOutOfMaxBounds||n.current.props.onOutOfMaxBounds(e)})),r.on("trackuserlocationstart",(e=>{null==n.current.props.onTrackUserLocationStart||n.current.props.onTrackUserLocationStart(e)})),r.on("trackuserlocationend",(e=>{null==n.current.props.onTrackUserLocationEnd||n.current.props.onTrackUserLocationEnd(e)})),r}),{position:e.position});return n.current.props=e,(0,o.useImperativeHandle)(t,(()=>r),[]),(0,o.useEffect)((()=>{P(r._container,e.style)}),[e.style]),null}const F=(0,o.memo)((0,o.forwardRef)(I));function N(e){const t=z((t=>{let{mapLib:n}=t;return new n.NavigationControl(e)}),{position:e.position});return(0,o.useEffect)((()=>{P(t._container,e.style)}),[e.style]),null}const D=(0,o.memo)(N);function U(e){const t=z((t=>{let{mapLib:n}=t;return new n.ScaleControl(e)}),{position:e.position}),n=(0,o.useRef)(e),r=n.current;n.current=e;const{style:s}=e;return void 0!==e.maxWidth&&e.maxWidth!==r.maxWidth&&(t.options.maxWidth=e.maxWidth),void 0!==e.unit&&e.unit!==r.unit&&t.setUnit(e.unit),(0,o.useEffect)((()=>{P(t._container,s)}),[s]),null}const Z=(0,o.memo)(U);function W(e,t){if(!e)throw new Error(t)}let B=0;function H(e){const t=(0,o.useContext)(E).map.getMap(),n=(0,o.useRef)(e),[,r]=(0,o.useState)(0),s=(0,o.useMemo)((()=>e.id||"jsx-source-"+B++),[]);(0,o.useEffect)((()=>{if(t){const e=()=>setTimeout((()=>r((e=>e+1))),0);return t.on("styledata",e),e(),()=>{if(t.off("styledata",e),t.style&&t.style._loaded&&t.getSource(s)){var n;const e=null==(n=t.getStyle())?void 0:n.layers;if(e)for(const n of e)n.source===s&&t.removeLayer(n.id);t.removeSource(s)}}}}),[t]);let i=t&&t.style&&t.getSource(s);return i?function(e,t,n){W(t.id===n.id,"source id changed"),W(t.type===n.type,"source type changed");let o="",r=0;for(const i in t)"children"===i||"id"===i||a(n[i],t[i])||(o=i,r++);if(!r)return;const s=t.type;"geojson"===s?e.setData(t.data):"image"===s?e.updateImage({url:t.url,coordinates:t.coordinates}):"setCoordinates"in e&&1===r&&"coordinates"===o?e.setCoordinates(t.coordinates):"setUrl"in e&&"url"===o?e.setUrl(t.url):"setTiles"in e&&"tiles"===o?e.setTiles(t.tiles):console.warn("Unable to update prop: "+o)}(i,e,n.current):i=function(e,t,n){if(e.style&&e.style._loaded){const o=Object.assign({},n);return delete o.id,delete o.children,e.addSource(t,o),e.getSource(t)}return null}(t,s,e),n.current=e,i&&o.Children.map(e.children,(e=>e&&(0,o.cloneElement)(e,{source:s})))||null}let q=0;function V(e){const t=(0,o.useContext)(E).map.getMap(),n=(0,o.useRef)(e),[,r]=(0,o.useState)(0),s=(0,o.useMemo)((()=>e.id||"jsx-layer-"+q++),[]);(0,o.useEffect)((()=>{if(t){const e=()=>r((e=>e+1));return t.on("styledata",e),e(),()=>{t.off("styledata",e),t.style&&t.style._loaded&&t.getLayer(s)&&t.removeLayer(s)}}}),[t]);if(t&&t.style&&t.getLayer(s))try{!function(e,t,n,o){if(W(n.id===o.id,"layer id changed"),W(n.type===o.type,"layer type changed"),"custom"===n.type||"custom"===o.type)return;const{layout:r={},paint:s={},filter:i,minzoom:c,maxzoom:l,beforeId:u}=n;if(u!==o.beforeId&&e.moveLayer(t,u),r!==o.layout){const n=o.layout||{};for(const o in r)a(r[o],n[o])||e.setLayoutProperty(t,o,r[o]);for(const o in n)r.hasOwnProperty(o)||e.setLayoutProperty(t,o,void 0)}if(s!==o.paint){const n=o.paint||{};for(const o in s)a(s[o],n[o])||e.setPaintProperty(t,o,s[o]);for(const o in n)s.hasOwnProperty(o)||e.setPaintProperty(t,o,void 0)}a(i,o.filter)||e.setFilter(t,i),c===o.minzoom&&l===o.maxzoom||e.setLayerZoomRange(t,c,l)}(t,s,e,n.current)}catch(i){console.warn(i)}else!function(e,t,n){if(e.style&&e.style._loaded&&(!("source"in n)||e.getSource(n.source))){const o=Object.assign({},n,{id:t});delete o.beforeId,e.addLayer(o,n.beforeId)}}(t,s,e);return n.current=e,null}},8453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>i});var o=n(6540);const r={},s=o.createContext(r);function a(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4129389b.2d7776b0.js b/assets/js/4129389b.2d7776b0.js new file mode 100644 index 00000000..5113d4e8 --- /dev/null +++ b/assets/js/4129389b.2d7776b0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[7597],{7472:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>o,default:()=>d,frontMatter:()=>c,metadata:()=>t,toc:()=>p});const t=JSON.parse('{"id":"api-reference/maplibre/use-map","title":"useMap","description":"The useMap hook allows a custom component to reference the Map that contains it.","source":"@site/../docs/api-reference/maplibre/use-map.md","sourceDirName":"api-reference/maplibre","slug":"/api-reference/maplibre/use-map","permalink":"/react-map-gl/docs/api-reference/maplibre/use-map","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/maplibre/use-map.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"useControl","permalink":"/react-map-gl/docs/api-reference/maplibre/use-control"},"next":{"title":"Types","permalink":"/react-map-gl/docs/api-reference/maplibre/types"}}');var a=r(4848),s=r(8453);const c={},o="useMap",i={},p=[{value:"Signature",id:"signature",level:2},{value:"Source",id:"source",level:2}];function l(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.header,{children:(0,a.jsx)(n.h1,{id:"usemap",children:"useMap"})}),"\n",(0,a.jsxs)(n.p,{children:["The ",(0,a.jsx)(n.code,{children:"useMap"})," hook allows a custom component to reference the ",(0,a.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/maplibre/map",children:"Map"})," that contains it."]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-tsx",children:"import {Map, useMap} from 'react-map-gl/maplibre';\n\nfunction Root() {\n return (\n \n \n \n );\n}\n\nfunction NavigateButton() {\n const {current: map} = useMap();\n\n const onClick = () => {\n map.flyTo({center: [-122.4, 37.8]});\n };\n\n return ;\n}\n"})}),"\n",(0,a.jsxs)(n.p,{children:["When used with the ",(0,a.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/maplibre/map-provider",children:"MapProvider"}),", this hook can also reference maps that are rendered outside of the current component's direct render tree."]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-tsx",children:'import {MapProvider, Map, useMap} from \'react-map-gl/maplibre\';\n\nfunction Root() {\n return (\n \n \n \n \n \n );\n}\n\nfunction NavigateButton() {\n const {myMapA, myMapB} = useMap();\n\n const onClick = () => {\n myMapA.flyTo({center: [-122.4, 37.8]});\n myMapB.flyTo({center: [-74, 40.7]});\n };\n\n return ;\n}\n'})}),"\n",(0,a.jsxs)(n.p,{children:["See a full example ",(0,a.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/master/examples/get-started/hook",children:"here"}),"."]}),"\n",(0,a.jsx)(n.h2,{id:"signature",children:"Signature"}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsx)(n.code,{children:"useMap(): {current?: MapRef, [id: string]: MapRef}"})}),"\n",(0,a.jsxs)(n.p,{children:["The hook returns an object that contains all mounted maps under the closest ",(0,a.jsx)(n.code,{children:"MapProvider"}),". The keys are each map's ",(0,a.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/maplibre/map#id",children:"id"})," and the values are the ",(0,a.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/maplibre/types#mapref",children:"MapRef"}),"."]}),"\n",(0,a.jsxs)(n.p,{children:["If the hook is used inside a decendent of a ",(0,a.jsx)(n.code,{children:"Map"})," component, the returned object also contains a ",(0,a.jsx)(n.code,{children:"current"})," field that references the containing map."]}),"\n",(0,a.jsx)(n.h2,{id:"source",children:"Source"}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsx)(n.a,{href:"https://github.com/visgl/react-map-gl/tree/master/modules/maplibre/src/components/use-map.tsx",children:"use-map.tsx"})})]})}function d(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>c,x:()=>o});var t=r(6540);const a={},s=t.createContext(a);function c(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:c(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/43b8766d.ee5c1594.js b/assets/js/43b8766d.ee5c1594.js deleted file mode 100644 index 6f83dc9e..00000000 --- a/assets/js/43b8766d.ee5c1594.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[4692],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),c=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):u(u({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(i.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=c(n),f=a,d=s["".concat(i,".").concat(f)]||s[f]||m[f]||o;return n?r.createElement(d,u(u({ref:t},p),{},{components:n})):r.createElement(d,u({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,u=new Array(o);u[0]=f;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[s]="string"==typeof e?e:a,u[1]=l;for(var c=2;c{n.d(t,{Z:()=>u});var r=n(7294),a=n(6010);const o={tabItem:"tabItem_Ymn6"};function u(e){var t=e.children,n=e.hidden,u=e.className;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(o.tabItem,u),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>M});var r=n(7462),a=n(7294),o=n(6010),u=n(2466),l=n(6550),i=n(1980),c=n(7392),p=n(12);function s(e){return function(e){var t,n;return null!=(t=null==(n=a.Children.map(e,(function(e){if(!e||(0,a.isValidElement)(e)&&(t=e.props)&&"object"==typeof t&&"value"in t)return e;var t;throw new Error("Docusaurus error: Bad child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:n.filter(Boolean))?t:[]}(e).map((function(e){var t=e.props;return{value:t.value,label:t.label,attributes:t.attributes,default:t.default}}))}function m(e){var t=e.values,n=e.children;return(0,a.useMemo)((function(){var e=null!=t?t:s(n);return function(e){var t=(0,c.l)(e,(function(e,t){return e.value===t.value}));if(t.length>0)throw new Error('Docusaurus error: Duplicate values "'+t.map((function(e){return e.value})).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[t,n])}function f(e){var t=e.value;return e.tabValues.some((function(e){return e.value===t}))}function d(e){var t=e.queryString,n=void 0!==t&&t,r=e.groupId,o=(0,l.k6)(),u=function(e){var t=e.queryString,n=void 0!==t&&t,r=e.groupId;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!r)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=r?r:null}({queryString:n,groupId:r});return[(0,i._X)(u),(0,a.useCallback)((function(e){if(u){var t=new URLSearchParams(o.location.search);t.set(u,e),o.replace(Object.assign({},o.location,{search:t.toString()}))}}),[u,o])]}function b(e){var t,n,r,o,u=e.defaultValue,l=e.queryString,i=void 0!==l&&l,c=e.groupId,s=m(e),b=(0,a.useState)((function(){return function(e){var t,n=e.defaultValue,r=e.tabValues;if(0===r.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!f({value:n,tabValues:r}))throw new Error('Docusaurus error: The has a defaultValue "'+n+'" but none of its children has the corresponding value. Available values are: '+r.map((function(e){return e.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return n}var a=null!=(t=r.find((function(e){return e.default})))?t:r[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:u,tabValues:s})})),v=b[0],h=b[1],g=d({queryString:i,groupId:c}),y=g[0],k=g[1],M=(t=function(e){return e?"docusaurus.tab."+e:null}({groupId:c}.groupId),n=(0,p.Nk)(t),r=n[0],o=n[1],[r,(0,a.useCallback)((function(e){t&&o.set(e)}),[t,o])]),T=M[0],N=M[1],w=function(){var e=null!=y?y:T;return f({value:e,tabValues:s})?e:null}();return(0,a.useLayoutEffect)((function(){w&&h(w)}),[w]),{selectedValue:v,selectValue:(0,a.useCallback)((function(e){if(!f({value:e,tabValues:s}))throw new Error("Can't select invalid tab value="+e);h(e),k(e),N(e)}),[k,N,s]),tabValues:s}}var v=n(2389);const h={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function g(e){var t=e.className,n=e.block,l=e.selectedValue,i=e.selectValue,c=e.tabValues,p=[],s=(0,u.o5)().blockElementScrollPositionUntilNextRender,m=function(e){var t=e.currentTarget,n=p.indexOf(t),r=c[n].value;r!==l&&(s(t),i(r))},f=function(e){var t,n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":var r,a=p.indexOf(e.currentTarget)+1;n=null!=(r=p[a])?r:p[0];break;case"ArrowLeft":var o,u=p.indexOf(e.currentTarget)-1;n=null!=(o=p[u])?o:p[p.length-1]}null==(t=n)||t.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":n},t)},c.map((function(e){var t=e.value,n=e.label,u=e.attributes;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:l===t?0:-1,"aria-selected":l===t,key:t,ref:function(e){return p.push(e)},onKeyDown:f,onClick:m},u,{className:(0,o.Z)("tabs__item",h.tabItem,null==u?void 0:u.className,{"tabs__item--active":l===t})}),null!=n?n:t)})))}function y(e){var t=e.lazy,n=e.children,r=e.selectedValue,o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){var u=o.find((function(e){return e.props.value===r}));return u?(0,a.cloneElement)(u,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map((function(e,t){return(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r})})))}function k(e){var t=b(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",h.tabList)},a.createElement(g,(0,r.Z)({},e,t)),a.createElement(y,(0,r.Z)({},e,t)))}function M(e){var t=(0,v.Z)();return a.createElement(k,(0,r.Z)({key:String(t)},e))}},9522:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>m,contentTitle:()=>p,default:()=>v,frontMatter:()=>c,metadata:()=>s,toc:()=>f});var r=n(7462),a=n(3366),o=(n(7294),n(3905)),u=n(4866),l=n(5162),i=["components"],c={},p="useMap",s={unversionedId:"api-reference/use-map",id:"api-reference/use-map",title:"useMap",description:"The useMap hook allows a custom component to reference the Map that contains it.",source:"@site/../docs/api-reference/use-map.md",sourceDirName:"api-reference",slug:"/api-reference/use-map",permalink:"/react-map-gl/docs/api-reference/use-map",draft:!1,editUrl:"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/use-map.md",tags:[],version:"current",frontMatter:{},sidebar:"docsSidebar",previous:{title:"useControl",permalink:"/react-map-gl/docs/api-reference/use-control"},next:{title:"Types",permalink:"/react-map-gl/docs/api-reference/types"}},m={},f=[{value:"Signature",id:"signature",level:2},{value:"Source",id:"source",level:2}],d={toc:f},b="wrapper";function v(e){var t=e.components,n=(0,a.Z)(e,i);return(0,o.kt)(b,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"usemap"},"useMap"),(0,o.kt)("p",null,"The ",(0,o.kt)("inlineCode",{parentName:"p"},"useMap")," hook allows a custom component to reference the ",(0,o.kt)("a",{parentName:"p",href:"/react-map-gl/docs/api-reference/map"},"Map")," that contains it."),(0,o.kt)(u.Z,{groupId:"map-library",mdxType:"Tabs"},(0,o.kt)(l.Z,{value:"mapbox",label:"Mapbox",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"import {Map, useMap} from 'react-map-gl';\n\nfunction Root() {\n return (\n \n \n \n );\n}\n\nfunction NavigateButton() {\n const {current: map} = useMap();\n\n const onClick = () => {\n map.flyTo({center: [-122.4, 37.8]});\n };\n\n return ;\n}\n"))),(0,o.kt)(l.Z,{value:"maplibre",label:"Maplibre",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"import {Map, useMap} from 'react-map-gl/maplibre';\n\nfunction Root() {\n return (\n \n \n \n );\n}\n\nfunction NavigateButton() {\n const {current: map} = useMap();\n\n const onClick = () => {\n map.flyTo({center: [-122.4, 37.8]});\n };\n\n return ;\n}\n")))),(0,o.kt)("p",null,"When used with the ",(0,o.kt)("a",{parentName:"p",href:"/react-map-gl/docs/api-reference/map-provider"},"MapProvider"),", this hook can also reference maps that are rendered outside of the current component's direct render tree."),(0,o.kt)(u.Z,{groupId:"map-library",mdxType:"Tabs"},(0,o.kt)(l.Z,{value:"mapbox",label:"Mapbox",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},'import {MapProvider, Map, useMap} from \'react-map-gl\';\n\nfunction Root() {\n return (\n \n \n \n \n \n );\n}\n\nfunction NavigateButton() {\n const {myMapA, myMapB} = useMap();\n\n const onClick = () => {\n myMapA.flyTo({center: [-122.4, 37.8]});\n myMapB.flyTo({center: [-74, 40.7]});\n };\n\n return ;\n}\n'))),(0,o.kt)(l.Z,{value:"maplibre",label:"Maplibre",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},'import {MapProvider, Map, useMap} from \'react-map-gl/maplibre\';\n\nfunction Root() {\n return (\n \n \n \n \n \n );\n}\n\nfunction NavigateButton() {\n const {myMapA, myMapB} = useMap();\n\n const onClick = () => {\n myMapA.flyTo({center: [-122.4, 37.8]});\n myMapB.flyTo({center: [-74, 40.7]});\n };\n\n return ;\n}\n')))),(0,o.kt)("p",null,"See a full example ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/visgl/react-map-gl/tree/7.1-release/examples/get-started/hook"},"here"),"."),(0,o.kt)("h2",{id:"signature"},"Signature"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"useMap(): {current?: MapRef, [id: string]: MapRef}")),(0,o.kt)("p",null,"The hook returns an object that contains all mounted maps under the closest ",(0,o.kt)("inlineCode",{parentName:"p"},"MapProvider"),". The keys are each map's ",(0,o.kt)("a",{parentName:"p",href:"/react-map-gl/docs/api-reference/map#id"},"id")," and the values are the ",(0,o.kt)("a",{parentName:"p",href:"/react-map-gl/docs/api-reference/types#mapref"},"MapRef"),"."),(0,o.kt)("p",null,"If the hook is used inside a decendent of a ",(0,o.kt)("inlineCode",{parentName:"p"},"Map")," component, the returned object also contains a ",(0,o.kt)("inlineCode",{parentName:"p"},"current")," field that references the containing map."),(0,o.kt)("h2",{id:"source"},"Source"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/visgl/react-map-gl/tree/7.1-release/src/components/use-map.tsx"},"use-map.tsx")))}v.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/44f68560.4e20e424.js b/assets/js/44f68560.4e20e424.js new file mode 100644 index 00000000..95918ba1 --- /dev/null +++ b/assets/js/44f68560.4e20e424.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[3640],{2801:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>s,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"api-reference/maplibre/navigation-control","title":"NavigationControl","description":"React component that wraps maplibre-gl\'s NavigationControl class.","source":"@site/../docs/api-reference/maplibre/navigation-control.md","sourceDirName":"api-reference/maplibre","slug":"/api-reference/maplibre/navigation-control","permalink":"/react-map-gl/docs/api-reference/maplibre/navigation-control","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/maplibre/navigation-control.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"Marker","permalink":"/react-map-gl/docs/api-reference/maplibre/marker"},"next":{"title":"Popup","permalink":"/react-map-gl/docs/api-reference/maplibre/popup"}}');var o=r(4848),i=r(8453);const s={},a="NavigationControl",l={},c=[{value:"Properties",id:"properties",level:2},{value:"Reactive Properties",id:"reactive-properties",level:3},{value:"style: CSSProperties",id:"style",level:4},{value:"Other Properties",id:"other-properties",level:3},{value:"position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'",id:"position",level:4},{value:"Source",id:"source",level:2}];function p(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"navigationcontrol",children:"NavigationControl"})}),"\n",(0,o.jsxs)(t.p,{children:["React component that wraps maplibre-gl's ",(0,o.jsx)(t.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/NavigationControl/",children:"NavigationControl"})," class."]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-tsx",children:"import * as React from 'react';\r\nimport {Map, NavigationControl} from 'react-map-gl/maplibre';\r\nimport 'maplibre-gl/dist/maplibre-gl.css';\r\n\r\nfunction App() {\r\n return \r\n \r\n ;\r\n}\n"})}),"\n",(0,o.jsx)(t.h2,{id:"properties",children:"Properties"}),"\n",(0,o.jsx)(t.h3,{id:"reactive-properties",children:"Reactive Properties"}),"\n",(0,o.jsxs)(t.h4,{id:"style",children:[(0,o.jsx)(t.code,{children:"style"}),": CSSProperties"]}),"\n",(0,o.jsx)(t.p,{children:"CSS style override that applies to the control's container."}),"\n",(0,o.jsx)(t.h3,{id:"other-properties",children:"Other Properties"}),"\n",(0,o.jsx)(t.p,{children:"The properties in this section are not reactive. They are only used when the component first mounts."}),"\n",(0,o.jsxs)(t.p,{children:["Any ",(0,o.jsx)(t.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/type-aliases/NavigationControlOptions/",children:"options"})," supported by the ",(0,o.jsx)(t.code,{children:"NavigationControl"})," class, such as"]}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.code,{children:"showCompass"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.code,{children:"showZoom"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.code,{children:"visualizePitch"})}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"Plus the following:"}),"\n",(0,o.jsxs)(t.h4,{id:"position",children:[(0,o.jsx)(t.code,{children:"position"}),": 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'"]}),"\n",(0,o.jsxs)(t.p,{children:["Default: ",(0,o.jsx)(t.code,{children:"'top-right'"})]}),"\n",(0,o.jsx)(t.p,{children:"Placement of the control relative to the map."}),"\n",(0,o.jsx)(t.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{href:"https://github.com/visgl/react-map-gl/tree/master/modules/maplibre/src/components/navigation-control.ts",children:"navigation-control.ts"})})]})}function d(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(p,{...e})}):p(e)}},8453:(e,t,r)=>{r.d(t,{R:()=>s,x:()=>a});var n=r(6540);const o={},i=n.createContext(o);function s(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4650.9aa48463.js b/assets/js/4650.9aa48463.js new file mode 100644 index 00000000..ef9aac5f --- /dev/null +++ b/assets/js/4650.9aa48463.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[4650],{9568:(t,r,e)=>{e.d(r,{ss:()=>_n});var n="delete",i=32,o=31,u={};function s(t){t&&(t.value=!0)}function a(){}function c(t){return void 0===t.size&&(t.size=t.__iterate(h)),t.size}function f(t,r){if("number"!=typeof r){var e=r>>>0;if(""+e!==r||4294967295===e)return NaN;r=e}return r<0?c(t)+r:r}function h(){return!0}function p(t,r,e){return(0===t&&!y(t)||void 0!==e&&t<=-e)&&(void 0===r||void 0!==e&&r>=e)}function _(t,r){return v(t,r,0)}function l(t,r){return v(t,r,r)}function v(t,r,e){return void 0===t?e:y(t)?r===1/0?r:0|Math.max(0,r+t):void 0===r||r===t?t:0|Math.min(r,t)}function y(t){return t<0||0===t&&1/t==-1/0}var d="@@__IMMUTABLE_ITERABLE__@@";function w(t){return Boolean(t&&t[d])}var g="@@__IMMUTABLE_KEYED__@@";function m(t){return Boolean(t&&t[g])}var z="@@__IMMUTABLE_INDEXED__@@";function S(t){return Boolean(t&&t[z])}function b(t){return m(t)||S(t)}var I=function(t){return w(t)?t:Y(t)},O=function(t){function r(t){return m(t)?t:Q(t)}return t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r,r}(I),E=function(t){function r(t){return S(t)?t:X(t)}return t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r,r}(I),j=function(t){function r(t){return w(t)&&!b(t)?t:F(t)}return t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r,r}(I);I.Keyed=O,I.Indexed=E,I.Set=j;var q="@@__IMMUTABLE_SEQ__@@";function M(t){return Boolean(t&&t[q])}var D="@@__IMMUTABLE_RECORD__@@";function A(t){return Boolean(t&&t[D])}function k(t){return w(t)||A(t)}var x="@@__IMMUTABLE_ORDERED__@@";function R(t){return Boolean(t&&t[x])}var U="function"==typeof Symbol&&Symbol.iterator,B="@@iterator",K=U||B,C=function(t){this.next=t};function T(t,r,e,n){var i=0===t?r:1===t?e:[r,e];return n?n.value=i:n={value:i,done:!1},n}function L(){return{value:void 0,done:!0}}function P(t){return!!Array.isArray(t)||!!H(t)}function W(t){return t&&"function"==typeof t.next}function N(t){var r=H(t);return r&&r.call(t)}function H(t){var r=t&&(U&&t[U]||t[B]);if("function"==typeof r)return r}C.prototype.toString=function(){return"[Iterator]"},C.KEYS=0,C.VALUES=1,C.ENTRIES=2,C.prototype.inspect=C.prototype.toSource=function(){return this.toString()},C.prototype[K]=function(){return this};var J=Object.prototype.hasOwnProperty;function V(t){return!(!Array.isArray(t)&&"string"!=typeof t)||t&&"object"==typeof t&&Number.isInteger(t.length)&&t.length>=0&&(0===t.length?1===Object.keys(t).length:t.hasOwnProperty(t.length-1))}var Y=function(t){function r(t){return null==t?rt():k(t)?t.toSeq():function(t){var r=it(t);if(r)return(n=H(e=t))&&n===e.entries?r.fromEntrySeq():function(t){var r=H(t);return r&&r===t.keys}(t)?r.toSetSeq():r;var e,n;if("object"==typeof t)return new Z(t);throw new TypeError("Expected Array or collection object of values, or keyed object: "+t)}(t)}return t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r,r.prototype.toSeq=function(){return this},r.prototype.toString=function(){return this.__toString("Seq {","}")},r.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},r.prototype.__iterate=function(t,r){var e=this._cache;if(e){for(var n=e.length,i=0;i!==n;){var o=e[r?n-++i:i++];if(!1===t(o[1],o[0],this))break}return i}return this.__iterateUncached(t,r)},r.prototype.__iterator=function(t,r){var e=this._cache;if(e){var n=e.length,i=0;return new C((function(){if(i===n)return{value:void 0,done:!0};var o=e[r?n-++i:i++];return T(t,o[0],o[1])}))}return this.__iteratorUncached(t,r)},r}(I),Q=function(t){function r(t){return null==t?rt().toKeyedSeq():w(t)?m(t)?t.toSeq():t.fromEntrySeq():A(t)?t.toSeq():et(t)}return t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r,r.prototype.toKeyedSeq=function(){return this},r}(Y),X=function(t){function r(t){return null==t?rt():w(t)?m(t)?t.entrySeq():t.toIndexedSeq():A(t)?t.toSeq().entrySeq():nt(t)}return t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r,r.of=function(){return r(arguments)},r.prototype.toIndexedSeq=function(){return this},r.prototype.toString=function(){return this.__toString("Seq [","]")},r}(Y),F=function(t){function r(t){return(w(t)&&!b(t)?t:X(t)).toSetSeq()}return t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r,r.of=function(){return r(arguments)},r.prototype.toSetSeq=function(){return this},r}(Y);Y.isSeq=M,Y.Keyed=Q,Y.Set=F,Y.Indexed=X,Y.prototype[q]=!0;var G=function(t){function r(t){this._array=t,this.size=t.length}return t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r,r.prototype.get=function(t,r){return this.has(t)?this._array[f(this,t)]:r},r.prototype.__iterate=function(t,r){for(var e=this._array,n=e.length,i=0;i!==n;){var o=r?n-++i:i++;if(!1===t(e[o],o,this))break}return i},r.prototype.__iterator=function(t,r){var e=this._array,n=e.length,i=0;return new C((function(){if(i===n)return{value:void 0,done:!0};var o=r?n-++i:i++;return T(t,o,e[o])}))},r}(X),Z=function(t){function r(t){var r=Object.keys(t).concat(Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t):[]);this._object=t,this._keys=r,this.size=r.length}return t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r,r.prototype.get=function(t,r){return void 0===r||this.has(t)?this._object[t]:r},r.prototype.has=function(t){return J.call(this._object,t)},r.prototype.__iterate=function(t,r){for(var e=this._object,n=this._keys,i=n.length,o=0;o!==i;){var u=n[r?i-++o:o++];if(!1===t(e[u],u,this))break}return o},r.prototype.__iterator=function(t,r){var e=this._object,n=this._keys,i=n.length,o=0;return new C((function(){if(o===i)return{value:void 0,done:!0};var u=n[r?i-++o:o++];return T(t,u,e[u])}))},r}(Q);Z.prototype[x]=!0;var $,tt=function(t){function r(t){this._collection=t,this.size=t.length||t.size}return t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r,r.prototype.__iterateUncached=function(t,r){if(r)return this.cacheResult().__iterate(t,r);var e=N(this._collection),n=0;if(W(e))for(var i;!(i=e.next()).done&&!1!==t(i.value,n++,this););return n},r.prototype.__iteratorUncached=function(t,r){if(r)return this.cacheResult().__iterator(t,r);var e=N(this._collection);if(!W(e))return new C(L);var n=0;return new C((function(){var r=e.next();return r.done?r:T(t,n++,r.value)}))},r}(X);function rt(){return $||($=new G([]))}function et(t){var r=it(t);if(r)return r.fromEntrySeq();if("object"==typeof t)return new Z(t);throw new TypeError("Expected Array or collection object of [k, v] entries, or keyed object: "+t)}function nt(t){var r=it(t);if(r)return r;throw new TypeError("Expected Array or collection object of values: "+t)}function it(t){return V(t)?new G(t):P(t)?new tt(t):void 0}var ot="@@__IMMUTABLE_MAP__@@";function ut(t){return Boolean(t&&t[ot])}function st(t){return ut(t)&&R(t)}function at(t){return Boolean(t&&"function"==typeof t.equals&&"function"==typeof t.hashCode)}function ct(t,r){if(t===r||t!=t&&r!=r)return!0;if(!t||!r)return!1;if("function"==typeof t.valueOf&&"function"==typeof r.valueOf){if((t=t.valueOf())===(r=r.valueOf())||t!=t&&r!=r)return!0;if(!t||!r)return!1}return!!(at(t)&&at(r)&&t.equals(r))}var ft="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(t,r){var e=65535&(t|=0),n=65535&(r|=0);return e*n+((t>>>16)*n+e*(r>>>16)<<16>>>0)|0};function ht(t){return t>>>1&1073741824|3221225471&t}var pt=Object.prototype.valueOf;function _t(t){if(null==t)return lt(t);if("function"==typeof t.hashCode)return ht(t.hashCode(t));var r,e=(r=t).valueOf!==pt&&"function"==typeof r.valueOf?r.valueOf(r):r;if(null==e)return lt(e);switch(typeof e){case"boolean":return e?1108378657:1108378656;case"number":return function(t){if(t!=t||t===1/0)return 0;var r=0|t;r!==t&&(r^=4294967295*t);for(;t>4294967295;)r^=t/=4294967295;return ht(r)}(e);case"string":return e.length>It?function(t){var r=jt[t];void 0===r&&(r=vt(t),Et===Ot&&(Et=0,jt={}),Et++,jt[t]=r);return r}(e):vt(e);case"object":case"function":return function(t){var r;if(mt&&void 0!==(r=gt.get(t)))return r;if(r=t[bt],void 0!==r)return r;if(!dt){if(void 0!==(r=t.propertyIsEnumerable&&t.propertyIsEnumerable[bt]))return r;if(void 0!==(r=function(t){if(t&&t.nodeType>0)switch(t.nodeType){case 1:return t.uniqueID;case 9:return t.documentElement&&t.documentElement.uniqueID}}(t)))return r}if(r=wt(),mt)gt.set(t,r);else{if(void 0!==yt&&!1===yt(t))throw new Error("Non-extensible objects are not allowed as keys.");if(dt)Object.defineProperty(t,bt,{enumerable:!1,configurable:!1,writable:!1,value:r});else if(void 0!==t.propertyIsEnumerable&&t.propertyIsEnumerable===t.constructor.prototype.propertyIsEnumerable)t.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},t.propertyIsEnumerable[bt]=r;else{if(void 0===t.nodeType)throw new Error("Unable to set a non-enumerable property on object.");t[bt]=r}}return r}(e);case"symbol":return function(t){var r=zt[t];if(void 0!==r)return r;return r=wt(),zt[t]=r,r}(e);default:if("function"==typeof e.toString)return vt(e.toString());throw new Error("Value type "+typeof e+" cannot be hashed.")}}function lt(t){return null===t?1108378658:1108378659}function vt(t){for(var r=0,e=0;e=0&&(a.get=function(r,e){return(r=f(this,r))>=0&&ro)return{value:void 0,done:!0};var t=i.next();return n||1===r||t.done?t:T(r,a-1,0===r?void 0:t.value[1],t)}))},a}function Kt(t,r,e,n){var i=Vt(t);return i.__iterateUncached=function(i,o){var u=this;if(o)return this.cacheResult().__iterate(i,o);var s=!0,a=0;return t.__iterate((function(t,o,c){if(!s||!(s=r.call(e,t,o,c)))return a++,i(t,n?o:a-1,u)})),a},i.__iteratorUncached=function(i,o){var u=this;if(o)return this.cacheResult().__iterator(i,o);var s=t.__iterator(2,o),a=!0,c=0;return new C((function(){var t,o,f;do{if((t=s.next()).done)return n||1===i?t:T(i,c++,0===i?void 0:t.value[1],t);var h=t.value;o=h[0],f=h[1],a&&(a=r.call(e,f,o,u))}while(a);return 2===i?t:T(i,o,f,t)}))},i}function Ct(t,r,e){var n=Vt(t);return n.__iterateUncached=function(i,o){if(o)return this.cacheResult().__iterate(i,o);var u=0,s=!1;return function t(a,c){a.__iterate((function(o,a){return(!r||c0}function Wt(t,r,e,n){var i=Vt(t),o=new G(e).map((function(t){return t.size}));return i.size=n?o.max():o.min(),i.__iterate=function(t,r){for(var e,n=this.__iterator(1,r),i=0;!(e=n.next()).done&&!1!==t(e.value,i++,this););return i},i.__iteratorUncached=function(t,i){var o=e.map((function(t){return t=I(t),N(i?t.reverse():t)})),u=0,s=!1;return new C((function(){var e;return s||(e=o.map((function(t){return t.next()})),s=n?e.every((function(t){return t.done})):e.some((function(t){return t.done}))),s?{value:void 0,done:!0}:T(t,u++,r.apply(null,e.map((function(t){return t.value}))))}))},i}function Nt(t,r){return t===r?t:M(t)?r:t.constructor(r)}function Ht(t){if(t!==Object(t))throw new TypeError("Expected [K, V] tuple: "+t)}function Jt(t){return m(t)?O:S(t)?E:j}function Vt(t){return Object.create((m(t)?Q:S(t)?X:F).prototype)}function Yt(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):Y.prototype.cacheResult.call(this)}function Qt(t,r){return void 0===t&&void 0===r?0:void 0===t?1:void 0===r?-1:t>r?1:t0;)r[e]=arguments[e+1];if("function"!=typeof t)throw new TypeError("Invalid merger function: "+t);return gr(this,r,t)}function gr(t,r,e){for(var n=[],i=0;i0;)r[e]=arguments[e+1];return mr(this,r,t)}function Ir(t){for(var r=[],e=arguments.length-1;e-- >0;)r[e]=arguments[e+1];return ar(this,t,Wr(),(function(t){return zr(t,r)}))}function Or(t){for(var r=[],e=arguments.length-1;e-- >0;)r[e]=arguments[e+1];return ar(this,t,Wr(),(function(t){return mr(t,r)}))}function Er(t){var r=this.asMutable();return t(r),r.wasAltered()?r.__ensureOwner(this.__ownerID):this}function jr(){return this.__ownerID?this:this.__ensureOwner(new a)}function qr(){return this.__ensureOwner()}function Mr(){return this.__altered}var Dr=function(t){function r(r){return null==r?Wr():ut(r)&&!R(r)?r:Wr().withMutations((function(e){var n=t(r);Gt(n.size),n.forEach((function(t,r){return e.set(r,t)}))}))}return t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r,r.of=function(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];return Wr().withMutations((function(r){for(var e=0;e=t.length)throw new Error("Missing value for key: "+t[e]);r.set(t[e],t[e+1])}}))},r.prototype.toString=function(){return this.__toString("Map {","}")},r.prototype.get=function(t,r){return this._root?this._root.get(0,void 0,t,r):r},r.prototype.set=function(t,r){return Nr(this,t,r)},r.prototype.remove=function(t){return Nr(this,t,u)},r.prototype.deleteAll=function(t){var r=I(t);return 0===r.size?this:this.withMutations((function(t){r.forEach((function(r){return t.remove(r)}))}))},r.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):Wr()},r.prototype.sort=function(t){return le(Tt(this,t))},r.prototype.sortBy=function(t,r){return le(Tt(this,r,t))},r.prototype.map=function(t,r){var e=this;return this.withMutations((function(n){n.forEach((function(i,o){n.set(o,t.call(r,i,o,e))}))}))},r.prototype.__iterator=function(t,r){return new Cr(this,t,r)},r.prototype.__iterate=function(t,r){var e=this,n=0;return this._root&&this._root.iterate((function(r){return n++,t(r[1],r[0],e)}),r),n},r.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?Pr(this.size,this._root,t,this.__hash):0===this.size?Wr():(this.__ownerID=t,this.__altered=!1,this)},r}(O);Dr.isMap=ut;var Ar=Dr.prototype;Ar[ot]=!0,Ar[n]=Ar.remove,Ar.removeAll=Ar.deleteAll,Ar.setIn=hr,Ar.removeIn=Ar.deleteIn=_r,Ar.update=vr,Ar.updateIn=yr,Ar.merge=Ar.concat=dr,Ar.mergeWith=wr,Ar.mergeDeep=Sr,Ar.mergeDeepWith=br,Ar.mergeIn=Ir,Ar.mergeDeepIn=Or,Ar.withMutations=Er,Ar.wasAltered=Mr,Ar.asImmutable=qr,Ar["@@transducer/init"]=Ar.asMutable=jr,Ar["@@transducer/step"]=function(t,r){return t.set(r[0],r[1])},Ar["@@transducer/result"]=function(t){return t.asImmutable()};var kr=function(t,r){this.ownerID=t,this.entries=r};kr.prototype.get=function(t,r,e,n){for(var i=this.entries,o=0,u=i.length;o=Xr)return function(t,r,e,n){t||(t=new a);for(var i=new Br(t,_t(e),[e,n]),o=0;o>>t)&o),u=this.bitmap;return u&i?this.nodes[Yr(u&i-1)].get(t+5,r,e,n):n},xr.prototype.update=function(t,r,e,n,s,a,c){void 0===e&&(e=_t(n));var f=(0===r?e:e>>>r)&o,h=1<=Fr)return function(t,r,e,n,o){for(var u=0,s=new Array(i),a=0;0!==e;a++,e>>>=1)s[a]=1&e?r[u++]:void 0;return s[n]=o,new Rr(t,u+1,s)}(t,v,p,f,d);if(_&&!d&&2===v.length&&Jr(v[1^l]))return v[1^l];if(_&&d&&1===v.length&&Jr(d))return d;var w=t&&t===this.ownerID,g=_?d?p:p^h:p|h,m=_?d?Qr(v,l,d,w):function(t,r,e){var n=t.length-1;if(e&&r===n)return t.pop(),t;for(var i=new Array(n),o=0,u=0;u>>t)&o,u=this.nodes[i];return u?u.get(t+5,r,e,n):n},Rr.prototype.update=function(t,r,e,n,i,s,a){void 0===e&&(e=_t(n));var c=(0===r?e:e>>>r)&o,f=i===u,h=this.nodes,p=h[c];if(f&&!p)return this;var _=Hr(p,t,r+5,e,n,i,s,a);if(_===p)return this;var l=this.count;if(p){if(!_&&--l>>e)&o,a=(0===e?n:n>>>e)&o,c=s===a?[Vr(t,r,e+5,n,i)]:(u=new Br(r,n,i),s>1&1431655765))+(t>>2&858993459))+(t>>4)&252645135,t+=t>>8,127&(t+=t>>16)}function Qr(t,r,e,n){var i=n?t:Xt(t);return i[r]=e,i}var Xr=8,Fr=16,Gr=8,Zr="@@__IMMUTABLE_LIST__@@";function $r(t){return Boolean(t&&t[Zr])}var te=function(t){function r(r){var e=se();if(null==r)return e;if($r(r))return r;var n=t(r),o=n.size;return 0===o?e:(Gt(o),o>0&&o=0&&t=t.size||r<0)return t.withMutations((function(t){r<0?he(t,r).set(0,e):he(t,0,r+1).set(r,e)}));r+=t._origin;var n=t._tail,i=t._root,o={value:!1};r>=pe(t._capacity)?n=ae(n,t.__ownerID,0,r,e,o):i=ae(i,t.__ownerID,t._level,r,e,o);if(!o.value)return t;if(t.__ownerID)return t._root=i,t._tail=n,t.__hash=void 0,t.__altered=!0,t;return ue(t._origin,t._capacity,t._level,i,n)}(this,t,r)},r.prototype.remove=function(t){return this.has(t)?0===t?this.shift():t===this.size-1?this.pop():this.splice(t,1):this},r.prototype.insert=function(t,r){return this.splice(t,0,r)},r.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=5,this._root=this._tail=this.__hash=void 0,this.__altered=!0,this):se()},r.prototype.push=function(){var t=arguments,r=this.size;return this.withMutations((function(e){he(e,0,r+t.length);for(var n=0;n>>r&o;if(n>=this.array.length)return new ee([],t);var i,u=0===n;if(r>0){var s=this.array[n];if((i=s&&s.removeBefore(t,r-5,e))===s&&u)return this}if(u&&!i)return this;var a=ce(this,t);if(!u)for(var c=0;c>>r&o;if(i>=this.array.length)return this;if(r>0){var u=this.array[i];if((n=u&&u.removeAfter(t,r-5,e))===u&&i===this.array.length-1)return this}var s=ce(this,t);return s.array.splice(i+1),n&&(s.array[i]=n),s};var ne,ie={};function oe(t,r){var e=t._origin,n=t._capacity,o=pe(n),u=t._tail;return s(t._root,t._level,0);function s(t,a,c){return 0===a?function(t,s){var a=s===o?u&&u.array:t&&t.array,c=s>e?0:e-s,f=n-s;f>i&&(f=i);return function(){if(c===f)return ie;var t=r?--f:c++;return a&&a[t]}}(t,c):function(t,o,u){var a,c=t&&t.array,f=u>e?0:e-u>>o,h=1+(n-u>>o);h>i&&(h=i);return function(){for(;;){if(a){var t=a();if(t!==ie)return t;a=null}if(f===h)return ie;var e=r?--h:f++;a=s(c&&c[e],o-5,u+(e<>>e&o,f=t&&c0){var h=t&&t.array[c],p=ae(h,r,e-5,n,i,u);return p===h?t:((a=ce(t,r)).array[c]=p,a)}return f&&t.array[c]===i?t:(u&&s(u),a=ce(t,r),void 0===i&&c===a.array.length-1?a.array.pop():a.array[c]=i,a)}function ce(t,r){return r&&t&&r===t.ownerID?t:new ee(t?t.array.slice():[],r)}function fe(t,r){if(r>=pe(t._capacity))return t._tail;if(r<1<0;)e=e.array[r>>>n&o],n-=5;return e}}function he(t,r,e){void 0!==r&&(r|=0),void 0!==e&&(e|=0);var n=t.__ownerID||new a,i=t._origin,u=t._capacity,s=i+r,c=void 0===e?u:e<0?u+e:i+e;if(s===i&&c===u)return t;if(s>=c)return t.clear();for(var f=t._level,h=t._root,p=0;s+p<0;)h=new ee(h&&h.array.length?[void 0,h]:[],n),p+=1<<(f+=5);p&&(s+=p,i+=p,c+=p,u+=p);for(var _=pe(u),l=pe(c);l>=1<_?new ee([],n):v;if(v&&l>_&&s5;w-=5){var g=_>>>w&o;d=d.array[g]=ce(d.array[g],n)}d.array[_>>>5&o]=v}if(c=l)s-=l,c-=l,f=5,h=null,y=y&&y.removeBefore(n,0,s);else if(s>i||l<_){for(p=0;h;){var m=s>>>f&o;if(m!==l>>>f&o)break;m&&(p+=(1<i&&(h=h.removeBefore(n,f,s-p)),h&&l<_&&(h=h.removeAfter(n,f,l-p)),p&&(s-=p,c-=p)}return t.__ownerID?(t.size=c-s,t._origin=s,t._capacity=c,t._level=f,t._root=h,t._tail=y,t.__hash=void 0,t.__altered=!0,t):ue(s,c,f,h,y)}function pe(t){return t>>5<<5}var _e,le=function(t){function r(t){return null==t?ye():st(t)?t:ye().withMutations((function(r){var e=O(t);Gt(e.size),e.forEach((function(t,e){return r.set(e,t)}))}))}return t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r,r.of=function(){return this(arguments)},r.prototype.toString=function(){return this.__toString("OrderedMap {","}")},r.prototype.get=function(t,r){var e=this._map.get(t);return void 0!==e?this._list.get(e)[1]:r},r.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this.__altered=!0,this):ye()},r.prototype.set=function(t,r){return de(this,t,r)},r.prototype.remove=function(t){return de(this,t,u)},r.prototype.__iterate=function(t,r){var e=this;return this._list.__iterate((function(r){return r&&t(r[1],r[0],e)}),r)},r.prototype.__iterator=function(t,r){return this._list.fromEntrySeq().__iterator(t,r)},r.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var r=this._map.__ensureOwner(t),e=this._list.__ensureOwner(t);return t?ve(r,e,t,this.__hash):0===this.size?ye():(this.__ownerID=t,this.__altered=!1,this._map=r,this._list=e,this)},r}(Dr);function ve(t,r,e,n){var i=Object.create(le.prototype);return i.size=t?t.size:0,i._map=t,i._list=r,i.__ownerID=e,i.__hash=n,i.__altered=!1,i}function ye(){return _e||(_e=ve(Wr(),se()))}function de(t,r,e){var n,o,s=t._map,a=t._list,c=s.get(r),f=void 0!==c;if(e===u){if(!f)return t;a.size>=i&&a.size>=2*s.size?(n=(o=a.filter((function(t,r){return void 0!==t&&c!==r}))).toKeyedSeq().map((function(t){return t[0]})).flip().toMap(),t.__ownerID&&(n.__ownerID=o.__ownerID=t.__ownerID)):(n=s.remove(r),o=c===a.size-1?a.pop():a.set(c,void 0))}else if(f){if(e===a.get(c)[1])return t;n=s,o=a.set(c,[r,e])}else n=s.set(r,a.size),o=a.set(a.size,[r,e]);return t.__ownerID?(t.size=n.size,t._map=n,t._list=o,t.__hash=void 0,t.__altered=!0,t):ve(n,o)}le.isOrderedMap=st,le.prototype[x]=!0,le.prototype[n]=le.prototype.remove;var we="@@__IMMUTABLE_STACK__@@";function ge(t){return Boolean(t&&t[we])}var me=function(t){function r(t){return null==t?Ie():ge(t)?t:Ie().pushAll(t)}return t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r,r.of=function(){return this(arguments)},r.prototype.toString=function(){return this.__toString("Stack [","]")},r.prototype.get=function(t,r){var e=this._head;for(t=f(this,t);e&&t--;)e=e.next;return e?e.value:r},r.prototype.peek=function(){return this._head&&this._head.value},r.prototype.push=function(){var t=arguments;if(0===arguments.length)return this;for(var r=this.size+arguments.length,e=this._head,n=arguments.length-1;n>=0;n--)e={value:t[n],next:e};return this.__ownerID?(this.size=r,this._head=e,this.__hash=void 0,this.__altered=!0,this):be(r,e)},r.prototype.pushAll=function(r){if(0===(r=t(r)).size)return this;if(0===this.size&&ge(r))return r;Gt(r.size);var e=this.size,n=this._head;return r.__iterate((function(t){e++,n={value:t,next:n}}),!0),this.__ownerID?(this.size=e,this._head=n,this.__hash=void 0,this.__altered=!0,this):be(e,n)},r.prototype.pop=function(){return this.slice(1)},r.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):Ie()},r.prototype.slice=function(r,e){if(p(r,e,this.size))return this;var n=_(r,this.size);if(l(e,this.size)!==this.size)return t.prototype.slice.call(this,r,e);for(var i=this.size-n,o=this._head;n--;)o=o.next;return this.__ownerID?(this.size=i,this._head=o,this.__hash=void 0,this.__altered=!0,this):be(i,o)},r.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?be(this.size,this._head,t,this.__hash):0===this.size?Ie():(this.__ownerID=t,this.__altered=!1,this)},r.prototype.__iterate=function(t,r){var e=this;if(r)return new G(this.toArray()).__iterate((function(r,n){return t(r,n,e)}),r);for(var n=0,i=this._head;i&&!1!==t(i.value,n++,this);)i=i.next;return n},r.prototype.__iterator=function(t,r){if(r)return new G(this.toArray()).__iterator(t,r);var e=0,n=this._head;return new C((function(){if(n){var r=n.value;return n=n.next,T(t,e++,r)}return{value:void 0,done:!0}}))},r}(E);me.isStack=ge;var ze,Se=me.prototype;function be(t,r,e,n){var i=Object.create(Se);return i.size=t,i._head=r,i.__ownerID=e,i.__hash=n,i.__altered=!1,i}function Ie(){return ze||(ze=be(0))}Se[we]=!0,Se.shift=Se.pop,Se.unshift=Se.push,Se.unshiftAll=Se.pushAll,Se.withMutations=Er,Se.wasAltered=Mr,Se.asImmutable=qr,Se["@@transducer/init"]=Se.asMutable=jr,Se["@@transducer/step"]=function(t,r){return t.unshift(r)},Se["@@transducer/result"]=function(t){return t.asImmutable()};var Oe="@@__IMMUTABLE_SET__@@";function Ee(t){return Boolean(t&&t[Oe])}function je(t){return Ee(t)&&R(t)}function qe(t,r){if(t===r)return!0;if(!w(r)||void 0!==t.size&&void 0!==r.size&&t.size!==r.size||void 0!==t.__hash&&void 0!==r.__hash&&t.__hash!==r.__hash||m(t)!==m(r)||S(t)!==S(r)||R(t)!==R(r))return!1;if(0===t.size&&0===r.size)return!0;var e=!b(t);if(R(t)){var n=t.entries();return r.every((function(t,r){var i=n.next().value;return i&&ct(i[1],t)&&(e||ct(i[0],r))}))&&n.next().done}var i=!1;if(void 0===t.size)if(void 0===r.size)"function"==typeof t.cacheResult&&t.cacheResult();else{i=!0;var o=t;t=r,r=o}var s=!0,a=r.__iterate((function(r,n){if(e?!t.has(r):i?!ct(r,t.get(n,u)):!ct(t.get(n,u),r))return s=!1,!1}));return s&&t.size===a}function Me(t,r){var e=function(e){t.prototype[e]=r[e]};return Object.keys(r).forEach(e),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(r).forEach(e),t}function De(t){if(!t||"object"!=typeof t)return t;if(!w(t)){if(!rr(t))return t;t=Y(t)}if(m(t)){var r={};return t.__iterate((function(t,e){r[e]=De(t)})),r}var e=[];return t.__iterate((function(t){e.push(De(t))})),e}var Ae=function(t){function r(r){return null==r?Be():Ee(r)&&!R(r)?r:Be().withMutations((function(e){var n=t(r);Gt(n.size),n.forEach((function(t){return e.add(t)}))}))}return t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r,r.of=function(){return this(arguments)},r.fromKeys=function(t){return this(O(t).keySeq())},r.intersect=function(t){return(t=I(t).toArray()).length?xe.intersect.apply(r(t.pop()),t):Be()},r.union=function(t){return(t=I(t).toArray()).length?xe.union.apply(r(t.pop()),t):Be()},r.prototype.toString=function(){return this.__toString("Set {","}")},r.prototype.has=function(t){return this._map.has(t)},r.prototype.add=function(t){return Re(this,this._map.set(t,t))},r.prototype.remove=function(t){return Re(this,this._map.remove(t))},r.prototype.clear=function(){return Re(this,this._map.clear())},r.prototype.map=function(t,r){var e=this,n=!1,i=Re(this,this._map.mapEntries((function(i){var o=i[1],u=t.call(r,o,o,e);return u!==o&&(n=!0),[u,u]}),r));return n?i:this},r.prototype.union=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return 0===(r=r.filter((function(t){return 0!==t.size}))).length?this:0!==this.size||this.__ownerID||1!==r.length?this.withMutations((function(e){for(var n=0;n=0&&r=0&&e>>-15,461845907),r=ft(r<<13|r>>>-13,5),r=r+3864292196^t,r=ft(r^r>>>16,2246822507),r=ft(r^r>>>13,3266489909),r=ht(r^r>>>16),r}(t.__iterate(e?r?function(t,r){n=31*n+tn(_t(t),_t(r))|0}:function(t,r){n=n+tn(_t(t),_t(r))|0}:r?function(t){n=31*n+_t(t)|0}:function(t){n=n+_t(t)|0}),n)}(this))}});var Ne=I.prototype;Ne[d]=!0,Ne[K]=Ne.values,Ne.toJSON=Ne.toArray,Ne.__toStringMapper=er,Ne.inspect=Ne.toSource=function(){return this.toString()},Ne.chain=Ne.flatMap,Ne.contains=Ne.includes,Me(O,{flip:function(){return Nt(this,kt(this))},mapEntries:function(t,r){var e=this,n=0;return Nt(this,this.toSeq().map((function(i,o){return t.call(r,[o,i],n++,e)})).fromEntrySeq())},mapKeys:function(t,r){var e=this;return Nt(this,this.toSeq().flip().map((function(n,i){return t.call(r,n,i,e)})).flip())}});var He=O.prototype;He[g]=!0,He[K]=Ne.entries,He.toJSON=We,He.__toStringMapper=function(t,r){return er(r)+": "+er(t)},Me(E,{toKeyedSeq:function(){return new qt(this,!1)},filter:function(t,r){return Nt(this,Ut(this,t,r,!1))},findIndex:function(t,r){var e=this.findEntry(t,r);return e?e[0]:-1},indexOf:function(t){var r=this.keyOf(t);return void 0===r?-1:r},lastIndexOf:function(t){var r=this.lastKeyOf(t);return void 0===r?-1:r},reverse:function(){return Nt(this,Rt(this,!1))},slice:function(t,r){return Nt(this,Bt(this,t,r,!1))},splice:function(t,r){var e=arguments.length;if(r=Math.max(r||0,0),0===e||2===e&&!r)return this;t=_(t,t<0?this.count():this.size);var n=this.slice(0,t);return Nt(this,1===e?n:n.concat(Xt(arguments,2),this.slice(t+r)))},findLastIndex:function(t,r){var e=this.findLastEntry(t,r);return e?e[0]:-1},first:function(t){return this.get(0,t)},flatten:function(t){return Nt(this,Ct(this,t,!1))},get:function(t,r){return(t=f(this,t))<0||this.size===1/0||void 0!==this.size&&t>this.size?r:this.find((function(r,e){return e===t}),void 0,r)},has:function(t){return(t=f(this,t))>=0&&(void 0!==this.size?this.size===1/0||tr?-1:0}function tn(t,r){return t^r+2654435769+(t<<6)+(t>>2)}Ve.has=Ne.includes,Ve.contains=Ve.includes,Ve.keys=Ve.values,Me(Q,He),Me(X,Je),Me(F,Ve);var rn=function(t){function r(t){return null==t?un():je(t)?t:un().withMutations((function(r){var e=j(t);Gt(e.size),e.forEach((function(t){return r.add(t)}))}))}return t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r,r.of=function(){return this(arguments)},r.fromKeys=function(t){return this(O(t).keySeq())},r.prototype.toString=function(){return this.__toString("OrderedSet {","}")},r}(Ae);rn.isOrderedSet=je;var en,nn=rn.prototype;function on(t,r){var e=Object.create(nn);return e.size=t?t.size:0,e._map=t,e.__ownerID=r,e}function un(){return en||(en=on(ye()))}nn[x]=!0,nn.zip=Je.zip,nn.zipWith=Je.zipWith,nn.zipAll=Je.zipAll,nn.__empty=un,nn.__make=on;var sn=function(t,r){var e;!function(t){if(A(t))throw new Error("Can not call `Record` with an immutable Record as default values. Use a plain javascript object instead.");if(k(t))throw new Error("Can not call `Record` with an immutable Collection as default values. Use a plain javascript object instead.");if(null===t||"object"!=typeof t)throw new Error("Can not call `Record` with a non-object as default values. Use a plain javascript object instead.")}(t);var n=function(o){var u=this;if(o instanceof n)return o;if(!(this instanceof n))return new n(o);if(!e){e=!0;var s=Object.keys(t),a=i._indices={};i._name=r,i._keys=s,i._defaultValues=t;for(var c=0;c2?[]:void 0,{"":t})}function ln(t,r,e,n,i,o){if("string"!=typeof e&&!k(e)&&(V(e)||P(e)||tr(e))){if(~t.indexOf(e))throw new TypeError("Cannot convert circular structure to Immutable");t.push(e),i&&""!==n&&i.push(n);var u=r.call(o,n,Y(e).map((function(n,o){return ln(t,r,n,o,i,e)})),i&&i.slice());return t.pop(),i&&i.pop(),u}return e}function vn(t,r){return S(r)?r.toList():m(r)?r.toMap():r.toSet()}},8453:(t,r,e)=>{e.d(r,{R:()=>u,x:()=>s});var n=e(6540);const i={},o=n.createContext(i);function u(t){const r=n.useContext(o);return n.useMemo((function(){return"function"==typeof t?t(r):{...r,...t}}),[r,t])}function s(t){let r;return r=t.disableParentContext?"function"==typeof t.components?t.components(i):t.components||i:u(t.components),n.createElement(o.Provider,{value:r},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/47f0ae92.4de7f90c.js b/assets/js/47f0ae92.4de7f90c.js new file mode 100644 index 00000000..ec07bb5a --- /dev/null +++ b/assets/js/47f0ae92.4de7f90c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[9589],{2470:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>h,contentTitle:()=>f,default:()=>b,frontMatter:()=>y,metadata:()=>n,toc:()=>g});const n=JSON.parse('{"id":"maplibre/zoom-to-bounds","title":"Zoom to Bounds","description":"","source":"@site/src/examples/maplibre/zoom-to-bounds.mdx","sourceDirName":"maplibre","slug":"/maplibre/zoom-to-bounds","permalink":"/react-map-gl/examples/maplibre/zoom-to-bounds","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"Camera Transition","permalink":"/react-map-gl/examples/maplibre/viewport-animation"}}');var a=o(4848),r=o(8453),i=o(6540),l=(o(5338),o(5490)),s=o(5917);function c(){return(0,a.jsxs)("div",{className:"control-panel",children:[(0,a.jsx)("h3",{children:"Zoom to Bounding Box"}),(0,a.jsx)("p",{children:"Click on a San Fransisco Neighborhood to zoom in."}),(0,a.jsx)("div",{className:"source-link",children:(0,a.jsx)("a",{href:"https://github.com/visgl/react-maplibre/tree/1.0-release/examples/zoom-to-bounds",target:"_new",children:"View Code \u2197"})})]})}const u=i.memo(c);var p=o(1545);const d=Object.assign({},p,{sources:Object.assign({},p.sources,{"sf-neighborhoods":{type:"geojson",data:"https://raw.githubusercontent.com/visgl/react-map-gl/master/examples/.data/feature-example-sf.json"}}),layers:[...p.layers,{id:"sf-neighborhoods-fill",source:"sf-neighborhoods",type:"fill",paint:{"fill-outline-color":"#0040c8","fill-color":"#fff","fill-opacity":0}},{id:"sf-neighborhoods-outline",source:"sf-neighborhoods",type:"line",paint:{"line-width":2,"line-color":"#0080ef"}}]});function m(){const e=(0,i.useRef)();return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(l.T5,{ref:e,initialViewState:{latitude:37.78,longitude:-122.4,zoom:11},mapStyle:d,interactiveLayerIds:["sf-neighborhoods-fill"],onClick:t=>{const o=t.features[0];if(o){const[t,n,a,r]=(0,s.A)(o);e.current.fitBounds([[t,n],[a,r]],{padding:40,duration:1e3})}}}),(0,a.jsx)(u,{})]})}const y={},f="Zoom to Bounds",h={},g=[];function x(e){const t={h1:"h1",header:"header",...(0,r.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.header,{children:(0,a.jsx)(t.h1,{id:"zoom-to-bounds",children:"Zoom to Bounds"})}),"\n","\n",(0,a.jsx)(m,{})]})}function b(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(x,{...e})}):x(e)}},5490:(e,t,o)=>{o.d(t,{T3:()=>O,tG:()=>E,Wd:()=>Z,T5:()=>v,pH:()=>M,ov:()=>P,zD:()=>k,g0:()=>I,kL:()=>F,jG:()=>G,Ay:()=>v,VI:()=>C});var n=o(6540),a=o(4848);const r=n.createContext(null);function i(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let o=0;o{let o=null;"interactive"in e&&(o=Object.assign({},e),delete o.interactive);const n=t[e.ref];if(n){o=o||Object.assign({},e),delete o.ref;for(const e of c)e in n&&(o[e]=n[e])}return o||e}));return Object.assign({},e,{layers:o})}const p={version:8,sources:{},layers:[]},d={mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",click:"onClick",dblclick:"onDblClick",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",mouseout:"onMouseOut",contextmenu:"onContextMenu",touchstart:"onTouchStart",touchend:"onTouchEnd",touchmove:"onTouchMove",touchcancel:"onTouchCancel"},m={movestart:"onMoveStart",move:"onMove",moveend:"onMoveEnd",dragstart:"onDragStart",drag:"onDrag",dragend:"onDragEnd",zoomstart:"onZoomStart",zoom:"onZoom",zoomend:"onZoomEnd",rotatestart:"onRotateStart",rotate:"onRotate",rotateend:"onRotateEnd",pitchstart:"onPitchStart",pitch:"onPitch",pitchend:"onPitchEnd"},y={wheel:"onWheel",boxzoomstart:"onBoxZoomStart",boxzoomend:"onBoxZoomEnd",boxzoomcancel:"onBoxZoomCancel",resize:"onResize",load:"onLoad",render:"onRender",idle:"onIdle",remove:"onRemove",data:"onData",styledata:"onStyleData",sourcedata:"onSourceData",error:"onError"},f=["minZoom","maxZoom","minPitch","maxPitch","maxBounds","projection","renderWorldCopies"],h=["scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate","touchPitch"];class g{constructor(e,t,o){this._map=null,this._internalUpdate=!1,this._hoveredFeatures=null,this._propsedCameraUpdate=null,this._styleComponents={},this._onEvent=e=>{const t=this.props[y[e.type]];t?t(e):"error"===e.type&&console.error(e.error)},this._onCameraEvent=e=>{if(this._internalUpdate)return;e.viewState=this._propsedCameraUpdate||l(this._map.transform);const t=this.props[m[e.type]];t&&t(e)},this._onCameraUpdate=e=>this._internalUpdate?e:(this._propsedCameraUpdate=l(e),s(e,this.props)),this._onPointerEvent=e=>{"mousemove"!==e.type&&"mouseout"!==e.type||this._updateHover(e);const t=this.props[d[e.type]];t&&(this.props.interactiveLayerIds&&"mouseover"!==e.type&&"mouseout"!==e.type&&(e.features=this._hoveredFeatures||this._queryRenderedFeatures(e.point)),t(e),delete e.features)},this._MapClass=e,this.props=t,this._initialize(o)}get map(){return this._map}setProps(e){const t=this.props;this.props=e;const o=this._updateSettings(e,t),n=this._updateSize(e),a=this._updateViewState(e);this._updateStyle(e,t),this._updateStyleComponents(e),this._updateHandlers(e,t),(o||n||a&&!this._map.isMoving())&&this.redraw()}static reuse(e,t){const o=g.savedMaps.pop();if(!o)return null;const n=o.map,a=n.getContainer();for(t.className=a.className;a.childNodes.length>0;)t.appendChild(a.childNodes[0]);n._container=t;const r=n._resizeObserver;r&&(r.disconnect(),r.observe(t)),o.setProps(Object.assign({},e,{styleDiffing:!1})),n.resize();const{initialViewState:i}=e;return i&&(i.bounds?n.fitBounds(i.bounds,Object.assign({},i.fitBoundsOptions,{duration:0})):o._updateViewState(i)),n.isStyleLoaded()?n.fire("load"):n.once("style.load",(()=>n.fire("load"))),n._update(),o}_initialize(e){const{props:t}=this,{mapStyle:o=p}=t,n=Object.assign({},t,t.initialViewState,{container:e,style:u(o)}),a=n.initialViewState||n.viewState||n;if(Object.assign(n,{center:[a.longitude||0,a.latitude||0],zoom:a.zoom||0,pitch:a.pitch||0,bearing:a.bearing||0}),t.gl){const e=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=e,t.gl)}const r=new this._MapClass(n);a.padding&&r.setPadding(a.padding),t.cursor&&(r.getCanvas().style.cursor=t.cursor),r.transformCameraUpdate=this._onCameraUpdate,r.on("style.load",(()=>{this._styleComponents={light:r.getLight(),sky:r.getSky(),projection:null==r.getProjection?void 0:r.getProjection(),terrain:r.getTerrain()},this._updateStyleComponents(this.props)})),r.on("sourcedata",(()=>{this._updateStyleComponents(this.props)}));for(const i in d)r.on(i,this._onPointerEvent);for(const i in m)r.on(i,this._onCameraEvent);for(const i in y)r.on(i,this._onEvent);this._map=r}recycle(){const e=this.map.getContainer().querySelector("[mapboxgl-children]");null==e||e.remove(),g.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){const e=this._map;e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())}_updateSize(e){const{viewState:t}=e;if(t){const e=this._map;if(t.width!==e.transform.width||t.height!==e.transform.height)return e.resize(),!0}return!1}_updateViewState(e){const t=this._map,o=t.transform;if(!t.isMoving()){const n=s(o,e);if(Object.keys(n).length>0)return this._internalUpdate=!0,t.jumpTo(n),this._internalUpdate=!1,!0}return!1}_updateSettings(e,t){const o=this._map;let n=!1;for(const a of f)if(a in e&&!i(e[a],t[a])){n=!0;const t=o["set"+a[0].toUpperCase()+a.slice(1)];null==t||t.call(o,e[a])}return n}_updateStyle(e,t){if(e.cursor!==t.cursor&&(this._map.getCanvas().style.cursor=e.cursor||""),e.mapStyle!==t.mapStyle){const{mapStyle:t=p,styleDiffing:o=!0}=e,n={diff:o};"localIdeographFontFamily"in e&&(n.localIdeographFontFamily=e.localIdeographFontFamily),this._map.setStyle(u(t),n)}}_updateStyleComponents(e){let{light:t,projection:o,sky:n,terrain:a}=e;const r=this._map,l=this._styleComponents;var s;r.style._loaded&&(t&&!i(t,l.light)&&(l.light=t,r.setLight(t)),o&&!i(o,l.projection)&&o!==(null==(s=l.projection)?void 0:s.type)&&(l.projection="string"==typeof o?{type:o}:o,null==r.setProjection||r.setProjection(l.projection)),n&&!i(n,l.sky)&&(l.sky=n,r.setSky(n)),void 0===a||i(a,l.terrain)||a&&!r.getSource(a.source)||(l.terrain=a,r.setTerrain(a)))}_updateHandlers(e,t){const o=this._map;for(const r of h){var n,a;const l=null==(n=e[r])||n;i(l,null==(a=t[r])||a)||(l?o[r].enable(l):o[r].disable())}}_queryRenderedFeatures(e){const t=this._map,{interactiveLayerIds:o=[]}=this.props;try{return t.queryRenderedFeatures(e,{layers:o.filter(t.getLayer.bind(t))})}catch(n){return[]}}_updateHover(e){const{props:t}=this;if(t.interactiveLayerIds&&(t.onMouseMove||t.onMouseEnter||t.onMouseLeave)){var o;const t=e.type,n=(null==(o=this._hoveredFeatures)?void 0:o.length)>0,a=this._queryRenderedFeatures(e.point),r=a.length>0;!r&&n&&(e.type="mouseleave",this._onPointerEvent(e)),this._hoveredFeatures=a,r&&!n&&(e.type="mouseenter",this._onPointerEvent(e)),e.type=t}else this._hoveredFeatures=null}}g.savedMaps=[];const x=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function b(e){if(!e)return null;const t=e.map,o={getMap:()=>t};for(const n of function(e){const t=new Set;let o=e;for(;o;){for(const n of Object.getOwnPropertyNames(o))"_"!==n[0]&&"function"==typeof e[n]&&"fire"!==n&&"setEventedParent"!==n&&t.add(n);o=Object.getPrototypeOf(o)}return Array.from(t)}(t))n in o||x.includes(n)||(o[n]=t[n].bind(t));return o}const _="undefined"!=typeof document?n.useLayoutEffect:n.useEffect;const z=n.createContext(null);function w(e,t){const i=(0,n.useContext)(r),[l,s]=(0,n.useState)(null),c=(0,n.useRef)(),{current:u}=(0,n.useRef)({mapLib:null,map:null});(0,n.useEffect)((()=>{const t=e.mapLib;let n,a=!0;return Promise.resolve(t||o.e(6443).then(o.t.bind(o,6443,23))).then((t=>{if(!a)return;if(!t)throw new Error("Invalid mapLib");const o="Map"in t?t:t.default;if(!o.Map)throw new Error("Invalid mapLib");if(function(e,t){const{RTLTextPlugin:o,maxParallelImageRequests:n,workerCount:a,workerUrl:r}=t;if(o&&e.getRTLTextPluginStatus&&"unavailable"===e.getRTLTextPluginStatus()){const{pluginUrl:t,lazy:n=!0}="string"==typeof o?{pluginUrl:o}:o;e.setRTLTextPlugin(t,(e=>{e&&console.error(e)}),n)}void 0!==n&&e.setMaxParallelImageRequests(n),void 0!==a&&e.setWorkerCount(a),void 0!==r&&e.setWorkerUrl(r)}(o,e),o.supported&&!o.supported(e))throw new Error("Map is not supported by this browser");e.reuseMaps&&(n=g.reuse(e,c.current)),n||(n=new g(o.Map,e,c.current)),u.map=b(n),u.mapLib=o,s(n),null==i||i.onMapMount(u.map,e.id)})).catch((t=>{const{onError:o}=e;o?o({type:"error",target:null,originalEvent:null,error:t}):console.error(t)})),()=>{a=!1,n&&(null==i||i.onMapUnmount(e.id),e.reuseMaps?n.recycle():n.destroy())}}),[]),_((()=>{l&&l.setProps(e)})),(0,n.useImperativeHandle)(t,(()=>u.map),[l]);const p=(0,n.useMemo)((()=>Object.assign({position:"relative",width:"100%",height:"100%"},e.style)),[e.style]);return(0,a.jsx)("div",{id:e.id,ref:c,style:p,children:l&&(0,a.jsx)(z.Provider,{value:u,children:(0,a.jsx)("div",{"mapboxgl-children":"",style:{height:"100%"},children:e.children})})})}const v=n.forwardRef(w);var R=o(961);const S=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function j(e,t){if(!e||!t)return;const o=e.style;for(const n in t){const e=t[n];Number.isFinite(e)&&!S.test(n)?o[n]=e+"px":o[n]=e}}const M=(0,n.memo)((0,n.forwardRef)(((e,t)=>{const{map:o,mapLib:a}=(0,n.useContext)(z),r=(0,n.useRef)({props:e});r.current.props=e;const i=(0,n.useMemo)((()=>{let t=!1;n.Children.forEach(e.children,(e=>{e&&(t=!0)}));const o=Object.assign({},e,{element:t?document.createElement("div"):null}),l=new a.Marker(o);return l.setLngLat([e.longitude,e.latitude]),l.getElement().addEventListener("click",(e=>{null==r.current.props.onClick||r.current.props.onClick({type:"click",target:l,originalEvent:e})})),l.on("dragstart",(e=>{const t=e;t.lngLat=i.getLngLat(),null==r.current.props.onDragStart||r.current.props.onDragStart(t)})),l.on("drag",(e=>{const t=e;t.lngLat=i.getLngLat(),null==r.current.props.onDrag||r.current.props.onDrag(t)})),l.on("dragend",(e=>{const t=e;t.lngLat=i.getLngLat(),null==r.current.props.onDragEnd||r.current.props.onDragEnd(t)})),l}),[]);(0,n.useEffect)((()=>(i.addTo(o.getMap()),()=>{i.remove()})),[]);const{longitude:l,latitude:s,offset:c,style:u,draggable:p=!1,popup:d=null,rotation:m=0,rotationAlignment:y="auto",pitchAlignment:f="auto"}=e;return(0,n.useEffect)((()=>{j(i.getElement(),u)}),[u]),(0,n.useImperativeHandle)(t,(()=>i),[]),i.getLngLat().lng===l&&i.getLngLat().lat===s||i.setLngLat([l,s]),c&&!function(e,t){const o=Array.isArray(e)?e[0]:e?e.x:0,n=Array.isArray(e)?e[1]:e?e.y:0,a=Array.isArray(t)?t[0]:t?t.x:0,r=Array.isArray(t)?t[1]:t?t.y:0;return o===a&&n===r}(i.getOffset(),c)&&i.setOffset(c),i.isDraggable()!==p&&i.setDraggable(p),i.getRotation()!==m&&i.setRotation(m),i.getRotationAlignment()!==y&&i.setRotationAlignment(y),i.getPitchAlignment()!==f&&i.setPitchAlignment(f),i.getPopup()!==d&&i.setPopup(d),(0,R.createPortal)(e.children,i.getElement())})));function L(e){return new Set(e?e.trim().split(/\s+/):[])}const k=(0,n.memo)((0,n.forwardRef)(((e,t)=>{const{map:o,mapLib:a}=(0,n.useContext)(z),r=(0,n.useMemo)((()=>document.createElement("div")),[]),l=(0,n.useRef)({props:e});l.current.props=e;const s=(0,n.useMemo)((()=>{const t=Object.assign({},e),o=new a.Popup(t);return o.setLngLat([e.longitude,e.latitude]),o.once("open",(e=>{null==l.current.props.onOpen||l.current.props.onOpen(e)})),o}),[]);if((0,n.useEffect)((()=>{const e=e=>{null==l.current.props.onClose||l.current.props.onClose(e)};return s.on("close",e),s.setDOMContent(r).addTo(o.getMap()),()=>{s.off("close",e),s.isOpen()&&s.remove()}}),[]),(0,n.useEffect)((()=>{j(s.getElement(),e.style)}),[e.style]),(0,n.useImperativeHandle)(t,(()=>s),[]),s.isOpen()&&(s.getLngLat().lng===e.longitude&&s.getLngLat().lat===e.latitude||s.setLngLat([e.longitude,e.latitude]),e.offset&&!i(s.options.offset,e.offset)&&s.setOffset(e.offset),s.options.anchor===e.anchor&&s.options.maxWidth===e.maxWidth||(s.options.anchor=e.anchor,s.setMaxWidth(e.maxWidth)),s.options.className!==e.className)){const t=L(s.options.className),o=L(e.className);for(const e of t)o.has(e)||s.removeClassName(e);for(const e of o)t.has(e)||s.addClassName(e);s.options.className=e.className}return(0,R.createPortal)(e.children,r)})));function C(e,t,o,a){const r=(0,n.useContext)(z),i=(0,n.useMemo)((()=>e(r)),[]);return(0,n.useEffect)((()=>{const e=a||o||t,n="function"==typeof t&&"function"==typeof o?t:null,l="function"==typeof o?o:"function"==typeof t?t:null,{map:s}=r;return s.hasControl(i)||(s.addControl(i,null==e?void 0:e.position),n&&n(r)),()=>{l&&l(r),s.hasControl(i)&&s.removeControl(i)}}),[]),i}function N(e){const t=C((t=>{let{mapLib:o}=t;return new o.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)})}),{position:e.position});return(0,n.useEffect)((()=>{j(t._controlContainer,e.style)}),[e.style]),null}const O=(0,n.memo)(N);function H(e,t){const o=(0,n.useRef)({props:e}),a=C((t=>{let{mapLib:n}=t;const a=new n.GeolocateControl(e),r=a._setupUI;return a._setupUI=()=>{a._container.hasChildNodes()||r()},a.on("geolocate",(e=>{null==o.current.props.onGeolocate||o.current.props.onGeolocate(e)})),a.on("error",(e=>{null==o.current.props.onError||o.current.props.onError(e)})),a.on("outofmaxbounds",(e=>{null==o.current.props.onOutOfMaxBounds||o.current.props.onOutOfMaxBounds(e)})),a.on("trackuserlocationstart",(e=>{null==o.current.props.onTrackUserLocationStart||o.current.props.onTrackUserLocationStart(e)})),a.on("trackuserlocationend",(e=>{null==o.current.props.onTrackUserLocationEnd||o.current.props.onTrackUserLocationEnd(e)})),a}),{position:e.position});return o.current.props=e,(0,n.useImperativeHandle)(t,(()=>a),[]),(0,n.useEffect)((()=>{j(a._container,e.style)}),[e.style]),null}const E=(0,n.memo)((0,n.forwardRef)(H));function B(e){const t=C((t=>{let{mapLib:o}=t;return new o.NavigationControl(e)}),{position:e.position});return(0,n.useEffect)((()=>{j(t._container,e.style)}),[e.style]),null}const P=(0,n.memo)(B);function W(e){const t=C((t=>{let{mapLib:o}=t;return new o.ScaleControl(e)}),{position:e.position}),o=(0,n.useRef)(e),a=o.current;o.current=e;const{style:r}=e;return void 0!==e.maxWidth&&e.maxWidth!==a.maxWidth&&(t.options.maxWidth=e.maxWidth),void 0!==e.unit&&e.unit!==a.unit&&t.setUnit(e.unit),(0,n.useEffect)((()=>{j(t._container,r)}),[r]),null}const I=(0,n.memo)(W);function T(e){const t=C((t=>{let{mapLib:o}=t;return new o.TerrainControl(e)}),{position:e.position});return(0,n.useEffect)((()=>{j(t._container,e.style)}),[e.style]),null}const G=(0,n.memo)(T);function U(e,t){if(!e)throw new Error(t)}let A=0;function F(e){const t=(0,n.useContext)(z).map.getMap(),o=(0,n.useRef)(e),[,a]=(0,n.useState)(0),r=(0,n.useMemo)((()=>e.id||"jsx-source-"+A++),[]);(0,n.useEffect)((()=>{if(t){const e=()=>setTimeout((()=>a((e=>e+1))),0);return t.on("styledata",e),e(),()=>{if(t.off("styledata",e),t.style&&t.style._loaded&&t.getSource(r)){var o;const e=null==(o=t.getStyle())?void 0:o.layers;if(e)for(const o of e)o.source===r&&t.removeLayer(o.id);t.removeSource(r)}}}}),[t]);let l=t&&t.style&&t.getSource(r);return l?function(e,t,o){U(t.id===o.id,"source id changed"),U(t.type===o.type,"source type changed");let n="",a=0;for(const l in t)"children"===l||"id"===l||i(o[l],t[l])||(n=l,a++);if(!a)return;const r=t.type;if("geojson"===r)e.setData(t.data);else if("image"===r)e.updateImage({url:t.url,coordinates:t.coordinates});else switch(n){case"coordinates":null==e.setCoordinates||e.setCoordinates(t.coordinates);break;case"url":null==e.setUrl||e.setUrl(t.url);break;case"tiles":null==e.setTiles||e.setTiles(t.tiles);break;default:console.warn("Unable to update prop: "+n)}}(l,e,o.current):l=function(e,t,o){if(e.style&&e.style._loaded){const n=Object.assign({},o);return delete n.id,delete n.children,e.addSource(t,n),e.getSource(t)}return null}(t,r,e),o.current=e,l&&n.Children.map(e.children,(e=>e&&(0,n.cloneElement)(e,{source:r})))||null}let D=0;function Z(e){const t=(0,n.useContext)(z).map.getMap(),o=(0,n.useRef)(e),[,a]=(0,n.useState)(0),r=(0,n.useMemo)((()=>e.id||"jsx-layer-"+D++),[]);(0,n.useEffect)((()=>{if(t){const e=()=>a((e=>e+1));return t.on("styledata",e),e(),()=>{t.off("styledata",e),t.style&&t.style._loaded&&t.getLayer(r)&&t.removeLayer(r)}}}),[t]);if(t&&t.style&&t.getLayer(r))try{!function(e,t,o,n){if(U(o.id===n.id,"layer id changed"),U(o.type===n.type,"layer type changed"),"custom"===o.type||"custom"===n.type)return;const{layout:a={},paint:r={},filter:l,minzoom:s,maxzoom:c,beforeId:u}=o;if(u!==n.beforeId&&e.moveLayer(t,u),a!==n.layout){const o=n.layout||{};for(const n in a)i(a[n],o[n])||e.setLayoutProperty(t,n,a[n]);for(const n in o)a.hasOwnProperty(n)||e.setLayoutProperty(t,n,void 0)}if(r!==n.paint){const o=n.paint||{};for(const n in r)i(r[n],o[n])||e.setPaintProperty(t,n,r[n]);for(const n in o)r.hasOwnProperty(n)||e.setPaintProperty(t,n,void 0)}i(l,n.filter)||e.setFilter(t,l),s===n.minzoom&&c===n.maxzoom||e.setLayerZoomRange(t,s,c)}(t,r,e,o.current)}catch(l){console.warn(l)}else!function(e,t,o){if(e.style&&e.style._loaded&&(!("source"in o)||e.getSource(o.source))){const n=Object.assign({},o,{id:t});delete n.beforeId,e.addLayer(n,o.beforeId)}}(t,r,e);return o.current=e,null}},5917:(e,t,o)=>{o.d(t,{A:()=>r});var n=o(2820);function a(e){var t=[1/0,1/0,-1/0,-1/0];return(0,n.Fh)(e,(function(e){t[0]>e[0]&&(t[0]=e[0]),t[1]>e[1]&&(t[1]=e[1]),t[2]{e.exports=JSON.parse('{"version":8,"name":"Positron","metadata":{},"sources":{"carto":{"type":"vector","url":"https://tiles.basemaps.cartocdn.com/vector/carto.streets/v1/tiles.json"}},"sprite":"https://tiles.basemaps.cartocdn.com/gl/positron-gl-style/sprite","glyphs":"https://tiles.basemaps.cartocdn.com/fonts/{fontstack}/{range}.pbf","layers":[{"id":"background","type":"background","layout":{"visibility":"visible"},"paint":{"background-color":"#fafaf8","background-opacity":1}},{"id":"landcover","type":"fill","source":"carto","source-layer":"landcover","filter":["any",["==","class","wood"],["==","class","grass"],["==","subclass","recreation_ground"]],"paint":{"fill-color":{"stops":[[8,"rgba(234, 241, 233, 0.5)"],[9,"rgba(234, 241, 233, 0.5)"],[11,"rgba(234, 241, 233, 0.5)"],[13,"rgba(234, 241, 233, 0.5)"],[15,"rgba(234, 241, 233, 0.5)"]]},"fill-opacity":1}},{"id":"park_national_park","type":"fill","source":"carto","source-layer":"park","minzoom":9,"filter":["all",["==","class","national_park"]],"layout":{"visibility":"visible"},"paint":{"fill-color":{"stops":[[8,"rgba(234, 241, 233, 0.5)"],[9,"rgba(234, 241, 233, 0.5)"],[11,"rgba(234, 241, 233, 0.5)"],[13,"rgba(234, 241, 233, 0.5)"],[15,"rgba(234, 241, 233, 0.5)"]]},"fill-opacity":1,"fill-translate-anchor":"map"}},{"id":"park_nature_reserve","type":"fill","source":"carto","source-layer":"park","minzoom":0,"filter":["all",["==","class","nature_reserve"]],"layout":{"visibility":"visible"},"paint":{"fill-color":{"stops":[[8,"rgba(234, 241, 233, 0.5)"],[9,"rgba(234, 241, 233, 0.5)"],[11,"rgba(234, 241, 233, 0.5)"],[13,"rgba(234, 241, 233, 0.5)"],[15,"rgba(234, 241, 233, 0.5)"]]},"fill-antialias":true,"fill-opacity":{"stops":[[6,0.7],[9,0.9]]}}},{"id":"landuse_residential","type":"fill","source":"carto","source-layer":"landuse","minzoom":6,"filter":["any",["==","class","residential"]],"paint":{"fill-color":{"stops":[[5,"rgba(237, 237, 237, 0.5)"],[8,"rgba(237, 237, 237, 0.45)"],[9,"rgba(237, 237, 237, 0.4)"],[11,"rgba(237, 237, 237, 0.35)"],[13,"rgba(237, 237, 237, 0.3)"],[15,"rgba(237, 237, 237, 0.25)"],[16,"rgba(237, 237, 237, 0.25)"]]},"fill-opacity":{"stops":[[6,0.6],[9,1]]}}},{"id":"landuse","type":"fill","source":"carto","source-layer":"landuse","filter":["any",["==","class","cemetery"],["==","class","stadium"]],"paint":{"fill-color":{"stops":[[8,"rgba(234, 241, 233, 0.5)"],[9,"rgba(234, 241, 233, 0.5)"],[11,"rgba(234, 241, 233, 0.5)"],[13,"rgba(234, 241, 233, 0.5)"],[15,"rgba(234, 241, 233, 0.5)"]]}}},{"id":"waterway","type":"line","source":"carto","source-layer":"waterway","paint":{"line-color":"#d1dbdf","line-width":{"stops":[[8,0.5],[9,1],[15,2],[16,3]]}}},{"id":"boundary_county","type":"line","source":"carto","source-layer":"boundary","minzoom":9,"maxzoom":24,"filter":["all",["==","admin_level",6],["==","maritime",0]],"paint":{"line-color":{"stops":[[4,"#ead5d7"],[5,"#ead5d7"],[6,"#e1c5c7"]]},"line-width":{"stops":[[4,0.5],[7,1]]},"line-dasharray":{"stops":[[6,[1]],[7,[2,2]]]}}},{"id":"boundary_state","type":"line","source":"carto","source-layer":"boundary","minzoom":4,"filter":["all",["==","admin_level",4],["==","maritime",0]],"paint":{"line-color":{"stops":[[4,"#ead5d7"],[5,"#ead5d7"],[6,"#e1c5c7"]]},"line-width":{"stops":[[4,0.5],[7,1],[8,1],[9,1.2]]},"line-dasharray":{"stops":[[6,[1]],[7,[2,2]]]}}},{"id":"water","type":"fill","source":"carto","source-layer":"water","minzoom":0,"maxzoom":24,"filter":["all",["==","$type","Polygon"]],"layout":{"visibility":"visible"},"paint":{"fill-color":"#d4dadc","fill-antialias":true,"fill-translate-anchor":"map","fill-opacity":1}},{"id":"water_shadow","type":"fill","source":"carto","source-layer":"water","minzoom":0,"filter":["all",["==","$type","Polygon"]],"layout":{"visibility":"visible"},"paint":{"fill-color":"transparent","fill-antialias":true,"fill-translate-anchor":"map","fill-opacity":1,"fill-translate":{"stops":[[0,[0,2]],[6,[0,1]],[14,[0,1]],[17,[0,2]]]}}},{"id":"aeroway-runway","type":"line","source":"carto","source-layer":"aeroway","minzoom":12,"filter":["all",["==","class","runway"]],"layout":{"line-cap":"square"},"paint":{"line-width":{"stops":[[11,1],[13,4],[14,6],[15,8],[16,10]]},"line-color":"#e8e8e8"}},{"id":"aeroway-taxiway","type":"line","source":"carto","source-layer":"aeroway","minzoom":13,"filter":["all",["==","class","taxiway"]],"paint":{"line-color":"#e8e8e8","line-width":{"stops":[[13,0.5],[14,1],[15,2],[16,4]]}}},{"id":"waterway_label","type":"symbol","source":"carto","source-layer":"waterway","filter":["all",["has","name"],["==","class","river"]],"layout":{"text-field":"{name_en}","text-font":["Montserrat Regular Italic","Open Sans Italic","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"symbol-placement":"line","symbol-spacing":300,"symbol-avoid-edges":false,"text-size":{"stops":[[9,8],[10,9]]},"text-padding":2,"text-pitch-alignment":"auto","text-rotation-alignment":"auto","text-offset":{"stops":[[6,[0,-0.2]],[11,[0,-0.4]],[12,[0,-0.6]]]},"text-letter-spacing":0,"text-keep-upright":true},"paint":{"text-color":"#7a96a0","text-halo-color":"#f5f5f3","text-halo-width":1}},{"id":"tunnel_service_case","type":"line","source":"carto","source-layer":"transportation","minzoom":15,"maxzoom":24,"filter":["all",["==","class","service"],["==","brunnel","tunnel"]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[15,1],[16,3],[17,6],[18,8]]},"line-opacity":1,"line-color":"#ddd"}},{"id":"tunnel_minor_case","type":"line","source":"carto","source-layer":"transportation","minzoom":13,"maxzoom":24,"filter":["all",["==","class","minor"],["==","brunnel","tunnel"]],"layout":{"line-cap":"butt","line-join":"miter"},"paint":{"line-width":{"stops":[[11,0.5],[12,0.5],[14,2],[15,4],[16,6],[17,10],[18,14]]},"line-opacity":1,"line-color":"#ddd"}},{"id":"tunnel_sec_case","type":"line","source":"carto","source-layer":"transportation","minzoom":11,"maxzoom":24,"filter":["all",["in","class","secondary","tertiary"],["==","brunnel","tunnel"]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[11,0.5],[12,1],[13,2],[14,5],[15,6],[16,8],[17,12],[18,16]]},"line-opacity":1,"line-color":"#ddd"}},{"id":"tunnel_pri_case","type":"line","source":"carto","source-layer":"transportation","minzoom":8,"maxzoom":24,"filter":["all",["==","class","primary"],["!=","ramp",1],["==","brunnel","tunnel"]],"layout":{"line-cap":"butt","line-join":"round"},"paint":{"line-width":{"stops":[[6,0.5],[7,0.8],[8,1],[11,3],[13,4],[14,6],[15,8],[16,10],[17,14],[18,18]]},"line-opacity":{"stops":[[5,0.5],[7,1]]},"line-color":"#ddd"}},{"id":"tunnel_trunk_case","type":"line","source":"carto","source-layer":"transportation","minzoom":5,"maxzoom":24,"filter":["all",["==","class","trunk"],["!=","ramp",1],["==","brunnel","tunnel"]],"layout":{"line-cap":"butt","line-join":"round","visibility":"visible"},"paint":{"line-width":{"stops":[[6,0.5],[7,0.8],[8,1],[11,3],[13,4],[14,6],[15,8],[16,10],[17,14],[18,18]]},"line-opacity":{"stops":[[5,0.5],[7,1]]},"line-color":"#ddd"}},{"id":"tunnel_mot_case","type":"line","source":"carto","source-layer":"transportation","minzoom":5,"maxzoom":24,"filter":["all",["==","class","motorway"],["!=","ramp",1],["==","brunnel","tunnel"]],"layout":{"line-cap":"butt","line-join":"round"},"paint":{"line-width":{"stops":[[6,0.5],[7,0.8],[8,1],[11,3],[12,4],[13,5],[14,7],[15,9],[16,11],[17,13],[18,22]]},"line-opacity":{"stops":[[6,0.5],[7,1]]},"line-color":"#ddd"}},{"id":"tunnel_path","type":"line","source":"carto","source-layer":"transportation","minzoom":15,"maxzoom":24,"filter":["all",["==","class","path"],["==","brunnel","tunnel"]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[15,0.5],[16,1],[18,3]]},"line-opacity":1,"line-color":"#d5d5d5","line-dasharray":{"stops":[[15,[2,2]],[18,[3,3]]]}}},{"id":"tunnel_service_fill","type":"line","source":"carto","source-layer":"transportation","minzoom":15,"maxzoom":24,"filter":["all",["==","class","service"],["==","brunnel","tunnel"]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[15,2],[16,2],[17,4],[18,6]]},"line-opacity":1,"line-color":"#eee"}},{"id":"tunnel_minor_fill","type":"line","source":"carto","source-layer":"transportation","minzoom":15,"maxzoom":24,"filter":["all",["==","class","minor"],["==","brunnel","tunnel"]],"layout":{"line-cap":"butt","line-join":"round"},"paint":{"line-width":{"stops":[[15,3],[16,4],[17,8],[18,12]]},"line-opacity":1,"line-color":"rgba(238, 238, 238, 1)"}},{"id":"tunnel_sec_fill","type":"line","source":"carto","source-layer":"transportation","minzoom":13,"maxzoom":24,"filter":["all",["in","class","secondary","tertiary"],["==","brunnel","tunnel"]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[11,2],[13,2],[14,3],[15,4],[16,6],[17,10],[18,14]]},"line-opacity":1,"line-color":"#eee"}},{"id":"tunnel_pri_fill","type":"line","source":"carto","source-layer":"transportation","minzoom":11,"maxzoom":24,"filter":["all",["==","class","primary"],["!=","ramp",1],["==","brunnel","tunnel"]],"layout":{"line-cap":"butt","line-join":"round"},"paint":{"line-width":{"stops":[[11,1],[13,2],[14,4],[15,6],[16,8],[17,12],[18,16]]},"line-opacity":1,"line-color":"#eee"}},{"id":"tunnel_trunk_fill","type":"line","source":"carto","source-layer":"transportation","minzoom":11,"maxzoom":24,"filter":["all",["==","class","trunk"],["!=","ramp",1],["==","brunnel","tunnel"]],"layout":{"line-cap":"round","line-join":"round","visibility":"visible"},"paint":{"line-width":{"stops":[[11,1],[13,2],[14,4],[15,6],[16,8],[17,12],[18,16]]},"line-opacity":1,"line-color":"#eee"}},{"id":"tunnel_mot_fill","type":"line","source":"carto","source-layer":"transportation","minzoom":10,"maxzoom":24,"filter":["all",["==","class","motorway"],["!=","ramp",1],["==","brunnel","tunnel"]],"layout":{"line-cap":"butt","line-join":"round"},"paint":{"line-width":{"stops":[[10,1],[12,2],[13,3],[14,5],[15,7],[16,9],[17,11],[18,20]]},"line-opacity":1,"line-color":"#eee"}},{"id":"tunnel_rail","type":"line","source":"carto","source-layer":"transportation","minzoom":13,"filter":["all",["==","class","rail"],["==","brunnel","tunnel"]],"layout":{"visibility":"visible","line-join":"round"},"paint":{"line-color":"#dddddd","line-width":{"base":1.3,"stops":[[13,0.5],[14,1],[15,1],[16,3],[21,7]]},"line-opacity":0.5}},{"id":"tunnel_rail_dash","type":"line","source":"carto","source-layer":"transportation","minzoom":15,"filter":["all",["==","class","rail"],["==","brunnel","tunnel"]],"layout":{"visibility":"visible","line-join":"round"},"paint":{"line-color":"#ffffff","line-width":{"base":1.3,"stops":[[15,0.5],[16,1],[20,5]]},"line-dasharray":{"stops":[[15,[5,5]],[16,[6,6]]]},"line-opacity":0.5}},{"id":"road_service_case","type":"line","source":"carto","source-layer":"transportation","minzoom":15,"maxzoom":24,"filter":["all",["==","class","service"],["!has","brunnel"]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[15,1],[16,3],[17,6],[18,8]]},"line-opacity":1,"line-color":"#ddd"}},{"id":"road_minor_case","type":"line","source":"carto","source-layer":"transportation","minzoom":13,"maxzoom":24,"filter":["all",["==","class","minor"],["!has","brunnel"]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[11,0.5],[12,0.5],[14,2],[15,3],[16,4.3],[17,10],[18,14]]},"line-opacity":1,"line-color":{"stops":[[13,"#e6e6e6"],[15.7,"#e6e6e6"],[16,"#ddd"]]}}},{"id":"road_pri_case_ramp","type":"line","source":"carto","source-layer":"transportation","minzoom":12,"maxzoom":24,"filter":["all",["==","class","primary"],["==","ramp",1]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[12,2],[13,3],[14,4],[15,5],[16,8],[17,10]]},"line-opacity":{"stops":[[5,0.5],[7,1]]},"line-color":"#ddd"}},{"id":"road_trunk_case_ramp","type":"line","source":"carto","source-layer":"transportation","minzoom":12,"maxzoom":24,"filter":["all",["==","class","trunk"],["==","ramp",1]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[12,2],[13,3],[14,4],[15,5],[16,8],[17,10]]},"line-opacity":1,"line-color":{"stops":[[12,"#e6e6e6"],[14,"#ddd"]]}}},{"id":"road_mot_case_ramp","type":"line","source":"carto","source-layer":"transportation","minzoom":12,"maxzoom":24,"filter":["all",["==","class","motorway"],["==","ramp",1]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[12,2],[13,3],[14,4],[15,5],[16,8],[17,10]]},"line-opacity":1,"line-color":{"stops":[[12,"#e6e6e6"],[14,"#ddd"]]}}},{"id":"road_sec_case_noramp","type":"line","source":"carto","source-layer":"transportation","minzoom":11,"maxzoom":24,"filter":["all",["in","class","secondary","tertiary"],["!has","brunnel"]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[11,0.5],[12,1.5],[13,3],[14,5],[15,6],[16,8],[17,12],[18,16]]},"line-opacity":1,"line-color":{"stops":[[11,"#e6e6e6"],[12.99,"#e6e6e6"],[13,"#ddd"]]}}},{"id":"road_pri_case_noramp","type":"line","source":"carto","source-layer":"transportation","minzoom":7,"maxzoom":24,"filter":["all",["==","class","primary"],["!=","ramp",1],["!has","brunnel"]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[6,0.5],[7,0.8],[8,1],[11,3],[13,4],[14,6],[15,8],[16,10],[17,14],[18,18]]},"line-opacity":{"stops":[[5,0.5],[7,1]]},"line-color":{"stops":[[7,"#e6e6e6"],[12,"#ddd"]]}}},{"id":"road_trunk_case_noramp","type":"line","source":"carto","source-layer":"transportation","minzoom":5,"maxzoom":24,"filter":["all",["==","class","trunk"],["!=","ramp",1],["!has","brunnel"]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[6,0.5],[7,0.8],[8,1],[11,3],[13,4],[14,6],[15,8],[16,10],[17,14],[18,18]]},"line-opacity":{"stops":[[5,0.5],[7,1]]},"line-color":{"stops":[[5,"#e6e6e6"],[12,"#ddd"]]}}},{"id":"road_mot_case_noramp","type":"line","source":"carto","source-layer":"transportation","minzoom":5,"maxzoom":24,"filter":["all",["==","class","motorway"],["!=","ramp",1],["!has","brunnel"]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[6,0.5],[7,0.7],[8,0.8],[11,3],[12,4],[13,5],[14,7],[15,9],[16,11],[17,13],[18,22]]},"line-opacity":{"stops":[[6,0.5],[7,1]]},"line-color":{"stops":[[5,"#e6e6e6"],[12,"#ddd"]]}}},{"id":"road_path","type":"line","source":"carto","source-layer":"transportation","minzoom":15,"maxzoom":24,"filter":["all",["in","class","path","track"],["!has","brunnel"]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[15,0.5],[16,1],[18,3]]},"line-opacity":1,"line-color":"#d5d5d5","line-dasharray":{"stops":[[15,[2,2]],[18,[3,3]]]}}},{"id":"road_service_fill","type":"line","source":"carto","source-layer":"transportation","minzoom":15,"maxzoom":24,"filter":["all",["==","class","service"],["!has","brunnel"]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[15,2],[16,2],[17,4],[18,6]]},"line-opacity":1,"line-color":"#fdfdfd"}},{"id":"road_minor_fill","type":"line","source":"carto","source-layer":"transportation","minzoom":15,"maxzoom":24,"filter":["all",["==","class","minor"],["!has","brunnel"]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[15,3],[16,4],[17,8],[18,12]]},"line-opacity":1,"line-color":"#fdfdfd"}},{"id":"road_pri_fill_ramp","type":"line","source":"carto","source-layer":"transportation","minzoom":12,"maxzoom":24,"filter":["all",["==","class","primary"],["==","ramp",1]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[12,1],[13,1.5],[14,2],[15,3],[16,6],[17,8]]},"line-opacity":1,"line-color":"#fff"}},{"id":"road_trunk_fill_ramp","type":"line","source":"carto","source-layer":"transportation","minzoom":12,"maxzoom":24,"filter":["all",["==","class","trunk"],["==","ramp",1]],"layout":{"line-cap":"square","line-join":"round"},"paint":{"line-width":{"stops":[[12,1],[13,1.5],[14,2],[15,3],[16,6],[17,8]]},"line-opacity":1,"line-color":"#fff"}},{"id":"road_mot_fill_ramp","type":"line","source":"carto","source-layer":"transportation","minzoom":12,"maxzoom":24,"filter":["all",["==","class","motorway"],["==","ramp",1]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[12,1],[13,1.5],[14,2],[15,3],[16,6],[17,8]]},"line-opacity":1,"line-color":"#fff"}},{"id":"road_sec_fill_noramp","type":"line","source":"carto","source-layer":"transportation","minzoom":13,"maxzoom":24,"filter":["all",["in","class","secondary","tertiary"],["!has","brunnel"]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[11,2],[13,2],[14,3],[15,4],[16,6],[17,10],[18,14]]},"line-opacity":1,"line-color":"#fff"}},{"id":"road_pri_fill_noramp","type":"line","source":"carto","source-layer":"transportation","minzoom":10,"maxzoom":24,"filter":["all",["==","class","primary"],["!=","ramp",1],["!has","brunnel"]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[10,0.3],[13,2],[14,4],[15,6],[16,8],[17,12],[18,16]]},"line-opacity":1,"line-color":"#fff"}},{"id":"road_trunk_fill_noramp","type":"line","source":"carto","source-layer":"transportation","minzoom":10,"maxzoom":24,"filter":["all",["==","class","trunk"],["!=","ramp",1],["!has","brunnel"]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[11,1],[13,2],[14,4],[15,6],[16,8],[17,12],[18,16]]},"line-opacity":1,"line-color":"#fff"}},{"id":"road_mot_fill_noramp","type":"line","source":"carto","source-layer":"transportation","minzoom":10,"maxzoom":24,"filter":["all",["==","class","motorway"],["!=","ramp",1],["!has","brunnel"]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[10,1],[12,2],[13,3],[14,5],[15,7],[16,9],[17,11],[18,20]]},"line-opacity":1,"line-color":"#fff"}},{"id":"rail","type":"line","source":"carto","source-layer":"transportation","minzoom":13,"filter":["all",["==","class","rail"],["!=","brunnel","tunnel"]],"layout":{"visibility":"visible","line-join":"round"},"paint":{"line-color":"#dddddd","line-width":{"base":1.3,"stops":[[13,0.5],[14,1],[15,1],[16,3],[21,7]]}}},{"id":"rail_dash","type":"line","source":"carto","source-layer":"transportation","minzoom":15,"filter":["all",["==","class","rail"],["!=","brunnel","tunnel"]],"layout":{"visibility":"visible","line-join":"round"},"paint":{"line-color":"#ffffff","line-width":{"base":1.3,"stops":[[15,0.5],[16,1],[20,5]]},"line-dasharray":{"stops":[[15,[5,5]],[16,[6,6]]]}}},{"id":"bridge_service_case","type":"line","source":"carto","source-layer":"transportation","minzoom":15,"maxzoom":24,"filter":["all",["==","class","service"],["==","brunnel","bridge"]],"layout":{"line-cap":"butt","line-join":"round"},"paint":{"line-width":{"stops":[[15,1],[16,3],[17,6],[18,8]]},"line-opacity":1,"line-color":"#ddd"}},{"id":"bridge_minor_case","type":"line","source":"carto","source-layer":"transportation","minzoom":13,"maxzoom":24,"filter":["all",["==","class","minor"],["==","brunnel","bridge"]],"layout":{"line-cap":"butt","line-join":"miter"},"paint":{"line-width":{"stops":[[11,0.5],[12,0.5],[14,2],[15,3],[16,4.3],[17,10],[18,14]]},"line-opacity":1,"line-color":{"stops":[[13,"#e6e6e6"],[15.7,"#e6e6e6"],[16,"#ddd"]]}}},{"id":"bridge_sec_case","type":"line","source":"carto","source-layer":"transportation","minzoom":11,"maxzoom":24,"filter":["all",["in","class","secondary","tertiary"],["==","brunnel","bridge"]],"layout":{"line-cap":"butt","line-join":"miter"},"paint":{"line-width":{"stops":[[11,0.5],[12,1.5],[13,3],[14,5],[15,6],[16,8],[17,12],[18,16]]},"line-opacity":1,"line-color":{"stops":[[11,"#e6e6e6"],[12.99,"#e6e6e6"],[13,"#ddd"]]}}},{"id":"bridge_pri_case","type":"line","source":"carto","source-layer":"transportation","minzoom":8,"maxzoom":24,"filter":["all",["==","class","primary"],["!=","ramp",1],["==","brunnel","bridge"]],"layout":{"line-cap":"butt","line-join":"round"},"paint":{"line-width":{"stops":[[6,0.5],[7,0.8],[8,1],[11,3],[13,4],[14,6],[15,8],[16,10],[17,14],[18,18]]},"line-opacity":{"stops":[[5,0.5],[7,1]]},"line-color":{"stops":[[8,"#e6e6e6"],[12,"#ddd"]]}}},{"id":"bridge_trunk_case","type":"line","source":"carto","source-layer":"transportation","minzoom":5,"maxzoom":24,"filter":["all",["==","class","trunk"],["!=","ramp",1],["==","brunnel","bridge"]],"layout":{"line-cap":"butt","line-join":"round","visibility":"visible"},"paint":{"line-width":{"stops":[[6,0.5],[7,0.8],[8,1],[11,3],[13,4],[14,6],[15,8],[16,10],[17,14],[18,18]]},"line-opacity":{"stops":[[5,0.5],[7,1]]},"line-color":{"stops":[[5,"#e6e6e6"],[12,"#ddd"]]}}},{"id":"bridge_mot_case","type":"line","source":"carto","source-layer":"transportation","minzoom":5,"maxzoom":24,"filter":["all",["==","class","motorway"],["!=","ramp",1],["==","brunnel","bridge"]],"layout":{"line-cap":"butt","line-join":"round"},"paint":{"line-width":{"stops":[[6,0.5],[7,0.8],[8,1],[11,3],[12,4],[13,5],[14,7],[15,9],[16,11],[17,13],[18,22]]},"line-opacity":{"stops":[[6,0.5],[7,1]]},"line-color":{"stops":[[5,"#e6e6e6"],[10,"#ddd"]]}}},{"id":"bridge_path","type":"line","source":"carto","source-layer":"transportation","minzoom":15,"maxzoom":24,"filter":["all",["==","class","path"],["==","brunnel","bridge"]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[15,0.5],[16,1],[18,3]]},"line-opacity":1,"line-color":"#d5d5d5","line-dasharray":{"stops":[[15,[2,2]],[18,[3,3]]]}}},{"id":"bridge_service_fill","type":"line","source":"carto","source-layer":"transportation","minzoom":15,"maxzoom":24,"filter":["all",["==","class","service"],["==","brunnel","bridge"]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[15,2],[16,2],[17,4],[18,6]]},"line-opacity":1,"line-color":"#fdfdfd"}},{"id":"bridge_minor_fill","type":"line","source":"carto","source-layer":"transportation","minzoom":15,"maxzoom":24,"filter":["all",["==","class","minor"],["==","brunnel","bridge"]],"layout":{"line-cap":"butt","line-join":"round"},"paint":{"line-width":{"stops":[[15,3],[16,4],[17,8],[18,12]]},"line-opacity":1,"line-color":"#fdfdfd"}},{"id":"bridge_sec_fill","type":"line","source":"carto","source-layer":"transportation","minzoom":13,"maxzoom":24,"filter":["all",["in","class","secondary","tertiary"],["==","brunnel","bridge"]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-width":{"stops":[[11,2],[13,2],[14,3],[15,4],[16,6],[17,10],[18,14]]},"line-opacity":1,"line-color":"#fff"}},{"id":"bridge_pri_fill","type":"line","source":"carto","source-layer":"transportation","minzoom":11,"maxzoom":24,"filter":["all",["==","class","primary"],["!=","ramp",1],["==","brunnel","bridge"]],"layout":{"line-cap":"butt","line-join":"round"},"paint":{"line-width":{"stops":[[11,1],[13,2],[14,4],[15,6],[16,8],[17,12],[18,16]]},"line-opacity":1,"line-color":"#fff"}},{"id":"bridge_trunk_fill","type":"line","source":"carto","source-layer":"transportation","minzoom":11,"maxzoom":24,"filter":["all",["==","class","trunk"],["!=","ramp",1],["==","brunnel","bridge"]],"layout":{"line-cap":"butt","line-join":"round","visibility":"visible"},"paint":{"line-width":{"stops":[[11,1],[13,2],[14,4],[15,6],[16,8],[17,12],[18,16]]},"line-opacity":1,"line-color":"#fff"}},{"id":"bridge_mot_fill","type":"line","source":"carto","source-layer":"transportation","minzoom":10,"maxzoom":24,"filter":["all",["==","class","motorway"],["!=","ramp",1],["==","brunnel","bridge"]],"layout":{"line-cap":"butt","line-join":"round"},"paint":{"line-width":{"stops":[[10,1],[12,2],[13,3],[14,5],[15,7],[16,9],[17,11],[18,20]]},"line-opacity":1,"line-color":"#fff"}},{"id":"building","type":"fill","source":"carto","source-layer":"building","layout":{"visibility":"visible"},"paint":{"fill-color":{"base":1,"stops":[[15.5,"#dfdfdf"],[16,"#dfdfdf"]]},"fill-antialias":true}},{"id":"building-top","type":"fill","source":"carto","source-layer":"building","layout":{"visibility":"visible"},"paint":{"fill-translate":{"base":1,"stops":[[14,[0,0]],[16,[-2,-2]]]},"fill-outline-color":"#dfdfdf","fill-color":"#ededed","fill-opacity":{"base":1,"stops":[[13,0],[16,1]]}}},{"id":"boundary_country_outline","type":"line","source":"carto","source-layer":"boundary","minzoom":6,"maxzoom":24,"filter":["all",["==","admin_level",2],["==","maritime",0]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-color":"#f3efed","line-opacity":0.5,"line-width":8,"line-offset":0}},{"id":"boundary_country_inner","type":"line","source":"carto","source-layer":"boundary","minzoom":0,"filter":["all",["==","admin_level",2],["==","maritime",0]],"layout":{"line-cap":"round","line-join":"round"},"paint":{"line-color":{"stops":[[4,"#f2e6e7"],[5,"#ebd6d8"],[6,"#ebd6d8"]]},"line-opacity":1,"line-width":{"stops":[[3,1],[6,1.5]]},"line-offset":0}},{"id":"watername_ocean","type":"symbol","source":"carto","source-layer":"water_name","minzoom":0,"maxzoom":5,"filter":["all",["has","name"],["==","$type","Point"],["==","class","ocean"]],"layout":{"text-field":"{name}","symbol-placement":"point","text-size":{"stops":[[0,13],[2,14],[4,18]]},"text-font":["Montserrat Medium Italic","Open Sans Italic","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-line-height":1.2,"text-padding":2,"text-allow-overlap":false,"text-ignore-placement":false,"text-pitch-alignment":"auto","text-rotation-alignment":"auto","text-max-width":6,"text-letter-spacing":0.1},"paint":{"text-color":"#abb6be","text-halo-color":"#d4dadc","text-halo-width":1,"text-halo-blur":0}},{"id":"watername_sea","type":"symbol","source":"carto","source-layer":"water_name","minzoom":5,"filter":["all",["has","name"],["==","$type","Point"],["==","class","sea"]],"layout":{"text-field":"{name}","symbol-placement":"point","text-size":12,"text-font":["Montserrat Medium Italic","Open Sans Italic","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-line-height":1.2,"text-padding":2,"text-allow-overlap":false,"text-ignore-placement":false,"text-pitch-alignment":"auto","text-rotation-alignment":"auto","text-max-width":6,"text-letter-spacing":0.1},"paint":{"text-color":"#abb6be","text-halo-color":"#d4dadc","text-halo-width":1,"text-halo-blur":0}},{"id":"watername_lake","type":"symbol","source":"carto","source-layer":"water_name","minzoom":4,"filter":["all",["has","name"],["==","$type","Point"],["==","class","lake"]],"layout":{"text-field":{"stops":[[8,"{name_en}"],[13,"{name}"]]},"symbol-placement":"point","text-size":{"stops":[[13,9],[14,10],[15,11],[16,12],[17,13]]},"text-font":["Montserrat Regular Italic","Open Sans Italic","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-line-height":1.2,"text-padding":2,"text-allow-overlap":false,"text-ignore-placement":false,"text-pitch-alignment":"auto","text-rotation-alignment":"auto"},"paint":{"text-color":"#7a96a0","text-halo-color":"#f5f5f3","text-halo-width":1,"text-halo-blur":1}},{"id":"watername_lake_line","type":"symbol","source":"carto","source-layer":"water_name","filter":["all",["has","name"],["==","$type","LineString"]],"layout":{"text-field":{"stops":[[8,"{name_en}"],[13,"{name}"]]},"symbol-placement":"line","text-size":{"stops":[[13,9],[14,10],[15,11],[16,12],[17,13]]},"text-font":["Montserrat Regular Italic","Open Sans Italic","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"symbol-spacing":350,"text-pitch-alignment":"auto","text-rotation-alignment":"auto","text-line-height":1.2},"paint":{"text-color":"#7a96a0","text-halo-color":"#f5f5f3","text-halo-width":1,"text-halo-blur":1}},{"id":"place_hamlet","type":"symbol","source":"carto","source-layer":"place","minzoom":12,"maxzoom":16,"filter":["any",["==","class","neighbourhood"],["==","class","hamlet"]],"layout":{"text-field":{"stops":[[8,"{name_en}"],[14,"{name}"]]},"text-font":["Montserrat Regular","Open Sans Regular","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-size":{"stops":[[13,8],[14,10],[16,11]]},"icon-image":"","icon-offset":[16,0],"text-anchor":"center","icon-size":1,"text-max-width":10,"text-keep-upright":true,"text-offset":[0.2,0.2],"text-transform":{"stops":[[12,"none"],[14,"uppercase"]]}},"paint":{"text-color":"#697b89","icon-color":"#697b89","icon-translate-anchor":"map","text-halo-color":"rgba(255,255,255,0.5)","text-halo-width":1}},{"id":"place_suburbs","type":"symbol","source":"carto","source-layer":"place","minzoom":12,"maxzoom":16,"filter":["all",["==","class","suburb"]],"layout":{"text-field":{"stops":[[8,"{name_en}"],[13,"{name}"]]},"text-font":["Montserrat Regular","Open Sans Regular","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-size":{"stops":[[12,9],[13,10],[14,11],[15,12],[16,13]]},"icon-image":"","icon-offset":[16,0],"text-anchor":"center","icon-size":1,"text-max-width":10,"text-keep-upright":true,"text-offset":[0.2,0.2],"text-transform":{"stops":[[8,"none"],[12,"uppercase"]]}},"paint":{"text-color":"#697b89","icon-color":"#697b89","icon-translate-anchor":"map","text-halo-color":"rgba(255,255,255,0.5)","text-halo-width":1}},{"id":"place_villages","type":"symbol","source":"carto","source-layer":"place","minzoom":10,"maxzoom":16,"filter":["all",["==","class","village"]],"layout":{"text-field":{"stops":[[8,"{name_en}"],[13,"{name}"]]},"text-font":["Montserrat Medium","Open Sans Bold","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-size":{"stops":[[10,9],[12,10],[13,11],[14,12],[16,13]]},"icon-image":"","icon-offset":[16,0],"text-anchor":"center","icon-size":1,"text-max-width":10,"text-keep-upright":true,"text-offset":[0.2,0.2],"text-transform":"none"},"paint":{"text-color":"#697b89","icon-color":"#697b89","icon-translate-anchor":"map","text-halo-color":"rgba(255,255,255,0.5)","text-halo-width":1}},{"id":"place_town","type":"symbol","source":"carto","source-layer":"place","minzoom":8,"maxzoom":14,"filter":["all",["==","class","town"]],"layout":{"text-field":{"stops":[[8,"{name_en}"],[13,"{name}"]]},"text-font":["Montserrat Medium","Open Sans Bold","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-size":{"stops":[[8,10],[9,10],[10,11],[13,14],[14,15]]},"icon-image":"","icon-offset":[16,0],"text-anchor":"center","icon-size":1,"text-max-width":10,"text-keep-upright":true,"text-offset":[0.2,0.2],"text-transform":"none"},"paint":{"text-color":"#697b89","icon-color":"#697b89","icon-translate-anchor":"map","text-halo-color":"rgba(255,255,255,0.5)","text-halo-width":1}},{"id":"place_country_2","type":"symbol","source":"carto","source-layer":"place","minzoom":3,"maxzoom":10,"filter":["all",["==","class","country"],[">=","rank",3],["has","iso_a2"]],"layout":{"text-field":"{name_en}","text-font":["Montserrat Medium","Open Sans Bold","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-size":{"stops":[[3,10],[5,11],[6,12],[7,13],[8,14]]},"text-transform":"uppercase"},"paint":{"text-color":{"stops":[[3,"#8a99a4"],[5,"#a1adb6"],[6,"#b9c2c9"]]},"text-halo-color":"#fafaf8","text-halo-width":1}},{"id":"place_country_1","type":"symbol","source":"carto","source-layer":"place","minzoom":2,"maxzoom":7,"filter":["all",["==","class","country"],["<=","rank",2]],"layout":{"text-field":"{name_en}","text-font":["Montserrat Medium","Open Sans Bold","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-size":{"stops":[[3,11],[4,12],[5,13],[6,14]]},"text-transform":"uppercase","text-max-width":{"stops":[[2,6],[3,6],[4,9],[5,12]]}},"paint":{"text-color":{"stops":[[3,"#8a99a4"],[5,"#a1adb6"],[6,"#b9c2c9"]]},"text-halo-color":"#fafaf8","text-halo-width":1}},{"id":"place_state","type":"symbol","source":"carto","source-layer":"place","minzoom":5,"maxzoom":10,"filter":["all",["==","class","state"],["<=","rank",4]],"layout":{"text-field":"{name_en}","text-font":["Montserrat Medium","Open Sans Bold","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-size":{"stops":[[5,12],[7,14]]},"text-transform":"uppercase","text-max-width":9},"paint":{"text-color":"#97a4ae","text-halo-color":"#fafaf8","text-halo-width":0}},{"id":"place_continent","type":"symbol","source":"carto","source-layer":"place","minzoom":0,"maxzoom":2,"filter":["all",["==","class","continent"]],"layout":{"text-field":"{name_en}","text-font":["Montserrat Medium","Open Sans Bold","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-transform":"uppercase","text-size":14,"text-letter-spacing":0.1,"text-max-width":9,"text-justify":"center","text-keep-upright":false},"paint":{"text-color":"#697b89","text-halo-color":"#fafaf8","text-halo-width":1}},{"id":"place_city_r6","type":"symbol","source":"carto","source-layer":"place","minzoom":8,"maxzoom":15,"filter":["all",["==","class","city"],[">=","rank",6]],"layout":{"text-field":{"stops":[[8,"{name_en}"],[13,"{name}"]]},"text-font":["Montserrat Medium","Open Sans Bold","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-size":{"stops":[[8,12],[9,13],[10,14],[13,17],[14,20]]},"icon-image":"","icon-offset":[16,0],"text-anchor":"center","icon-size":1,"text-max-width":10,"text-keep-upright":true,"text-offset":[0.2,0.2],"text-transform":"uppercase"},"paint":{"text-color":"#697b89","icon-color":"#697b89","icon-translate-anchor":"map","text-halo-color":"rgba(255,255,255,0.5)","text-halo-width":1}},{"id":"place_city_r5","type":"symbol","source":"carto","source-layer":"place","minzoom":8,"maxzoom":15,"filter":["all",["==","class","city"],[">=","rank",0],["<=","rank",5]],"layout":{"text-field":{"stops":[[8,"{name_en}"],[13,"{name}"]]},"text-font":["Montserrat Medium","Open Sans Bold","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-size":{"stops":[[8,14],[10,16],[13,19],[14,22]]},"icon-image":"","icon-offset":[16,0],"text-anchor":"center","icon-size":1,"text-max-width":10,"text-keep-upright":true,"text-offset":[0.2,0.2],"text-transform":"uppercase"},"paint":{"text-color":"#697b89","icon-color":"#697b89","icon-translate-anchor":"map","text-halo-color":"rgba(255,255,255,0.5)","text-halo-width":1}},{"id":"place_city_dot_r7","type":"symbol","source":"carto","source-layer":"place","minzoom":6,"maxzoom":7,"filter":["all",["==","class","city"],["<=","rank",7]],"layout":{"text-field":"{name_en}","text-font":["Montserrat Medium","Open Sans Bold","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-size":12,"icon-image":"circle-11","icon-offset":[16,5],"text-anchor":"right","icon-size":0.4,"text-max-width":8,"text-keep-upright":true,"text-offset":[0.2,0.2]},"paint":{"text-color":"#697b89","icon-color":"#697b89","icon-translate-anchor":"map","text-halo-color":"rgba(255,255,255,0.5)","text-halo-width":1}},{"id":"place_city_dot_r4","type":"symbol","source":"carto","source-layer":"place","minzoom":5,"maxzoom":7,"filter":["all",["==","class","city"],["<=","rank",4]],"layout":{"text-field":"{name_en}","text-font":["Montserrat Medium","Open Sans Bold","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-size":12,"icon-image":"circle-11","icon-offset":[16,5],"text-anchor":"right","icon-size":0.4,"text-max-width":8,"text-keep-upright":true,"text-offset":[0.2,0.2]},"paint":{"text-color":"#697b89","icon-color":"#697b89","icon-translate-anchor":"map","text-halo-color":"rgba(255,255,255,0.5)","text-halo-width":1}},{"id":"place_city_dot_r2","type":"symbol","source":"carto","source-layer":"place","minzoom":4,"maxzoom":7,"filter":["all",["==","class","city"],["<=","rank",2]],"layout":{"text-field":"{name_en}","text-font":["Montserrat Medium","Open Sans Bold","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-size":12,"icon-image":"circle-11","icon-offset":[16,5],"text-anchor":"right","icon-size":0.4,"text-max-width":8,"text-keep-upright":true,"text-offset":[0.2,0.2]},"paint":{"text-color":"#697b89","icon-color":"#697b89","icon-translate-anchor":"map","text-halo-color":"rgba(255,255,255,0.5)","text-halo-width":1}},{"id":"place_city_dot_z7","type":"symbol","source":"carto","source-layer":"place","minzoom":7,"maxzoom":8,"filter":["all",["!has","capital"],["!in","class","country","state"]],"layout":{"text-field":"{name_en}","text-font":["Montserrat Medium","Open Sans Bold","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-size":12,"icon-image":"circle-11","icon-offset":[16,5],"text-anchor":"right","icon-size":0.4,"text-max-width":8,"text-keep-upright":true,"text-offset":[0.2,0.2]},"paint":{"text-color":"#697b89","icon-color":"#697b89","icon-translate-anchor":"map","text-halo-color":"rgba(255,255,255,0.5)","text-halo-width":1}},{"id":"place_capital_dot_z7","type":"symbol","source":"carto","source-layer":"place","minzoom":7,"maxzoom":8,"filter":["all",[">","capital",0]],"layout":{"text-field":"{name_en}","text-font":["Montserrat Medium","Open Sans Bold","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-size":12,"icon-image":"circle-11","icon-offset":[16,5],"text-anchor":"right","icon-size":0.4,"text-max-width":8,"text-keep-upright":true,"text-offset":[0.2,0.2],"text-transform":"uppercase"},"paint":{"text-color":"#697b89","icon-color":"#697b89","icon-translate-anchor":"map","text-halo-color":"rgba(255,255,255,0.5)","text-halo-width":1}},{"id":"poi_stadium","type":"symbol","source":"carto","source-layer":"poi","minzoom":15,"filter":["all",["in","class","stadium","cemetery","attraction"],["<=","rank",3]],"layout":{"text-field":"{name}","text-font":["Montserrat Medium","Open Sans Bold","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-size":{"stops":[[15,8],[17,9],[18,10]]},"text-transform":"uppercase"},"paint":{"text-color":"#7d9c83","text-halo-color":"#f5f5f3","text-halo-width":1}},{"id":"poi_park","type":"symbol","source":"carto","source-layer":"poi","minzoom":15,"filter":["all",["==","class","park"]],"layout":{"text-field":"{name}","text-font":["Montserrat Medium","Open Sans Bold","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-size":{"stops":[[15,8],[17,9],[18,10]]},"text-transform":"uppercase"},"paint":{"text-color":"#7d9c83","text-halo-color":"#f5f5f3","text-halo-width":1}},{"id":"roadname_minor","type":"symbol","source":"carto","source-layer":"transportation_name","minzoom":16,"filter":["all",["in","class","minor","service"]],"layout":{"symbol-placement":"line","text-font":["Montserrat Regular","Open Sans Regular","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-size":9,"text-field":"{name}","symbol-avoid-edges":false,"symbol-spacing":200,"text-pitch-alignment":"auto","text-rotation-alignment":"auto","text-justify":"center"},"paint":{"text-color":"#838383","text-halo-color":"#fff","text-halo-width":1}},{"id":"roadname_sec","type":"symbol","source":"carto","source-layer":"transportation_name","minzoom":15,"filter":["all",["in","class","secondary","tertiary"]],"layout":{"symbol-placement":"line","text-font":["Montserrat Regular","Open Sans Regular","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-size":{"stops":[[15,9],[16,11],[18,12]]},"text-field":"{name}","symbol-avoid-edges":false,"symbol-spacing":200,"text-pitch-alignment":"auto","text-rotation-alignment":"auto","text-justify":"center"},"paint":{"text-color":"#838383","text-halo-color":"#fff","text-halo-width":1}},{"id":"roadname_pri","type":"symbol","source":"carto","source-layer":"transportation_name","minzoom":14,"filter":["all",["in","class","primary"]],"layout":{"symbol-placement":"line","text-font":["Montserrat Regular","Open Sans Regular","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-size":{"stops":[[14,10],[15,10],[16,11],[18,12]]},"text-field":"{name}","symbol-avoid-edges":false,"symbol-spacing":{"stops":[[6,200],[16,250]]},"text-pitch-alignment":"auto","text-rotation-alignment":"auto","text-justify":"center","text-letter-spacing":{"stops":[[14,0],[16,0.2]]}},"paint":{"text-color":"#838383","text-halo-color":"#fff","text-halo-width":1}},{"id":"roadname_major","type":"symbol","source":"carto","source-layer":"transportation_name","minzoom":13,"filter":["all",["in","class","trunk","motorway"]],"layout":{"symbol-placement":"line","text-font":["Montserrat Regular","Open Sans Regular","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"],"text-size":{"stops":[[14,10],[15,10],[16,11],[18,12]]},"text-field":"{name}","symbol-avoid-edges":false,"symbol-spacing":{"stops":[[6,200],[16,250]]},"text-pitch-alignment":"auto","text-rotation-alignment":"auto","text-justify":"center","text-letter-spacing":{"stops":[[13,0],[16,0.2]]}},"paint":{"text-color":"#838383","text-halo-color":"#fff","text-halo-width":1}},{"id":"housenumber","type":"symbol","source":"carto","source-layer":"housenumber","minzoom":17,"maxzoom":24,"layout":{"text-field":"{housenumber}","text-size":{"stops":[[17,9],[18,11]]},"text-font":["Montserrat Regular","Open Sans Regular","Noto Sans Regular","HanWangHeiLight Regular","NanumBarunGothic Regular"]},"paint":{"text-halo-color":"transparent","text-color":"transparent","text-halo-width":0.75}}],"id":"voyager","owner":"Carto"}')}}]); \ No newline at end of file diff --git a/assets/js/4972.8e046a82.js b/assets/js/4972.8e046a82.js deleted file mode 100644 index 755637a3..00000000 --- a/assets/js/4972.8e046a82.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[4972],{4972:(e,t,a)=>{a.r(t),a.d(t,{default:()=>i});var n=a(7294),l=a(5999),o=a(1944),r=a(179);function i(){return n.createElement(n.Fragment,null,n.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),n.createElement(r.Z,null,n.createElement("main",{className:"container margin-vert--xl"},n.createElement("div",{className:"row"},n.createElement("div",{className:"col col--6 col--offset-3"},n.createElement("h1",{className:"hero__title"},n.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),n.createElement("p",null,n.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),n.createElement("p",null,n.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/assets/js/4ae403c3.0f921c35.js b/assets/js/4ae403c3.0f921c35.js new file mode 100644 index 00000000..006ae495 --- /dev/null +++ b/assets/js/4ae403c3.0f921c35.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[2368],{9949:(e,r,o)=>{o.r(r),o.d(r,{assets:()=>i,contentTitle:()=>a,default:()=>d,frontMatter:()=>c,metadata:()=>t,toc:()=>p});const t=JSON.parse('{"id":"api-reference/mapbox/source","title":"Source","description":"This component allows apps to create a map source using React. It may contain Layer components as children.","source":"@site/../docs/api-reference/mapbox/source.md","sourceDirName":"api-reference/mapbox","slug":"/api-reference/mapbox/source","permalink":"/react-map-gl/docs/api-reference/mapbox/source","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/mapbox/source.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"ScaleControl","permalink":"/react-map-gl/docs/api-reference/mapbox/scale-control"},"next":{"title":"useControl","permalink":"/react-map-gl/docs/api-reference/mapbox/use-control"}}');var n=o(4848),s=o(8453);const c={},a="Source",i={},p=[{value:"Properties",id:"properties",level:2},{value:"id: string",id:"id",level:4},{value:"type: string",id:"type",level:4},{value:"Source",id:"source-1",level:2}];function l(e){const r={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",h4:"h4",header:"header",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"source",children:"Source"})}),"\n",(0,n.jsxs)(r.p,{children:["This component allows apps to create a ",(0,n.jsx)(r.a,{href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/#sources",children:"map source"})," using React. It may contain ",(0,n.jsx)(r.a,{href:"/react-map-gl/docs/api-reference/mapbox/layer",children:"Layer"})," components as children."]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:"import * as React from 'react';\r\nimport Map, {Source, Layer} from 'react-map-gl/mapbox';\r\nimport type {CircleLayer} from 'react-map-gl/mapbox';\r\nimport type {FeatureCollection} from 'geojson';\r\nimport 'mapbox-gl/dist/mapbox-gl.css';\r\n\r\nconst geojson: FeatureCollection = {\r\n type: 'FeatureCollection',\r\n features: [\r\n {type: 'Feature', geometry: {type: 'Point', coordinates: [-122.4, 37.8]}}\r\n ]\r\n};\r\n\r\nconst layerStyle: CircleLayer = {\r\n id: 'point',\r\n type: 'circle',\r\n paint: {\r\n 'circle-radius': 10,\r\n 'circle-color': '#007cbf'\r\n }\r\n};\r\n\r\nfunction App() {\r\n return \r\n \r\n \r\n \r\n ;\r\n}\n"})}),"\n",(0,n.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsxs)(r.p,{children:["The props provided to this component should be conforming to the ",(0,n.jsx)(r.a,{href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/#sources",children:"Mapbox source specification"})," or ",(0,n.jsx)(r.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/#canvassourceoptions",children:"CanvasSourceOptions"}),"."]}),"\n",(0,n.jsxs)(r.p,{children:["When props change ",(0,n.jsx)(r.em,{children:"shallowly"}),", the component will attempt to update the source. Do not define objects/arrays inline to avoid perf hit."]}),"\n",(0,n.jsxs)(r.p,{children:["Once a ",(0,n.jsx)(r.code,{children:""})," is mounted, the following props should not change. If add/remove multiple JSX sources dynamically, make sure you use React's ",(0,n.jsx)(r.a,{href:"https://reactjs.org/docs/lists-and-keys.html#keys",children:"key prop"})," to give each element a stable identity."]}),"\n",(0,n.jsxs)(r.h4,{id:"id",children:[(0,n.jsx)(r.code,{children:"id"}),": string"]}),"\n",(0,n.jsx)(r.p,{children:"Unique identifier of the source. If not provided, a default id will be assigned."}),"\n",(0,n.jsxs)(r.h4,{id:"type",children:[(0,n.jsx)(r.code,{children:"type"}),": string"]}),"\n",(0,n.jsx)(r.p,{children:"Required. Type of the source."}),"\n",(0,n.jsx)(r.h2,{id:"source-1",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:(0,n.jsx)(r.a,{href:"https://github.com/visgl/react-map-gl/tree/7.0-release/src/components/source.ts",children:"source.ts"})})]})}function d(e={}){const{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},8453:(e,r,o)=>{o.d(r,{R:()=>c,x:()=>a});var t=o(6540);const n={},s=t.createContext(n);function c(e){const r=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:c(e.components),t.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4d116018.0735bab9.js b/assets/js/4d116018.0735bab9.js new file mode 100644 index 00000000..3404014a --- /dev/null +++ b/assets/js/4d116018.0735bab9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[208],{622:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>a,contentTitle:()=>l,default:()=>d,frontMatter:()=>s,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"api-reference/maplibre/terrain-control","title":"TerrainControl","description":"React component that wraps maplibre-gl\'s TerrainControl class.","source":"@site/../docs/api-reference/maplibre/terrain-control.md","sourceDirName":"api-reference/maplibre","slug":"/api-reference/maplibre/terrain-control","permalink":"/react-map-gl/docs/api-reference/maplibre/terrain-control","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/maplibre/terrain-control.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"Source","permalink":"/react-map-gl/docs/api-reference/maplibre/source"},"next":{"title":"useControl","permalink":"/react-map-gl/docs/api-reference/maplibre/use-control"}}');var o=t(4848),i=t(8453);const s={},l="TerrainControl",a={},c=[{value:"Properties",id:"properties",level:2},{value:"Reactive Properties",id:"reactive-properties",level:3},{value:"style: CSSProperties",id:"style",level:4},{value:"Other Properties",id:"other-properties",level:3},{value:"position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'",id:"position",level:4},{value:"Source",id:"source",level:2}];function p(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.header,{children:(0,o.jsx)(r.h1,{id:"terraincontrol",children:"TerrainControl"})}),"\n",(0,o.jsxs)(r.p,{children:["React component that wraps maplibre-gl's ",(0,o.jsx)(r.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/TerrainControl/",children:"TerrainControl"})," class."]}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-tsx",children:"import * as React from 'react';\r\nimport {Map, MapStyle, TerrainControl} from 'react-map-gl/maplibre';\r\nimport 'maplibre-gl/dist/maplibre-gl.css';\r\n\r\n// https://maplibre.org/maplibre-gl-js/docs/examples/3d-terrain/\r\nconst MAP_STYLE: MapStyle = {\r\n version: 8,\r\n sources: {\r\n osm: {\r\n type: 'raster',\r\n tiles: ['https://a.tile.openstreetmap.org/{z}/{x}/{y}.png'],\r\n tileSize: 256,\r\n attribution: '© OpenStreetMap Contributors',\r\n maxzoom: 19\r\n },\r\n terrainSource: {\r\n type: 'raster-dem',\r\n url: 'https://demotiles.maplibre.org/terrain-tiles/tiles.json',\r\n tileSize: 256\r\n }\r\n },\r\n layers: [\r\n {\r\n id: 'osm',\r\n type: 'raster',\r\n source: 'osm'\r\n }\r\n ],\r\n terrain: {\r\n source: 'terrainSource',\r\n exaggeration: 1\r\n },\r\n sky: {}\r\n};\r\n\r\nfunction App() {\r\n return \r\n \r\n ;\r\n}\n"})}),"\n",(0,o.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,o.jsx)(r.h3,{id:"reactive-properties",children:"Reactive Properties"}),"\n",(0,o.jsxs)(r.h4,{id:"style",children:[(0,o.jsx)(r.code,{children:"style"}),": CSSProperties"]}),"\n",(0,o.jsx)(r.p,{children:"CSS style override that applies to the control's container."}),"\n",(0,o.jsx)(r.h3,{id:"other-properties",children:"Other Properties"}),"\n",(0,o.jsx)(r.p,{children:"The properties in this section are not reactive. They are only used when the component first mounts."}),"\n",(0,o.jsxs)(r.p,{children:["Any ",(0,o.jsx)(r.a,{href:"https://maplibre.org/maplibre-style-spec/terrain/",children:"options"})," supported by the ",(0,o.jsx)(r.code,{children:"TerrainControl"})," class, such as"]}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsx)(r.li,{children:(0,o.jsx)(r.code,{children:"source"})}),"\n",(0,o.jsx)(r.li,{children:(0,o.jsx)(r.code,{children:"exageration"})}),"\n"]}),"\n",(0,o.jsx)(r.p,{children:"Plus the following:"}),"\n",(0,o.jsxs)(r.h4,{id:"position",children:[(0,o.jsx)(r.code,{children:"position"}),": 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'"]}),"\n",(0,o.jsxs)(r.p,{children:["Default: ",(0,o.jsx)(r.code,{children:"'top-right'"})]}),"\n",(0,o.jsx)(r.p,{children:"Placement of the control relative to the map."}),"\n",(0,o.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(r.p,{children:(0,o.jsx)(r.a,{href:"https://github.com/visgl/react-map-gl/tree/master/modules/maplibre/src/components/terrain-control.ts",children:"terrain-control.ts"})})]})}function d(e={}){const{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,o.jsx)(r,{...e,children:(0,o.jsx)(p,{...e})}):p(e)}},8453:(e,r,t)=>{t.d(r,{R:()=>s,x:()=>l});var n=t(6540);const o={},i=n.createContext(o);function s(e){const r=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),n.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4e9d5dfa.7fc1b790.js b/assets/js/4e9d5dfa.7fc1b790.js new file mode 100644 index 00000000..a2d31378 --- /dev/null +++ b/assets/js/4e9d5dfa.7fc1b790.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[6641],{6403:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>l,contentTitle:()=>p,default:()=>d,frontMatter:()=>s,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"api-reference/maplibre/popup","title":"Popup","description":"React component that wraps maplibre-gl\'s Popup class.","source":"@site/../docs/api-reference/maplibre/popup.md","sourceDirName":"api-reference/maplibre","slug":"/api-reference/maplibre/popup","permalink":"/react-map-gl/docs/api-reference/maplibre/popup","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/maplibre/popup.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"NavigationControl","permalink":"/react-map-gl/docs/api-reference/maplibre/navigation-control"},"next":{"title":"ScaleControl","permalink":"/react-map-gl/docs/api-reference/maplibre/scale-control"}}');var o=n(4848),i=n(8453);const s={},p="Popup",l={},c=[{value:"Properties",id:"properties",level:2},{value:"Reactive Properties",id:"reactive-properties",level:3},{value:"anchor: 'center' | 'left' | 'right' | 'top' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | undefined",id:"anchor",level:4},{value:"className: string",id:"classname",level:4},{value:"offset: number | PointLike | Record<string, PointLike>",id:"offset",level:4},{value:"maxWidth: string",id:"maxwidth",level:4},{value:"style: CSSProperties",id:"style",level:4},{value:"Callbacks",id:"callbacks",level:3},{value:"onOpen: (evt: PopupEvent) => void",id:"onopen",level:4},{value:"onClose: (evt: PopupEvent) => void",id:"onclose",level:4},{value:"Other Properties",id:"other-properties",level:3},{value:"Methods",id:"methods",level:2},{value:"Source",id:"source",level:2}];function a(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.header,{children:(0,o.jsx)(r.h1,{id:"popup",children:"Popup"})}),"\n",(0,o.jsxs)(r.p,{children:["React component that wraps maplibre-gl's ",(0,o.jsx)(r.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/Popup/",children:"Popup"})," class."]}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-tsx",children:"import * as React from 'react';\r\nimport {useState} from 'react';\r\nimport {Map, Popup} from 'react-map-gl/maplibre';\r\nimport 'maplibre-gl/dist/maplibre-gl.css';\r\n\r\nfunction App() {\r\n const [showPopup, setShowPopup] = useState(true);\r\n\r\n return \r\n {showPopup && (\r\n setShowPopup(false)}>\r\n You are here\r\n )}\r\n ;\r\n}\n"})}),"\n",(0,o.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,o.jsx)(r.h3,{id:"reactive-properties",children:"Reactive Properties"}),"\n",(0,o.jsxs)(r.h4,{id:"anchor",children:[(0,o.jsx)(r.code,{children:"anchor"}),": 'center' | 'left' | 'right' | 'top' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | undefined"]}),"\n",(0,o.jsxs)(r.p,{children:["A string indicating the part of the popup that should be positioned closest to the coordinate, set via ",(0,o.jsx)(r.code,{children:"longitude"})," and ",(0,o.jsx)(r.code,{children:"latitude"}),".\r\nIf unset, the anchor will be dynamically set to ensure the popup falls within the map container with a preference for ",(0,o.jsx)(r.code,{children:"'bottom'"}),"."]}),"\n",(0,o.jsxs)(r.h4,{id:"classname",children:[(0,o.jsx)(r.code,{children:"className"}),": string"]}),"\n",(0,o.jsx)(r.p,{children:"Space-separated CSS class names to add to popup container."}),"\n",(0,o.jsxs)(r.h4,{id:"offset",children:[(0,o.jsx)(r.code,{children:"offset"}),": number | ",(0,o.jsx)(r.a,{href:"/react-map-gl/docs/api-reference/maplibre/types#pointlike",children:"PointLike"})," | Record"]}),"\n",(0,o.jsxs)(r.p,{children:["Default: ",(0,o.jsx)(r.code,{children:"null"})]}),"\n",(0,o.jsx)(r.p,{children:"A pixel offset applied to the popup's location specified as:"}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsx)(r.li,{children:"a single number specifying a distance from the popup's location"}),"\n",(0,o.jsx)(r.li,{children:"a PointLike specifying a constant offset"}),"\n",(0,o.jsx)(r.li,{children:"an object of Points specifing an offset for each anchor position."}),"\n"]}),"\n",(0,o.jsx)(r.p,{children:"Negative offsets indicate left and up."}),"\n",(0,o.jsxs)(r.h4,{id:"maxwidth",children:[(0,o.jsx)(r.code,{children:"maxWidth"}),": string"]}),"\n",(0,o.jsxs)(r.p,{children:["Default: ",(0,o.jsx)(r.code,{children:"240px"})]}),"\n",(0,o.jsx)(r.p,{children:"A string that sets the CSS property of the popup's maximum width."}),"\n",(0,o.jsxs)(r.h4,{id:"style",children:[(0,o.jsx)(r.code,{children:"style"}),": CSSProperties"]}),"\n",(0,o.jsx)(r.p,{children:"CSS style override that applies to the popup's container."}),"\n",(0,o.jsx)(r.h3,{id:"callbacks",children:"Callbacks"}),"\n",(0,o.jsxs)(r.h4,{id:"onopen",children:[(0,o.jsx)(r.code,{children:"onOpen"}),": (evt: ",(0,o.jsx)(r.a,{href:"/react-map-gl/docs/api-reference/maplibre/types#popupevent",children:"PopupEvent"}),") => void"]}),"\n",(0,o.jsx)(r.p,{children:"Called when the popup is opened."}),"\n",(0,o.jsxs)(r.h4,{id:"onclose",children:[(0,o.jsx)(r.code,{children:"onClose"}),": (evt: ",(0,o.jsx)(r.a,{href:"/react-map-gl/docs/api-reference/maplibre/types#popupevent",children:"PopupEvent"}),") => void"]}),"\n",(0,o.jsxs)(r.p,{children:["Called when the popup is closed by the user clicking on the close button or outside (if ",(0,o.jsx)(r.code,{children:"closeOnClick: true"}),")."]}),"\n",(0,o.jsx)(r.h3,{id:"other-properties",children:"Other Properties"}),"\n",(0,o.jsx)(r.p,{children:"The properties in this section are not reactive. They are only used when the component first mounts."}),"\n",(0,o.jsxs)(r.p,{children:["Any ",(0,o.jsx)(r.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/type-aliases/PopupOptions/",children:"options"})," supported by the ",(0,o.jsx)(r.code,{children:"Popup"})," class, such as"]}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsx)(r.li,{children:(0,o.jsx)(r.code,{children:"closeButton"})}),"\n",(0,o.jsx)(r.li,{children:(0,o.jsx)(r.code,{children:"closeOnClick"})}),"\n",(0,o.jsx)(r.li,{children:(0,o.jsx)(r.code,{children:"closeOnMove"})}),"\n",(0,o.jsx)(r.li,{children:(0,o.jsx)(r.code,{children:"focusAfterOpen"})}),"\n"]}),"\n",(0,o.jsx)(r.h2,{id:"methods",children:"Methods"}),"\n",(0,o.jsxs)(r.p,{children:["The underlying native ",(0,o.jsx)(r.code,{children:"Popup"})," instance is accessible via a ",(0,o.jsx)(r.a,{href:"https://reactjs.org/docs/refs-and-the-dom.html#creating-refs",children:"React ref"})," hook.\r\nYou may use it to call any imperative methods:"]}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-tsx",children:"import * as React from 'react';\r\nimport {useRef, useEffect} from 'react';\r\nimport {Map, Popup} from 'react-map-gl/maplibre';\r\nimport maplibregl from 'maplibre-gl';\r\n\r\nfunction App() {\r\n const popupRef = useRef();\r\n\r\n useEffect(() => {\r\n popupRef.current?.trackPointer();\r\n }, [popupRef.current])\r\n\r\n return \r\n \r\n Tooltip\r\n \r\n ;\r\n}\n"})}),"\n",(0,o.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,o.jsx)(r.p,{children:(0,o.jsx)(r.a,{href:"https://github.com/visgl/react-map-gl/tree/master/modules/maplibre/src/components/popup.ts",children:"popup.ts"})})]})}function d(e={}){const{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,o.jsx)(r,{...e,children:(0,o.jsx)(a,{...e})}):a(e)}},8453:(e,r,n)=>{n.d(r,{R:()=>s,x:()=>p});var t=n(6540);const o={},i=t.createContext(o);function s(e){const r=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function p(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),t.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4ef1d265.069c1c16.js b/assets/js/4ef1d265.069c1c16.js deleted file mode 100644 index 68209c97..00000000 --- a/assets/js/4ef1d265.069c1c16.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[1089],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>v});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=u(n),d=r,v=p["".concat(s,".").concat(d)]||p[d]||m[d]||o;return n?a.createElement(v,i(i({ref:t},c),{},{components:n})):a.createElement(v,i({ref:t},c))}));function v(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:r,i[1]=l;for(var u=2;u{n.d(t,{Z:()=>i});var a=n(7294),r=n(6010);const o={tabItem:"tabItem_Ymn6"};function i(e){var t=e.children,n=e.hidden,i=e.className;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(o.tabItem,i),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var a=n(7462),r=n(7294),o=n(6010),i=n(2466),l=n(6550),s=n(1980),u=n(7392),c=n(12);function p(e){return function(e){var t,n;return null!=(t=null==(n=r.Children.map(e,(function(e){if(!e||(0,r.isValidElement)(e)&&(t=e.props)&&"object"==typeof t&&"value"in t)return e;var t;throw new Error("Docusaurus error: Bad child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:n.filter(Boolean))?t:[]}(e).map((function(e){var t=e.props;return{value:t.value,label:t.label,attributes:t.attributes,default:t.default}}))}function m(e){var t=e.values,n=e.children;return(0,r.useMemo)((function(){var e=null!=t?t:p(n);return function(e){var t=(0,u.l)(e,(function(e,t){return e.value===t.value}));if(t.length>0)throw new Error('Docusaurus error: Duplicate values "'+t.map((function(e){return e.value})).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[t,n])}function d(e){var t=e.value;return e.tabValues.some((function(e){return e.value===t}))}function v(e){var t=e.queryString,n=void 0!==t&&t,a=e.groupId,o=(0,l.k6)(),i=function(e){var t=e.queryString,n=void 0!==t&&t,a=e.groupId;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=a?a:null}({queryString:n,groupId:a});return[(0,s._X)(i),(0,r.useCallback)((function(e){if(i){var t=new URLSearchParams(o.location.search);t.set(i,e),o.replace(Object.assign({},o.location,{search:t.toString()}))}}),[i,o])]}function b(e){var t,n,a,o,i=e.defaultValue,l=e.queryString,s=void 0!==l&&l,u=e.groupId,p=m(e),b=(0,r.useState)((function(){return function(e){var t,n=e.defaultValue,a=e.tabValues;if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!d({value:n,tabValues:a}))throw new Error('Docusaurus error: The has a defaultValue "'+n+'" but none of its children has the corresponding value. Available values are: '+a.map((function(e){return e.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return n}var r=null!=(t=a.find((function(e){return e.default})))?t:a[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:i,tabValues:p})})),f=b[0],h=b[1],g=v({queryString:s,groupId:u}),k=g[0],y=g[1],w=(t=function(e){return e?"docusaurus.tab."+e:null}({groupId:u}.groupId),n=(0,c.Nk)(t),a=n[0],o=n[1],[a,(0,r.useCallback)((function(e){t&&o.set(e)}),[t,o])]),T=w[0],x=w[1],N=function(){var e=null!=k?k:T;return d({value:e,tabValues:p})?e:null}();return(0,r.useLayoutEffect)((function(){N&&h(N)}),[N]),{selectedValue:f,selectValue:(0,r.useCallback)((function(e){if(!d({value:e,tabValues:p}))throw new Error("Can't select invalid tab value="+e);h(e),y(e),x(e)}),[y,x,p]),tabValues:p}}var f=n(2389);const h={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function g(e){var t=e.className,n=e.block,l=e.selectedValue,s=e.selectValue,u=e.tabValues,c=[],p=(0,i.o5)().blockElementScrollPositionUntilNextRender,m=function(e){var t=e.currentTarget,n=c.indexOf(t),a=u[n].value;a!==l&&(p(t),s(a))},d=function(e){var t,n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":var a,r=c.indexOf(e.currentTarget)+1;n=null!=(a=c[r])?a:c[0];break;case"ArrowLeft":var o,i=c.indexOf(e.currentTarget)-1;n=null!=(o=c[i])?o:c[c.length-1]}null==(t=n)||t.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":n},t)},u.map((function(e){var t=e.value,n=e.label,i=e.attributes;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:l===t?0:-1,"aria-selected":l===t,key:t,ref:function(e){return c.push(e)},onKeyDown:d,onClick:m},i,{className:(0,o.Z)("tabs__item",h.tabItem,null==i?void 0:i.className,{"tabs__item--active":l===t})}),null!=n?n:t)})))}function k(e){var t=e.lazy,n=e.children,a=e.selectedValue,o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){var i=o.find((function(e){return e.props.value===a}));return i?(0,r.cloneElement)(i,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},o.map((function(e,t){return(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a})})))}function y(e){var t=b(e);return r.createElement("div",{className:(0,o.Z)("tabs-container",h.tabList)},r.createElement(g,(0,a.Z)({},e,t)),r.createElement(k,(0,a.Z)({},e,t)))}function w(e){var t=(0,f.Z)();return r.createElement(y,(0,a.Z)({key:String(t)},e))}},7460:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>m,contentTitle:()=>c,default:()=>f,frontMatter:()=>u,metadata:()=>p,toc:()=>d});var a=n(7462),r=n(3366),o=(n(7294),n(3905)),i=n(4866),l=n(5162),s=["components"],u={},c="Tips and Tricks",p={unversionedId:"get-started/tips-and-tricks",id:"get-started/tips-and-tricks",title:"Tips and Tricks",description:"Securing Mapbox Token",source:"@site/../docs/get-started/tips-and-tricks.md",sourceDirName:"get-started",slug:"/get-started/tips-and-tricks",permalink:"/react-map-gl/docs/get-started/tips-and-tricks",draft:!1,editUrl:"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/get-started/tips-and-tricks.md",tags:[],version:"current",frontMatter:{},sidebar:"docsSidebar",previous:{title:"Adding Custom Data",permalink:"/react-map-gl/docs/get-started/adding-custom-data"},next:{title:"default (Map)",permalink:"/react-map-gl/docs/api-reference/map"}},m={},d=[{value:"Securing Mapbox Token",id:"securing-mapbox-token",level:2},{value:"Minimize Cost from Frequent Re-mounting",id:"minimize-cost-from-frequent-re-mounting",level:2},{value:"Performance with Many Markers",id:"performance-with-many-markers",level:2},{value:"Finding out if a point is within the current viewport",id:"finding-out-if-a-point-is-within-the-current-viewport",level:2}],v={toc:d},b="wrapper";function f(e){var t=e.components,n=(0,r.Z)(e,s);return(0,o.kt)(b,(0,a.Z)({},v,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"tips-and-tricks"},"Tips and Tricks"),(0,o.kt)("h2",{id:"securing-mapbox-token"},"Securing Mapbox Token"),(0,o.kt)("p",null,"Because Mapbox tokens are required for the client application to make requests to Mapbox servers, you have to distribute it with your app. It is not possible to stop a visitor to your site from scraping the token. The practice outlined below can help you protect your token from being abused."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Never commit your token in clear text into GitHub or other source control."),(0,o.kt)("li",{parentName:"ul"},"In your local dev environment, define the token in an environment variable e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"MapboxAccessTokenDev=...")," in the command line, or use something like ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/motdotla/dotenv"},"dotenv")," and put ",(0,o.kt)("inlineCode",{parentName:"li"},"MapboxAccessTokenDev=...")," in a ",(0,o.kt)("inlineCode",{parentName:"li"},".env")," file. Add ",(0,o.kt)("inlineCode",{parentName:"li"},".env")," to ",(0,o.kt)("inlineCode",{parentName:"li"},".gitignore")," so it's never tracked. If your app is deployed by a continuous integration pipeline, follow its documentation and set a secret environment variable."),(0,o.kt)("li",{parentName:"ul"},"Create separate tokens for development (often times on ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost"),"), public code snippet (Gist, Codepen etc.) and production (deployed to ",(0,o.kt)("inlineCode",{parentName:"li"},"https://mycompany.com"),"). The public token should be rotated regularly. The production token should have strict ",(0,o.kt)("a",{parentName:"li",href:"https://docs.mapbox.com/help/troubleshooting/how-to-use-mapbox-securely/#access-tokens"},"scope and URL restrictions")," that only allows it to be used on a domain that you own."),(0,o.kt)("li",{parentName:"ul"},"Add the following to your bundler config:")),(0,o.kt)(i.Z,{mdxType:"Tabs"},(0,o.kt)(l.Z,{value:"webpack",label:"Webpack",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-js"},"/// webpack.config.js\nconst {DefinePlugin} = require('webpack');\n\nmodule.exports = {\n ...\n plugins: [\n new DefinePlugin({\n 'process.env.MapboxAccessToken': JSON.stringify(process.env.NODE_ENV == 'production' ? process.env.MapboxAccessTokenProd : process.env.MapboxAccessTokenDev)\n })\n ]\n};\n"))),(0,o.kt)(l.Z,{value:"rollup",label:"Rollup",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-js"},"/// rollup.config.js\nconst replace = require('@rollup/plugin-replace').default;\n\nmodule.exports = {\n ...\n plugins: [\n replace({ \n 'process.env.MapboxAccessToken': JSON.stringify(process.env.NODE_ENV == 'production' ? process.env.MapboxAccessTokenProd : process.env.MapboxAccessTokenDev)\n })\n ]\n};\n")))),(0,o.kt)("p",null," react-map-gl automatically picks up ",(0,o.kt)("inlineCode",{parentName:"p"},"process.env.MapboxAccessToken")," or ",(0,o.kt)("inlineCode",{parentName:"p"},"process.env.REACT_APP_MAPBOX_ACCESS_TOKEN")," if they are defined. Alternatively, you can use your own variable name (e.g. ",(0,o.kt)("inlineCode",{parentName:"p"},"__SUPER_SECRET_TOKEN__"),") and pass it in manually with ",(0,o.kt)("inlineCode",{parentName:"p"},"mapboxAccessToken={__SUPER_SECRET_TOKEN__}"),"."),(0,o.kt)("h2",{id:"minimize-cost-from-frequent-re-mounting"},"Minimize Cost from Frequent Re-mounting"),(0,o.kt)("p",null,"In a moderately complex single-page app, as the user navigates through the UI, a map component may unmount and mount again many times during a session. Consider the following layout:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},'/// Example using Tabs from Material UI\n\n \n \n \n \n \n \n {items.map(renderMarker)}\n \n \n \n \n {items.map(renderRow)}\n
\n
\n
\n')),(0,o.kt)("p",null,'Every time the user clicks the "table" tab, the map is unmounted. When they click the "map" tab, the map is mounted again. As of v2.0, mapbox-gl generates a ',(0,o.kt)("a",{parentName:"p",href:"https://www.mapbox.com/pricing#maploads"},"billable event")," every time a Map object is initialized. It is obviously not ideal to get billed for just collapsing and expanding part of the UI."),(0,o.kt)("p",null,"In this case, it is recommended that you set the ",(0,o.kt)("a",{parentName:"p",href:"/react-map-gl/docs/api-reference/map#reuseMaps"},"reuseMaps")," prop to ",(0,o.kt)("inlineCode",{parentName:"p"},"true"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},' \n \n {items.map(renderMarker)}\n \n \n')),(0,o.kt)("p",null,"This bypasses the initialization when a map is removed then added back."),(0,o.kt)("h2",{id:"performance-with-many-markers"},"Performance with Many Markers"),(0,o.kt)("p",null,"If your application uses externally managed camera state, like with Redux, the number of React rerenders may be very high when the user is interacting with the map. Consider the following setup:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"import {useSelector, useDispatch} from 'react-redux';\nimport Map, {Marker} from 'react-map-gl';\n\nfunction MapView() {\n const viewState = useSelector((s: RootState) => s.viewState);\n const vehicles = useSelector((s: RootState) => s.vehicles);\n const dispatch = useDispatch();\n\n const onMove = useCallback(evt => {\n dispatch({type: 'setViewState', payload: evt.viewState});\n }, []);\n\n return (\n \n >\n {vehicles.map(vehicle => (\n \n \n // vehicle icon\n \n )\n )}\n \n );\n}\n")),(0,o.kt)("p",null,"This component is rerendered on every animation frame when the user is dragging the map. If it's trying to render hundreds of markers, the performance lag will become quite visible."),(0,o.kt)("p",null,"One way to improve the performance is ",(0,o.kt)("inlineCode",{parentName:"p"},"useMemo"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},' const markers = useMemo(() => vehicles.map(vehicle => (\n \n \n // vehicle icon\n \n )\n ), [vehicles]);\n\n return (\n \n >\n {markers}\n \n );\n}\n')),(0,o.kt)("p",null,"This prevents React from rerendering the markers unless they have changed."),(0,o.kt)("p",null,"If your application can do without complicated DOM objects and CSS styling, consider switching to a ",(0,o.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/layers/#symbol"},"symbol layer"),". Layers are rendered in WebGL and are much more performant than markers:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"}," const vehiclesGeoJSON = useMemo(() => {\n return {\n type: 'FeatureCollection',\n features: vehicles.map(vehicle => turf.point(vehicle.coordinates, vehicle))\n };\n }, [vehicles]);\n\n return (\n \n >\n \n \n \n \n );\n")),(0,o.kt)("h2",{id:"finding-out-if-a-point-is-within-the-current-viewport"},"Finding out if a point is within the current viewport"),(0,o.kt)("p",null,"There are some situations where you want to know if a point is currently visible on the map.",(0,o.kt)("br",{parentName:"p"}),"\n","Checking this is simple and can be done like so:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"const mapRef = useRef();\n\nconst checkIfPositionInViewport = (lat, lng) => {\n const bounds = mapRef.current.getBounds();\n return bounds.contains([lng, lat]);\n}\n\nreturn \n")))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4ef1d265.487db296.js b/assets/js/4ef1d265.487db296.js new file mode 100644 index 00000000..7051a636 --- /dev/null +++ b/assets/js/4ef1d265.487db296.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[7728],{3555:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>c,default:()=>h,frontMatter:()=>l,metadata:()=>a,toc:()=>d});const a=JSON.parse('{"id":"get-started/tips-and-tricks","title":"Tips and Tricks","description":"Securing Mapbox Token","source":"@site/../docs/get-started/tips-and-tricks.md","sourceDirName":"get-started","slug":"/get-started/tips-and-tricks","permalink":"/react-map-gl/docs/get-started/tips-and-tricks","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/get-started/tips-and-tricks.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"Adding Custom Data","permalink":"/react-map-gl/docs/get-started/adding-custom-data"},"next":{"title":"default (Map)","permalink":"/react-map-gl/docs/api-reference/mapbox/map"}}');var r=t(4848),s=t(8453),o=t(1470),i=t(9365);const l={},c="Tips and Tricks",u={},d=[{value:"Securing Mapbox Token",id:"securing-mapbox-token",level:2},{value:"Minimize Cost from Frequent Re-mounting",id:"minimize-cost-from-frequent-re-mounting",level:2},{value:"Performance with Many Markers",id:"performance-with-many-markers",level:2},{value:"Finding out if a point is within the current viewport",id:"finding-out-if-a-point-is-within-the-current-viewport",level:2}];function p(e){const n={a:"a",br:"br",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"tips-and-tricks",children:"Tips and Tricks"})}),"\n",(0,r.jsx)(n.h2,{id:"securing-mapbox-token",children:"Securing Mapbox Token"}),"\n",(0,r.jsx)(n.p,{children:"Because Mapbox tokens are required for the client application to make requests to Mapbox servers, you have to distribute it with your app. It is not possible to stop a visitor to your site from scraping the token. The practice outlined below can help you protect your token from being abused."}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Never commit your token in clear text into GitHub or other source control."}),"\n",(0,r.jsxs)(n.li,{children:["In your local dev environment, define the token in an environment variable e.g. ",(0,r.jsx)(n.code,{children:"MapboxAccessTokenDev=..."})," in the command line, or use something like ",(0,r.jsx)(n.a,{href:"https://github.com/motdotla/dotenv",children:"dotenv"})," and put ",(0,r.jsx)(n.code,{children:"MapboxAccessTokenDev=..."})," in a ",(0,r.jsx)(n.code,{children:".env"})," file. Add ",(0,r.jsx)(n.code,{children:".env"})," to ",(0,r.jsx)(n.code,{children:".gitignore"})," so it's never tracked. If your app is deployed by a continuous integration pipeline, follow its documentation and set a secret environment variable."]}),"\n",(0,r.jsxs)(n.li,{children:["Create separate tokens for development (often times on ",(0,r.jsx)(n.code,{children:"http://localhost"}),"), public code snippet (Gist, Codepen etc.) and production (deployed to ",(0,r.jsx)(n.code,{children:"https://mycompany.com"}),"). The public token should be rotated regularly. The production token should have strict ",(0,r.jsx)(n.a,{href:"https://docs.mapbox.com/help/troubleshooting/how-to-use-mapbox-securely/#access-tokens",children:"scope and URL restrictions"})," that only allows it to be used on a domain that you own."]}),"\n",(0,r.jsx)(n.li,{children:"Add the following to your bundler config:"}),"\n"]}),"\n","\n",(0,r.jsxs)(o.A,{children:[(0,r.jsx)(i.A,{value:"webpack",label:"Webpack",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-js",children:"/// webpack.config.js\nconst {DefinePlugin} = require('webpack');\n\nmodule.exports = {\n ...\n plugins: [\n new DefinePlugin({\n 'process.env.MapboxAccessToken': JSON.stringify(process.env.NODE_ENV == 'production' ? process.env.MapboxAccessTokenProd : process.env.MapboxAccessTokenDev)\n })\n ]\n};\n"})})}),(0,r.jsx)(i.A,{value:"rollup",label:"Rollup",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-js",children:"/// rollup.config.js\nconst replace = require('@rollup/plugin-replace').default;\n\nmodule.exports = {\n ...\n plugins: [\n replace({ \n 'process.env.MapboxAccessToken': JSON.stringify(process.env.NODE_ENV == 'production' ? process.env.MapboxAccessTokenProd : process.env.MapboxAccessTokenDev)\n })\n ]\n};\n"})})})]}),"\n",(0,r.jsxs)(n.p,{children:["react-map-gl automatically picks up ",(0,r.jsx)(n.code,{children:"process.env.MapboxAccessToken"})," or ",(0,r.jsx)(n.code,{children:"process.env.REACT_APP_MAPBOX_ACCESS_TOKEN"})," if they are defined. Alternatively, you can use your own variable name (e.g. ",(0,r.jsx)(n.code,{children:"__SUPER_SECRET_TOKEN__"}),") and pass it in manually with ",(0,r.jsx)(n.code,{children:"mapboxAccessToken={__SUPER_SECRET_TOKEN__}"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"minimize-cost-from-frequent-re-mounting",children:"Minimize Cost from Frequent Re-mounting"}),"\n",(0,r.jsx)(n.p,{children:"In a moderately complex single-page app, as the user navigates through the UI, a map component may unmount and mount again many times during a session. Consider the following layout:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-tsx",children:'/// Example using Tabs from Material UI\n\n \n \n \n \n \n \n {items.map(renderMarker)}\n \n \n \n \n {items.map(renderRow)}\n
\n
\n
\n'})}),"\n",(0,r.jsxs)(n.p,{children:['Every time the user clicks the "table" tab, the map is unmounted. When they click the "map" tab, the map is mounted again. As of v2.0, mapbox-gl generates a ',(0,r.jsx)(n.a,{href:"https://www.mapbox.com/pricing#maploads",children:"billable event"})," every time a Map object is initialized. It is obviously not ideal to get billed for just collapsing and expanding part of the UI."]}),"\n",(0,r.jsxs)(n.p,{children:["In this case, it is recommended that you set the ",(0,r.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/map#reuseMaps",children:"reuseMaps"})," prop to ",(0,r.jsx)(n.code,{children:"true"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-tsx",children:' \n \n {items.map(renderMarker)}\n \n \n'})}),"\n",(0,r.jsx)(n.p,{children:"This bypasses the initialization when a map is removed then added back."}),"\n",(0,r.jsx)(n.h2,{id:"performance-with-many-markers",children:"Performance with Many Markers"}),"\n",(0,r.jsx)(n.p,{children:"If your application uses externally managed camera state, like with Redux, the number of React rerenders may be very high when the user is interacting with the map. Consider the following setup:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-tsx",children:"import {useSelector, useDispatch} from 'react-redux';\nimport Map, {Marker} from 'react-map-gl/maplibre';\n\nfunction MapView() {\n const viewState = useSelector((s: RootState) => s.viewState);\n const vehicles = useSelector((s: RootState) => s.vehicles);\n const dispatch = useDispatch();\n\n const onMove = useCallback(evt => {\n dispatch({type: 'setViewState', payload: evt.viewState});\n }, []);\n\n return (\n \n >\n {vehicles.map(vehicle => (\n \n \n // vehicle icon\n \n )\n )}\n
\n );\n}\n"})}),"\n",(0,r.jsx)(n.p,{children:"This component is rerendered on every animation frame when the user is dragging the map. If it's trying to render hundreds of markers, the performance lag will become quite visible."}),"\n",(0,r.jsxs)(n.p,{children:["One way to improve the performance is ",(0,r.jsx)(n.code,{children:"useMemo"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-tsx",children:' const markers = useMemo(() => vehicles.map(vehicle => (\n \n \n // vehicle icon\n \n )\n ), [vehicles]);\n\n return (\n \n >\n {markers}\n \n );\n}\n'})}),"\n",(0,r.jsx)(n.p,{children:"This prevents React from rerendering the markers unless they have changed."}),"\n",(0,r.jsxs)(n.p,{children:["If your application can do without complicated DOM objects and CSS styling, consider switching to a ",(0,r.jsx)(n.a,{href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/layers/#symbol",children:"symbol layer"}),". Layers are rendered in WebGL and are much more performant than markers:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-tsx",children:" const vehiclesGeoJSON = useMemo(() => {\n return {\n type: 'FeatureCollection',\n features: vehicles.map(vehicle => turf.point(vehicle.coordinates, vehicle))\n };\n }, [vehicles]);\n\n return (\n \n >\n \n \n \n \n );\n"})}),"\n",(0,r.jsx)(n.h2,{id:"finding-out-if-a-point-is-within-the-current-viewport",children:"Finding out if a point is within the current viewport"}),"\n",(0,r.jsxs)(n.p,{children:["There are some situations where you want to know if a point is currently visible on the map.",(0,r.jsx)(n.br,{}),"\n","Checking this is simple and can be done like so:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-tsx",children:"const mapRef = useRef();\n\nconst checkIfPositionInViewport = (lat, lng) => {\n const bounds = mapRef.current.getBounds();\n return bounds.contains([lng, lat]);\n}\n\nreturn \n"})})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}},9365:(e,n,t)=>{t.d(n,{A:()=>o});t(6540);var a=t(4164);const r={tabItem:"tabItem_Ymn6"};var s=t(4848);function o(e){let{children:n,hidden:t,className:o}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,a.A)(r.tabItem,o),hidden:t,children:n})}},1470:(e,n,t)=>{t.d(n,{A:()=>k});var a=t(6540),r=t(4164),s=t(3104),o=t(6347),i=t(205),l=t(7485),c=t(1682),u=t(679);function d(e){var n,t;return null!=(n=null==(t=a.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error("Docusaurus error: Bad child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:t.filter(Boolean))?n:[]}function p(e){const{values:n,children:t}=e;return(0,a.useMemo)((()=>{const e=null!=n?n:function(e){return d(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}(t);return function(e){const n=(0,c.XI)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error('Docusaurus error: Duplicate values "'+n.map((e=>e.value)).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[n,t])}function h(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function m(e){let{queryString:n=!1,groupId:t}=e;const r=(0,o.W6)(),s=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=t?t:null}({queryString:n,groupId:t});return[(0,l.aZ)(s),(0,a.useCallback)((e=>{if(!s)return;const n=new URLSearchParams(r.location.search);n.set(s,e),r.replace(Object.assign({},r.location,{search:n.toString()}))}),[s,r])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,s=p(e),[o,l]=(0,a.useState)((()=>function(e){var n;let{defaultValue:t,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!h({value:t,tabValues:a}))throw new Error('Docusaurus error: The has a defaultValue "'+t+'" but none of its children has the corresponding value. Available values are: '+a.map((e=>e.value)).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return t}const r=null!=(n=a.find((e=>e.default)))?n:a[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:s}))),[c,d]=m({queryString:t,groupId:r}),[b,v]=function(e){let{groupId:n}=e;const t=function(e){return e?"docusaurus.tab."+e:null}(n),[r,s]=(0,u.Dv)(t);return[r,(0,a.useCallback)((e=>{t&&s.set(e)}),[t,s])]}({groupId:r}),g=(()=>{const e=null!=c?c:b;return h({value:e,tabValues:s})?e:null})();(0,i.A)((()=>{g&&l(g)}),[g]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!h({value:e,tabValues:s}))throw new Error("Can't select invalid tab value="+e);l(e),d(e),v(e)}),[d,v,s]),tabValues:s}}var v=t(2303);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var f=t(4848);function x(e){let{className:n,block:t,selectedValue:a,selectValue:o,tabValues:i}=e;const l=[],{blockElementScrollPositionUntilNextRender:c}=(0,s.a_)(),u=e=>{const n=e.currentTarget,t=l.indexOf(n),r=i[t].value;r!==a&&(c(n),o(r))},d=e=>{var n;let t=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{var a;const n=l.indexOf(e.currentTarget)+1;t=null!=(a=l[n])?a:l[0];break}case"ArrowLeft":{var r;const n=l.indexOf(e.currentTarget)-1;t=null!=(r=l[n])?r:l[l.length-1];break}}null==(n=t)||n.focus()};return(0,f.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":t},n),children:i.map((e=>{let{value:n,label:t,attributes:s}=e;return(0,f.jsx)("li",Object.assign({role:"tab",tabIndex:a===n?0:-1,"aria-selected":a===n,ref:e=>{l.push(e)},onKeyDown:d,onClick:u},s,{className:(0,r.A)("tabs__item",g.tabItem,null==s?void 0:s.className,{"tabs__item--active":a===n}),children:null!=t?t:n}),n)}))})}function y(e){let{lazy:n,children:t,selectedValue:s}=e;const o=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=o.find((e=>e.props.value===s));return e?(0,a.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,f.jsx)("div",{className:"margin-top--md",children:o.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==s})))})}function j(e){const n=b(e);return(0,f.jsxs)("div",{className:(0,r.A)("tabs-container",g.tabList),children:[(0,f.jsx)(x,Object.assign({},n,e)),(0,f.jsx)(y,Object.assign({},n,e))]})}function k(e){const n=(0,v.A)();return(0,f.jsx)(j,Object.assign({},e,{children:d(e.children)}),String(n))}},8453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>i});var a=t(6540);const r={},s=a.createContext(r);function o(e){const n=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),a.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5525.373971e1.js b/assets/js/5525.373971e1.js deleted file mode 100644 index b45acfd7..00000000 --- a/assets/js/5525.373971e1.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[5525],{5525:()=>{}}]); \ No newline at end of file diff --git a/assets/js/5596474f.9caf4ca7.js b/assets/js/5596474f.9caf4ca7.js deleted file mode 100644 index b8cd7cff..00000000 --- a/assets/js/5596474f.9caf4ca7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[9162],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),c=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=c(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),p=c(r),d=a,f=p["".concat(i,".").concat(d)]||p[d]||m[d]||o;return r?n.createElement(f,l(l({ref:t},s),{},{components:r})):n.createElement(f,l({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[p]="string"==typeof e?e:a,l[1]=u;for(var c=2;c{r.d(t,{Z:()=>l});var n=r(7294),a=r(6010);const o={tabItem:"tabItem_Ymn6"};function l(e){var t=e.children,r=e.hidden,l=e.className;return n.createElement("div",{role:"tabpanel",className:(0,a.Z)(o.tabItem,l),hidden:r},t)}},4866:(e,t,r)=>{r.d(t,{Z:()=>w});var n=r(7462),a=r(7294),o=r(6010),l=r(2466),u=r(6550),i=r(1980),c=r(7392),s=r(12);function p(e){return function(e){var t,r;return null!=(t=null==(r=a.Children.map(e,(function(e){if(!e||(0,a.isValidElement)(e)&&(t=e.props)&&"object"==typeof t&&"value"in t)return e;var t;throw new Error("Docusaurus error: Bad child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:r.filter(Boolean))?t:[]}(e).map((function(e){var t=e.props;return{value:t.value,label:t.label,attributes:t.attributes,default:t.default}}))}function m(e){var t=e.values,r=e.children;return(0,a.useMemo)((function(){var e=null!=t?t:p(r);return function(e){var t=(0,c.l)(e,(function(e,t){return e.value===t.value}));if(t.length>0)throw new Error('Docusaurus error: Duplicate values "'+t.map((function(e){return e.value})).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[t,r])}function d(e){var t=e.value;return e.tabValues.some((function(e){return e.value===t}))}function f(e){var t=e.queryString,r=void 0!==t&&t,n=e.groupId,o=(0,u.k6)(),l=function(e){var t=e.queryString,r=void 0!==t&&t,n=e.groupId;if("string"==typeof r)return r;if(!1===r)return null;if(!0===r&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=n?n:null}({queryString:r,groupId:n});return[(0,i._X)(l),(0,a.useCallback)((function(e){if(l){var t=new URLSearchParams(o.location.search);t.set(l,e),o.replace(Object.assign({},o.location,{search:t.toString()}))}}),[l,o])]}function y(e){var t,r,n,o,l=e.defaultValue,u=e.queryString,i=void 0!==u&&u,c=e.groupId,p=m(e),y=(0,a.useState)((function(){return function(e){var t,r=e.defaultValue,n=e.tabValues;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(r){if(!d({value:r,tabValues:n}))throw new Error('Docusaurus error: The has a defaultValue "'+r+'" but none of its children has the corresponding value. Available values are: '+n.map((function(e){return e.value})).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return r}var a=null!=(t=n.find((function(e){return e.default})))?t:n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:l,tabValues:p})})),b=y[0],v=y[1],g=f({queryString:i,groupId:c}),h=g[0],k=g[1],w=(t=function(e){return e?"docusaurus.tab."+e:null}({groupId:c}.groupId),r=(0,s.Nk)(t),n=r[0],o=r[1],[n,(0,a.useCallback)((function(e){t&&o.set(e)}),[t,o])]),S=w[0],j=w[1],x=function(){var e=null!=h?h:S;return d({value:e,tabValues:p})?e:null}();return(0,a.useLayoutEffect)((function(){x&&v(x)}),[x]),{selectedValue:b,selectValue:(0,a.useCallback)((function(e){if(!d({value:e,tabValues:p}))throw new Error("Can't select invalid tab value="+e);v(e),k(e),j(e)}),[k,j,p]),tabValues:p}}var b=r(2389);const v={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function g(e){var t=e.className,r=e.block,u=e.selectedValue,i=e.selectValue,c=e.tabValues,s=[],p=(0,l.o5)().blockElementScrollPositionUntilNextRender,m=function(e){var t=e.currentTarget,r=s.indexOf(t),n=c[r].value;n!==u&&(p(t),i(n))},d=function(e){var t,r=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":var n,a=s.indexOf(e.currentTarget)+1;r=null!=(n=s[a])?n:s[0];break;case"ArrowLeft":var o,l=s.indexOf(e.currentTarget)-1;r=null!=(o=s[l])?o:s[s.length-1]}null==(t=r)||t.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":r},t)},c.map((function(e){var t=e.value,r=e.label,l=e.attributes;return a.createElement("li",(0,n.Z)({role:"tab",tabIndex:u===t?0:-1,"aria-selected":u===t,key:t,ref:function(e){return s.push(e)},onKeyDown:d,onClick:m},l,{className:(0,o.Z)("tabs__item",v.tabItem,null==l?void 0:l.className,{"tabs__item--active":u===t})}),null!=r?r:t)})))}function h(e){var t=e.lazy,r=e.children,n=e.selectedValue,o=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){var l=o.find((function(e){return e.props.value===n}));return l?(0,a.cloneElement)(l,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map((function(e,t){return(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==n})})))}function k(e){var t=y(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",v.tabList)},a.createElement(g,(0,n.Z)({},e,t)),a.createElement(h,(0,n.Z)({},e,t)))}function w(e){var t=(0,b.Z)();return a.createElement(k,(0,n.Z)({key:String(t)},e))}},5578:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>m,contentTitle:()=>s,default:()=>b,frontMatter:()=>c,metadata:()=>p,toc:()=>d});var n=r(7462),a=r(3366),o=(r(7294),r(3905)),l=r(4866),u=r(5162),i=["components"],c={},s="Source",p={unversionedId:"api-reference/source",id:"api-reference/source",title:"Source",description:"This component allows apps to create a map source using React. It may contain Layer components as children.",source:"@site/../docs/api-reference/source.md",sourceDirName:"api-reference",slug:"/api-reference/source",permalink:"/react-map-gl/docs/api-reference/source",draft:!1,editUrl:"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/source.md",tags:[],version:"current",frontMatter:{},sidebar:"docsSidebar",previous:{title:"ScaleControl",permalink:"/react-map-gl/docs/api-reference/scale-control"},next:{title:"useControl",permalink:"/react-map-gl/docs/api-reference/use-control"}},m={},d=[{value:"Properties",id:"properties",level:2},{value:"id: string",id:"id",level:4},{value:"type: string",id:"type",level:4},{value:"Source",id:"source-1",level:2}],f={toc:d},y="wrapper";function b(e){var t=e.components,r=(0,a.Z)(e,i);return(0,o.kt)(y,(0,n.Z)({},f,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"source"},"Source"),(0,o.kt)("p",null,"This component allows apps to create a ",(0,o.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/#sources"},"map source")," using React. It may contain ",(0,o.kt)("a",{parentName:"p",href:"/react-map-gl/docs/api-reference/layer"},"Layer")," components as children."),(0,o.kt)(l.Z,{groupId:"map-library",mdxType:"Tabs"},(0,o.kt)(u.Z,{value:"mapbox",label:"Mapbox",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"import * as React from 'react';\nimport Map, {Source, Layer} from 'react-map-gl';\nimport type {CircleLayer} from 'react-map-gl';\nimport type {FeatureCollection} from 'geojson';\n\nconst geojson: FeatureCollection = {\n type: 'FeatureCollection',\n features: [\n {type: 'Feature', geometry: {type: 'Point', coordinates: [-122.4, 37.8]}}\n ]\n};\n\nconst layerStyle: CircleLayer = {\n id: 'point',\n type: 'circle',\n paint: {\n 'circle-radius': 10,\n 'circle-color': '#007cbf'\n }\n};\n\nfunction App() {\n return \n \n \n \n ;\n}\n"))),(0,o.kt)(u.Z,{value:"maplibre",label:"Maplibre",mdxType:"TabItem"},(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-tsx"},"import * as React from 'react';\nimport Map, {Source, Layer} from 'react-map-gl/maplibre';\nimport type {CircleLayer} from 'react-map-gl/maplibre';\nimport type {FeatureCollection} from 'geojson';\n\nconst geojson: FeatureCollection = {\n type: 'FeatureCollection',\n features: [\n {type: 'Feature', geometry: {type: 'Point', coordinates: [-122.4, 37.8]}}\n ]\n};\n\nconst layerStyle: CircleLayer = {\n id: 'point',\n type: 'circle',\n paint: {\n 'circle-radius': 10,\n 'circle-color': '#007cbf'\n }\n};\n\nfunction App() {\n return \n \n \n \n ;\n}\n")))),(0,o.kt)("h2",{id:"properties"},"Properties"),(0,o.kt)("p",null,"The props provided to this component should be conforming to the ",(0,o.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/#sources"},"Mapbox source specification")," or ",(0,o.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/api/#canvassourceoptions"},"CanvasSourceOptions"),"."),(0,o.kt)("p",null,"When props change ",(0,o.kt)("em",{parentName:"p"},"shallowly"),", the component will attempt to update the source. Do not define objects/arrays inline to avoid perf hit."),(0,o.kt)("p",null,"Once a ",(0,o.kt)("inlineCode",{parentName:"p"},"")," is mounted, the following props should not change. If add/remove multiple JSX sources dynamically, make sure you use React's ",(0,o.kt)("a",{parentName:"p",href:"https://reactjs.org/docs/lists-and-keys.html#keys"},"key prop")," to give each element a stable identity."),(0,o.kt)("h4",{id:"id"},(0,o.kt)("inlineCode",{parentName:"h4"},"id"),": string"),(0,o.kt)("p",null,"Unique identifier of the source. If not provided, a default id will be assigned."),(0,o.kt)("h4",{id:"type"},(0,o.kt)("inlineCode",{parentName:"h4"},"type"),": string"),(0,o.kt)("p",null,"Required. Type of the source."),(0,o.kt)("h2",{id:"source-1"},"Source"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/visgl/react-map-gl/tree/7.1-release/src/components/source.ts"},"source.ts")))}b.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/56cb5d03.ee7b748a.js b/assets/js/56cb5d03.ee7b748a.js new file mode 100644 index 00000000..b6b6b0e2 --- /dev/null +++ b/assets/js/56cb5d03.ee7b748a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[1101],{6445:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>f,contentTitle:()=>h,default:()=>v,frontMatter:()=>m,metadata:()=>o,toc:()=>g});const o=JSON.parse('{"id":"maplibre/heatmap","title":"Heatmap","description":"","source":"@site/src/examples/maplibre/heatmap.mdx","sourceDirName":"maplibre","slug":"/maplibre/heatmap","permalink":"/react-map-gl/examples/maplibre/heatmap","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"GeoJSON","permalink":"/react-map-gl/examples/maplibre/geojson"},"next":{"title":"Limit Map Interaction","permalink":"/react-map-gl/examples/maplibre/interaction"}}');var r=n(4848),s=n(8453),a=n(6540),i=(n(5338),n(5490));function l(e){const t=new Date(e);return t.getMonth()+1+"/"+t.getDate()+"/"+t.getFullYear()}function c(e){const{startTime:t,endTime:n,onChangeTime:o,allDays:s,onChangeAllDays:a,selectedTime:i}=e,c=864e5,u=Math.round((n-t)/c),p=Math.round((i-t)/c);return(0,r.jsxs)("div",{className:"control-panel",children:[(0,r.jsx)("h3",{children:"Heatmap"}),(0,r.jsxs)("p",{children:["Map showing earthquakes",(0,r.jsx)("br",{}),"from ",(0,r.jsx)("b",{children:l(t)})," to ",(0,r.jsx)("b",{children:l(n)}),"."]}),(0,r.jsx)("hr",{}),(0,r.jsxs)("div",{className:"input",children:[(0,r.jsx)("label",{children:"All Days"}),(0,r.jsx)("input",{type:"checkbox",name:"allday",checked:s,onChange:e=>a(e.target.checked)})]}),(0,r.jsxs)("div",{className:"input "+(s?"disabled":""),children:[(0,r.jsxs)("label",{children:["Each Day: ",l(i)]}),(0,r.jsx)("input",{type:"range",disabled:s,min:1,max:u,value:p,step:1,onChange:e=>{const n=e.target.value;o(t+n*c)}})]}),(0,r.jsx)("hr",{}),(0,r.jsxs)("p",{children:["Data source:"," ",(0,r.jsx)("a",{href:"https://maplibre.org/maplibre-gl-js/docs/assets/earthquakes.geojson",children:"earthquakes.geojson"})]}),(0,r.jsx)("div",{className:"source-link",children:(0,r.jsx)("a",{href:"https://github.com/visgl/react-maplibre/tree/1.0-release/examples/heatmap",target:"_new",children:"View Code \u2197"})})]})}const u=a.memo(c),p={id:"heatmap",maxzoom:9,type:"heatmap",paint:{"heatmap-weight":["interpolate",["linear"],["get","mag"],0,0,6,1],"heatmap-intensity":["interpolate",["linear"],["zoom"],0,1,9,3],"heatmap-color":["interpolate",["linear"],["heatmap-density"],0,"rgba(33,102,172,0)",.2,"rgb(103,169,207)",.4,"rgb(209,229,240)",.6,"rgb(253,219,199)",.8,"rgb(239,138,98)",.9,"rgb(255,201,101)"],"heatmap-radius":["interpolate",["linear"],["zoom"],0,2,9,20],"heatmap-opacity":["interpolate",["linear"],["zoom"],7,1,9,0]}};function d(){const[e,t]=(0,a.useState)(!0),[n,o]=(0,a.useState)([0,0]),[s,l]=(0,a.useState)(0),[c,d]=(0,a.useState)(null);(0,a.useEffect)((()=>{fetch("https://maplibre.org/maplibre-gl-js/docs/assets/earthquakes.geojson").then((e=>e.json())).then((e=>{const t=e.features,n=t[0].properties.time,r=t[t.length-1].properties.time;o([r,n]),d(e),l(n)})).catch((e=>console.error("Could not load data",e)))}),[]);const m=(0,a.useMemo)((()=>e?c:function(e,t){const n=new Date(t),o=n.getFullYear(),r=n.getMonth(),s=n.getDate();return{type:"FeatureCollection",features:e.features.filter((e=>{const t=new Date(e.properties.time);return t.getFullYear()===o&&t.getMonth()===r&&t.getDate()===s}))}}(c,s)),[c,e,s]);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.Ay,{initialViewState:{latitude:40,longitude:-100,zoom:3},mapStyle:"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json",children:m&&(0,r.jsx)(i.kL,{type:"geojson",data:m,children:(0,r.jsx)(i.Wd,Object.assign({},p))})}),(0,r.jsx)(u,{startTime:n[0],endTime:n[1],selectedTime:s,allDays:e,onChangeTime:l,onChangeAllDays:t})]})}const m={},h="Heatmap",f={},g=[];function y(e){const t={h1:"h1",header:"header",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"heatmap",children:"Heatmap"})}),"\n","\n",(0,r.jsx)(d,{})]})}function v(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(y,{...e})}):y(e)}},5490:(e,t,n)=>{n.d(t,{T3:()=>R,tG:()=>z,Wd:()=>B,T5:()=>j,pH:()=>w,ov:()=>I,zD:()=>P,g0:()=>A,kL:()=>Z,jG:()=>N,Ay:()=>j,VI:()=>k});var o=n(6540),r=n(4848);const s=o.createContext(null);function a(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n{let n=null;"interactive"in e&&(n=Object.assign({},e),delete n.interactive);const o=t[e.ref];if(o){n=n||Object.assign({},e),delete n.ref;for(const e of c)e in o&&(n[e]=o[e])}return n||e}));return Object.assign({},e,{layers:n})}const p={version:8,sources:{},layers:[]},d={mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",click:"onClick",dblclick:"onDblClick",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",mouseout:"onMouseOut",contextmenu:"onContextMenu",touchstart:"onTouchStart",touchend:"onTouchEnd",touchmove:"onTouchMove",touchcancel:"onTouchCancel"},m={movestart:"onMoveStart",move:"onMove",moveend:"onMoveEnd",dragstart:"onDragStart",drag:"onDrag",dragend:"onDragEnd",zoomstart:"onZoomStart",zoom:"onZoom",zoomend:"onZoomEnd",rotatestart:"onRotateStart",rotate:"onRotate",rotateend:"onRotateEnd",pitchstart:"onPitchStart",pitch:"onPitch",pitchend:"onPitchEnd"},h={wheel:"onWheel",boxzoomstart:"onBoxZoomStart",boxzoomend:"onBoxZoomEnd",boxzoomcancel:"onBoxZoomCancel",resize:"onResize",load:"onLoad",render:"onRender",idle:"onIdle",remove:"onRemove",data:"onData",styledata:"onStyleData",sourcedata:"onSourceData",error:"onError"},f=["minZoom","maxZoom","minPitch","maxPitch","maxBounds","projection","renderWorldCopies"],g=["scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate","touchPitch"];class y{constructor(e,t,n){this._map=null,this._internalUpdate=!1,this._hoveredFeatures=null,this._propsedCameraUpdate=null,this._styleComponents={},this._onEvent=e=>{const t=this.props[h[e.type]];t?t(e):"error"===e.type&&console.error(e.error)},this._onCameraEvent=e=>{if(this._internalUpdate)return;e.viewState=this._propsedCameraUpdate||i(this._map.transform);const t=this.props[m[e.type]];t&&t(e)},this._onCameraUpdate=e=>this._internalUpdate?e:(this._propsedCameraUpdate=i(e),l(e,this.props)),this._onPointerEvent=e=>{"mousemove"!==e.type&&"mouseout"!==e.type||this._updateHover(e);const t=this.props[d[e.type]];t&&(this.props.interactiveLayerIds&&"mouseover"!==e.type&&"mouseout"!==e.type&&(e.features=this._hoveredFeatures||this._queryRenderedFeatures(e.point)),t(e),delete e.features)},this._MapClass=e,this.props=t,this._initialize(n)}get map(){return this._map}setProps(e){const t=this.props;this.props=e;const n=this._updateSettings(e,t),o=this._updateSize(e),r=this._updateViewState(e);this._updateStyle(e,t),this._updateStyleComponents(e),this._updateHandlers(e,t),(n||o||r&&!this._map.isMoving())&&this.redraw()}static reuse(e,t){const n=y.savedMaps.pop();if(!n)return null;const o=n.map,r=o.getContainer();for(t.className=r.className;r.childNodes.length>0;)t.appendChild(r.childNodes[0]);o._container=t;const s=o._resizeObserver;s&&(s.disconnect(),s.observe(t)),n.setProps(Object.assign({},e,{styleDiffing:!1})),o.resize();const{initialViewState:a}=e;return a&&(a.bounds?o.fitBounds(a.bounds,Object.assign({},a.fitBoundsOptions,{duration:0})):n._updateViewState(a)),o.isStyleLoaded()?o.fire("load"):o.once("style.load",(()=>o.fire("load"))),o._update(),n}_initialize(e){const{props:t}=this,{mapStyle:n=p}=t,o=Object.assign({},t,t.initialViewState,{container:e,style:u(n)}),r=o.initialViewState||o.viewState||o;if(Object.assign(o,{center:[r.longitude||0,r.latitude||0],zoom:r.zoom||0,pitch:r.pitch||0,bearing:r.bearing||0}),t.gl){const e=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=e,t.gl)}const s=new this._MapClass(o);r.padding&&s.setPadding(r.padding),t.cursor&&(s.getCanvas().style.cursor=t.cursor),s.transformCameraUpdate=this._onCameraUpdate,s.on("style.load",(()=>{this._styleComponents={light:s.getLight(),sky:s.getSky(),projection:null==s.getProjection?void 0:s.getProjection(),terrain:s.getTerrain()},this._updateStyleComponents(this.props)})),s.on("sourcedata",(()=>{this._updateStyleComponents(this.props)}));for(const a in d)s.on(a,this._onPointerEvent);for(const a in m)s.on(a,this._onCameraEvent);for(const a in h)s.on(a,this._onEvent);this._map=s}recycle(){const e=this.map.getContainer().querySelector("[mapboxgl-children]");null==e||e.remove(),y.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){const e=this._map;e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())}_updateSize(e){const{viewState:t}=e;if(t){const e=this._map;if(t.width!==e.transform.width||t.height!==e.transform.height)return e.resize(),!0}return!1}_updateViewState(e){const t=this._map,n=t.transform;if(!t.isMoving()){const o=l(n,e);if(Object.keys(o).length>0)return this._internalUpdate=!0,t.jumpTo(o),this._internalUpdate=!1,!0}return!1}_updateSettings(e,t){const n=this._map;let o=!1;for(const r of f)if(r in e&&!a(e[r],t[r])){o=!0;const t=n["set"+r[0].toUpperCase()+r.slice(1)];null==t||t.call(n,e[r])}return o}_updateStyle(e,t){if(e.cursor!==t.cursor&&(this._map.getCanvas().style.cursor=e.cursor||""),e.mapStyle!==t.mapStyle){const{mapStyle:t=p,styleDiffing:n=!0}=e,o={diff:n};"localIdeographFontFamily"in e&&(o.localIdeographFontFamily=e.localIdeographFontFamily),this._map.setStyle(u(t),o)}}_updateStyleComponents(e){let{light:t,projection:n,sky:o,terrain:r}=e;const s=this._map,i=this._styleComponents;var l;s.style._loaded&&(t&&!a(t,i.light)&&(i.light=t,s.setLight(t)),n&&!a(n,i.projection)&&n!==(null==(l=i.projection)?void 0:l.type)&&(i.projection="string"==typeof n?{type:n}:n,null==s.setProjection||s.setProjection(i.projection)),o&&!a(o,i.sky)&&(i.sky=o,s.setSky(o)),void 0===r||a(r,i.terrain)||r&&!s.getSource(r.source)||(i.terrain=r,s.setTerrain(r)))}_updateHandlers(e,t){const n=this._map;for(const s of g){var o,r;const i=null==(o=e[s])||o;a(i,null==(r=t[s])||r)||(i?n[s].enable(i):n[s].disable())}}_queryRenderedFeatures(e){const t=this._map,{interactiveLayerIds:n=[]}=this.props;try{return t.queryRenderedFeatures(e,{layers:n.filter(t.getLayer.bind(t))})}catch(o){return[]}}_updateHover(e){const{props:t}=this;if(t.interactiveLayerIds&&(t.onMouseMove||t.onMouseEnter||t.onMouseLeave)){var n;const t=e.type,o=(null==(n=this._hoveredFeatures)?void 0:n.length)>0,r=this._queryRenderedFeatures(e.point),s=r.length>0;!s&&o&&(e.type="mouseleave",this._onPointerEvent(e)),this._hoveredFeatures=r,s&&!o&&(e.type="mouseenter",this._onPointerEvent(e)),e.type=t}else this._hoveredFeatures=null}}y.savedMaps=[];const v=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function b(e){if(!e)return null;const t=e.map,n={getMap:()=>t};for(const o of function(e){const t=new Set;let n=e;for(;n;){for(const o of Object.getOwnPropertyNames(n))"_"!==o[0]&&"function"==typeof e[o]&&"fire"!==o&&"setEventedParent"!==o&&t.add(o);n=Object.getPrototypeOf(n)}return Array.from(t)}(t))o in n||v.includes(o)||(n[o]=t[o].bind(t));return n}const x="undefined"!=typeof document?o.useLayoutEffect:o.useEffect;const _=o.createContext(null);function C(e,t){const a=(0,o.useContext)(s),[i,l]=(0,o.useState)(null),c=(0,o.useRef)(),{current:u}=(0,o.useRef)({mapLib:null,map:null});(0,o.useEffect)((()=>{const t=e.mapLib;let o,r=!0;return Promise.resolve(t||n.e(6443).then(n.t.bind(n,6443,23))).then((t=>{if(!r)return;if(!t)throw new Error("Invalid mapLib");const n="Map"in t?t:t.default;if(!n.Map)throw new Error("Invalid mapLib");if(function(e,t){const{RTLTextPlugin:n,maxParallelImageRequests:o,workerCount:r,workerUrl:s}=t;if(n&&e.getRTLTextPluginStatus&&"unavailable"===e.getRTLTextPluginStatus()){const{pluginUrl:t,lazy:o=!0}="string"==typeof n?{pluginUrl:n}:n;e.setRTLTextPlugin(t,(e=>{e&&console.error(e)}),o)}void 0!==o&&e.setMaxParallelImageRequests(o),void 0!==r&&e.setWorkerCount(r),void 0!==s&&e.setWorkerUrl(s)}(n,e),n.supported&&!n.supported(e))throw new Error("Map is not supported by this browser");e.reuseMaps&&(o=y.reuse(e,c.current)),o||(o=new y(n.Map,e,c.current)),u.map=b(o),u.mapLib=n,l(o),null==a||a.onMapMount(u.map,e.id)})).catch((t=>{const{onError:n}=e;n?n({type:"error",target:null,originalEvent:null,error:t}):console.error(t)})),()=>{r=!1,o&&(null==a||a.onMapUnmount(e.id),e.reuseMaps?o.recycle():o.destroy())}}),[]),x((()=>{i&&i.setProps(e)})),(0,o.useImperativeHandle)(t,(()=>u.map),[i]);const p=(0,o.useMemo)((()=>Object.assign({position:"relative",width:"100%",height:"100%"},e.style)),[e.style]);return(0,r.jsx)("div",{id:e.id,ref:c,style:p,children:i&&(0,r.jsx)(_.Provider,{value:u,children:(0,r.jsx)("div",{"mapboxgl-children":"",style:{height:"100%"},children:e.children})})})}const j=o.forwardRef(C);var L=n(961);const S=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function M(e,t){if(!e||!t)return;const n=e.style;for(const o in t){const e=t[o];Number.isFinite(e)&&!S.test(o)?n[o]=e+"px":n[o]=e}}const w=(0,o.memo)((0,o.forwardRef)(((e,t)=>{const{map:n,mapLib:r}=(0,o.useContext)(_),s=(0,o.useRef)({props:e});s.current.props=e;const a=(0,o.useMemo)((()=>{let t=!1;o.Children.forEach(e.children,(e=>{e&&(t=!0)}));const n=Object.assign({},e,{element:t?document.createElement("div"):null}),i=new r.Marker(n);return i.setLngLat([e.longitude,e.latitude]),i.getElement().addEventListener("click",(e=>{null==s.current.props.onClick||s.current.props.onClick({type:"click",target:i,originalEvent:e})})),i.on("dragstart",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDragStart||s.current.props.onDragStart(t)})),i.on("drag",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDrag||s.current.props.onDrag(t)})),i.on("dragend",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDragEnd||s.current.props.onDragEnd(t)})),i}),[]);(0,o.useEffect)((()=>(a.addTo(n.getMap()),()=>{a.remove()})),[]);const{longitude:i,latitude:l,offset:c,style:u,draggable:p=!1,popup:d=null,rotation:m=0,rotationAlignment:h="auto",pitchAlignment:f="auto"}=e;return(0,o.useEffect)((()=>{M(a.getElement(),u)}),[u]),(0,o.useImperativeHandle)(t,(()=>a),[]),a.getLngLat().lng===i&&a.getLngLat().lat===l||a.setLngLat([i,l]),c&&!function(e,t){const n=Array.isArray(e)?e[0]:e?e.x:0,o=Array.isArray(e)?e[1]:e?e.y:0,r=Array.isArray(t)?t[0]:t?t.x:0,s=Array.isArray(t)?t[1]:t?t.y:0;return n===r&&o===s}(a.getOffset(),c)&&a.setOffset(c),a.isDraggable()!==p&&a.setDraggable(p),a.getRotation()!==m&&a.setRotation(m),a.getRotationAlignment()!==h&&a.setRotationAlignment(h),a.getPitchAlignment()!==f&&a.setPitchAlignment(f),a.getPopup()!==d&&a.setPopup(d),(0,L.createPortal)(e.children,a.getElement())})));function E(e){return new Set(e?e.trim().split(/\s+/):[])}const P=(0,o.memo)((0,o.forwardRef)(((e,t)=>{const{map:n,mapLib:r}=(0,o.useContext)(_),s=(0,o.useMemo)((()=>document.createElement("div")),[]),i=(0,o.useRef)({props:e});i.current.props=e;const l=(0,o.useMemo)((()=>{const t=Object.assign({},e),n=new r.Popup(t);return n.setLngLat([e.longitude,e.latitude]),n.once("open",(e=>{null==i.current.props.onOpen||i.current.props.onOpen(e)})),n}),[]);if((0,o.useEffect)((()=>{const e=e=>{null==i.current.props.onClose||i.current.props.onClose(e)};return l.on("close",e),l.setDOMContent(s).addTo(n.getMap()),()=>{l.off("close",e),l.isOpen()&&l.remove()}}),[]),(0,o.useEffect)((()=>{M(l.getElement(),e.style)}),[e.style]),(0,o.useImperativeHandle)(t,(()=>l),[]),l.isOpen()&&(l.getLngLat().lng===e.longitude&&l.getLngLat().lat===e.latitude||l.setLngLat([e.longitude,e.latitude]),e.offset&&!a(l.options.offset,e.offset)&&l.setOffset(e.offset),l.options.anchor===e.anchor&&l.options.maxWidth===e.maxWidth||(l.options.anchor=e.anchor,l.setMaxWidth(e.maxWidth)),l.options.className!==e.className)){const t=E(l.options.className),n=E(e.className);for(const e of t)n.has(e)||l.removeClassName(e);for(const e of n)t.has(e)||l.addClassName(e);l.options.className=e.className}return(0,L.createPortal)(e.children,s)})));function k(e,t,n,r){const s=(0,o.useContext)(_),a=(0,o.useMemo)((()=>e(s)),[]);return(0,o.useEffect)((()=>{const e=r||n||t,o="function"==typeof t&&"function"==typeof n?t:null,i="function"==typeof n?n:"function"==typeof t?t:null,{map:l}=s;return l.hasControl(a)||(l.addControl(a,null==e?void 0:e.position),o&&o(s)),()=>{i&&i(s),l.hasControl(a)&&l.removeControl(a)}}),[]),a}function O(e){const t=k((t=>{let{mapLib:n}=t;return new n.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)})}),{position:e.position});return(0,o.useEffect)((()=>{M(t._controlContainer,e.style)}),[e.style]),null}const R=(0,o.memo)(O);function T(e,t){const n=(0,o.useRef)({props:e}),r=k((t=>{let{mapLib:o}=t;const r=new o.GeolocateControl(e),s=r._setupUI;return r._setupUI=()=>{r._container.hasChildNodes()||s()},r.on("geolocate",(e=>{null==n.current.props.onGeolocate||n.current.props.onGeolocate(e)})),r.on("error",(e=>{null==n.current.props.onError||n.current.props.onError(e)})),r.on("outofmaxbounds",(e=>{null==n.current.props.onOutOfMaxBounds||n.current.props.onOutOfMaxBounds(e)})),r.on("trackuserlocationstart",(e=>{null==n.current.props.onTrackUserLocationStart||n.current.props.onTrackUserLocationStart(e)})),r.on("trackuserlocationend",(e=>{null==n.current.props.onTrackUserLocationEnd||n.current.props.onTrackUserLocationEnd(e)})),r}),{position:e.position});return n.current.props=e,(0,o.useImperativeHandle)(t,(()=>r),[]),(0,o.useEffect)((()=>{M(r._container,e.style)}),[e.style]),null}const z=(0,o.memo)((0,o.forwardRef)(T));function D(e){const t=k((t=>{let{mapLib:n}=t;return new n.NavigationControl(e)}),{position:e.position});return(0,o.useEffect)((()=>{M(t._container,e.style)}),[e.style]),null}const I=(0,o.memo)(D);function U(e){const t=k((t=>{let{mapLib:n}=t;return new n.ScaleControl(e)}),{position:e.position}),n=(0,o.useRef)(e),r=n.current;n.current=e;const{style:s}=e;return void 0!==e.maxWidth&&e.maxWidth!==r.maxWidth&&(t.options.maxWidth=e.maxWidth),void 0!==e.unit&&e.unit!==r.unit&&t.setUnit(e.unit),(0,o.useEffect)((()=>{M(t._container,s)}),[s]),null}const A=(0,o.memo)(U);function F(e){const t=k((t=>{let{mapLib:n}=t;return new n.TerrainControl(e)}),{position:e.position});return(0,o.useEffect)((()=>{M(t._container,e.style)}),[e.style]),null}const N=(0,o.memo)(F);function H(e,t){if(!e)throw new Error(t)}let W=0;function Z(e){const t=(0,o.useContext)(_).map.getMap(),n=(0,o.useRef)(e),[,r]=(0,o.useState)(0),s=(0,o.useMemo)((()=>e.id||"jsx-source-"+W++),[]);(0,o.useEffect)((()=>{if(t){const e=()=>setTimeout((()=>r((e=>e+1))),0);return t.on("styledata",e),e(),()=>{if(t.off("styledata",e),t.style&&t.style._loaded&&t.getSource(s)){var n;const e=null==(n=t.getStyle())?void 0:n.layers;if(e)for(const n of e)n.source===s&&t.removeLayer(n.id);t.removeSource(s)}}}}),[t]);let i=t&&t.style&&t.getSource(s);return i?function(e,t,n){H(t.id===n.id,"source id changed"),H(t.type===n.type,"source type changed");let o="",r=0;for(const i in t)"children"===i||"id"===i||a(n[i],t[i])||(o=i,r++);if(!r)return;const s=t.type;if("geojson"===s)e.setData(t.data);else if("image"===s)e.updateImage({url:t.url,coordinates:t.coordinates});else switch(o){case"coordinates":null==e.setCoordinates||e.setCoordinates(t.coordinates);break;case"url":null==e.setUrl||e.setUrl(t.url);break;case"tiles":null==e.setTiles||e.setTiles(t.tiles);break;default:console.warn("Unable to update prop: "+o)}}(i,e,n.current):i=function(e,t,n){if(e.style&&e.style._loaded){const o=Object.assign({},n);return delete o.id,delete o.children,e.addSource(t,o),e.getSource(t)}return null}(t,s,e),n.current=e,i&&o.Children.map(e.children,(e=>e&&(0,o.cloneElement)(e,{source:s})))||null}let q=0;function B(e){const t=(0,o.useContext)(_).map.getMap(),n=(0,o.useRef)(e),[,r]=(0,o.useState)(0),s=(0,o.useMemo)((()=>e.id||"jsx-layer-"+q++),[]);(0,o.useEffect)((()=>{if(t){const e=()=>r((e=>e+1));return t.on("styledata",e),e(),()=>{t.off("styledata",e),t.style&&t.style._loaded&&t.getLayer(s)&&t.removeLayer(s)}}}),[t]);if(t&&t.style&&t.getLayer(s))try{!function(e,t,n,o){if(H(n.id===o.id,"layer id changed"),H(n.type===o.type,"layer type changed"),"custom"===n.type||"custom"===o.type)return;const{layout:r={},paint:s={},filter:i,minzoom:l,maxzoom:c,beforeId:u}=n;if(u!==o.beforeId&&e.moveLayer(t,u),r!==o.layout){const n=o.layout||{};for(const o in r)a(r[o],n[o])||e.setLayoutProperty(t,o,r[o]);for(const o in n)r.hasOwnProperty(o)||e.setLayoutProperty(t,o,void 0)}if(s!==o.paint){const n=o.paint||{};for(const o in s)a(s[o],n[o])||e.setPaintProperty(t,o,s[o]);for(const o in n)s.hasOwnProperty(o)||e.setPaintProperty(t,o,void 0)}a(i,o.filter)||e.setFilter(t,i),l===o.minzoom&&c===o.maxzoom||e.setLayerZoomRange(t,l,c)}(t,s,e,n.current)}catch(i){console.warn(i)}else!function(e,t,n){if(e.style&&e.style._loaded&&(!("source"in n)||e.getSource(n.source))){const o=Object.assign({},n,{id:t});delete o.beforeId,e.addLayer(o,n.beforeId)}}(t,s,e);return n.current=e,null}},8453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>i});var o=n(6540);const r={},s=o.createContext(r);function a(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5754.54d5cd5e.js b/assets/js/5754.54d5cd5e.js new file mode 100644 index 00000000..d8dfcbc0 --- /dev/null +++ b/assets/js/5754.54d5cd5e.js @@ -0,0 +1 @@ +(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[5754],{9778:(t,e,o)=>{var n=o(7628);function r(t){var e=0;if(t&&t.length>0){e+=Math.abs(i(t[0]));for(var o=1;o2){for(c=0;c{t.exports=function(t){if(!t||!t.type)return null;var o=e[t.type];if(!o)return null;if("geometry"===o)return{type:"FeatureCollection",features:[{type:"Feature",properties:{},geometry:t}]};if("feature"===o)return{type:"FeatureCollection",features:[t]};if("featurecollection"===o)return t};var e={Point:"geometry",MultiPoint:"geometry",LineString:"geometry",MultiLineString:"geometry",Polygon:"geometry",MultiPolygon:"geometry",GeometryCollection:"geometry",Feature:"feature",FeatureCollection:"featurecollection"}},4748:t=>{"use strict";function e(t,e){this.x=t,this.y=e}t.exports=e,e.prototype={clone:function(){return new e(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},multByPoint:function(t){return this.clone()._multByPoint(t)},divByPoint:function(t){return this.clone()._divByPoint(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},rotateAround:function(t,e){return this.clone()._rotateAround(t,e)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var e=t.x-this.x,o=t.y-this.y;return e*e+o*o},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)},_matMult:function(t){var e=t[0]*this.x+t[1]*this.y,o=t[2]*this.x+t[3]*this.y;return this.x=e,this.y=o,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_multByPoint:function(t){return this.x*=t.x,this.y*=t.y,this},_divByPoint:function(t){return this.x/=t.x,this.y/=t.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var e=Math.cos(t),o=Math.sin(t),n=e*this.x-o*this.y,r=o*this.x+e*this.y;return this.x=n,this.y=r,this},_rotateAround:function(t,e){var o=Math.cos(t),n=Math.sin(t),r=e.x+o*(this.x-e.x)-n*(this.y-e.y),i=e.y+n*(this.x-e.x)+o*(this.y-e.y);return this.x=r,this.y=i,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},e.convert=function(t){return t instanceof e?t:Array.isArray(t)?new e(t[0],t[1]):t}},2017:t=>{"use strict";t.exports=function t(e,o){if(e===o)return!0;if(e&&o&&"object"==typeof e&&"object"==typeof o){if(e.constructor!==o.constructor)return!1;var n,r,i;if(Array.isArray(e)){if((n=e.length)!=o.length)return!1;for(r=n;0!=r--;)if(!t(e[r],o[r]))return!1;return!0}if(e.constructor===RegExp)return e.source===o.source&&e.flags===o.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===o.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===o.toString();if((n=(i=Object.keys(e)).length)!==Object.keys(o).length)return!1;for(r=n;0!=r--;)if(!Object.prototype.hasOwnProperty.call(o,i[r]))return!1;for(r=n;0!=r--;){var s=i[r];if(!t(e[s],o[s]))return!1}return!0}return e!=e&&o!=o}},7628:t=>{t.exports.RADIUS=6378137,t.exports.FLATTENING=1/298.257223563,t.exports.POLAR_RADIUS=6356752.3142},4604:(t,e,o)=>{"use strict";o.d(e,{A:()=>pe});var n={};o.r(n),o.d(n,{LAT_MAX:()=>v,LAT_MIN:()=>C,LAT_RENDERED_MAX:()=>I,LAT_RENDERED_MIN:()=>T,LNG_MAX:()=>S,LNG_MIN:()=>_,activeStates:()=>y,classes:()=>c,cursors:()=>l,events:()=>f,geojsonTypes:()=>p,interactions:()=>E,meta:()=>m,modes:()=>h,sources:()=>u,types:()=>d,updateActions:()=>g});var r={};o.r(r),o.d(r,{isActiveFeature:()=>Tt,isEnterKey:()=>Lt,isEscapeKey:()=>Mt,isFeature:()=>_t,isInactiveFeature:()=>vt,isOfMetaType:()=>Et,isShiftDown:()=>Ot,isShiftMousedown:()=>Ct,isTrue:()=>Nt,isVertex:()=>St,noTarget:()=>It});var i={};o.r(i),o.d(i,{CommonSelectors:()=>r,ModeHandler:()=>s,StringSet:()=>x,constrainFeatureMovement:()=>Bt,createMidPoint:()=>At,createSupplementaryPoints:()=>Ft,createVertex:()=>Pt,doubleClickZoom:()=>Rt,euclideanDistance:()=>w,featuresAt:()=>A,getFeatureAtAndSetCursors:()=>R,isClick:()=>V,isEventAtCoordinates:()=>Kt,isTap:()=>J,mapEventToBoundingBox:()=>N,moveFeatures:()=>Jt,sortFeatures:()=>L,stringSetsAreEqual:()=>ce,theme:()=>yt,toDenseArray:()=>ct});const s=function(t,e){const o={drag:[],click:[],mousemove:[],mousedown:[],mouseup:[],mouseout:[],keydown:[],keyup:[],touchstart:[],touchmove:[],touchend:[],tap:[]},n={on(t,e,n){if(void 0===o[t])throw new Error(`Invalid event type: ${t}`);o[t].push({selector:e,fn:n})},render(t){e.store.featureChanged(t)}},r=function(t,r){const i=o[t];let s=i.length;for(;s--;){const t=i[s];if(t.selector(r)){t.fn.call(n,r)||e.store.render(),e.ui.updateMapClasses();break}}};return t.start.call(n),{render:t.render,stop(){t.stop&&t.stop()},trash(){t.trash&&(t.trash(),e.store.render())},combineFeatures(){t.combineFeatures&&t.combineFeatures()},uncombineFeatures(){t.uncombineFeatures&&t.uncombineFeatures()},drag(t){r("drag",t)},click(t){r("click",t)},mousemove(t){r("mousemove",t)},mousedown(t){r("mousedown",t)},mouseup(t){r("mouseup",t)},mouseout(t){r("mouseout",t)},keydown(t){r("keydown",t)},keyup(t){r("keyup",t)},touchstart(t){r("touchstart",t)},touchmove(t){r("touchmove",t)},touchend(t){r("touchend",t)},tap(t){r("tap",t)}}};var a=o(9778);const c={CANVAS:"mapboxgl-canvas",CONTROL_BASE:"mapboxgl-ctrl",CONTROL_PREFIX:"mapboxgl-ctrl-",CONTROL_BUTTON:"mapbox-gl-draw_ctrl-draw-btn",CONTROL_BUTTON_LINE:"mapbox-gl-draw_line",CONTROL_BUTTON_POLYGON:"mapbox-gl-draw_polygon",CONTROL_BUTTON_POINT:"mapbox-gl-draw_point",CONTROL_BUTTON_TRASH:"mapbox-gl-draw_trash",CONTROL_BUTTON_COMBINE_FEATURES:"mapbox-gl-draw_combine",CONTROL_BUTTON_UNCOMBINE_FEATURES:"mapbox-gl-draw_uncombine",CONTROL_GROUP:"mapboxgl-ctrl-group",ATTRIBUTION:"mapboxgl-ctrl-attrib",ACTIVE_BUTTON:"active",BOX_SELECT:"mapbox-gl-draw_boxselect"},u={HOT:"mapbox-gl-draw-hot",COLD:"mapbox-gl-draw-cold"},l={ADD:"add",MOVE:"move",DRAG:"drag",POINTER:"pointer",NONE:"none"},d={POLYGON:"polygon",LINE:"line_string",POINT:"point"},p={FEATURE:"Feature",POLYGON:"Polygon",LINE_STRING:"LineString",POINT:"Point",FEATURE_COLLECTION:"FeatureCollection",MULTI_PREFIX:"Multi",MULTI_POINT:"MultiPoint",MULTI_LINE_STRING:"MultiLineString",MULTI_POLYGON:"MultiPolygon"},h={DRAW_LINE_STRING:"draw_line_string",DRAW_POLYGON:"draw_polygon",DRAW_POINT:"draw_point",SIMPLE_SELECT:"simple_select",DIRECT_SELECT:"direct_select"},f={CREATE:"draw.create",DELETE:"draw.delete",UPDATE:"draw.update",SELECTION_CHANGE:"draw.selectionchange",MODE_CHANGE:"draw.modechange",ACTIONABLE:"draw.actionable",RENDER:"draw.render",COMBINE_FEATURES:"draw.combine",UNCOMBINE_FEATURES:"draw.uncombine"},g={MOVE:"move",CHANGE_PROPERTIES:"change_properties",CHANGE_COORDINATES:"change_coordinates"},m={FEATURE:"feature",MIDPOINT:"midpoint",VERTEX:"vertex"},y={ACTIVE:"true",INACTIVE:"false"},E=["scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate"],C=-90,T=-85,v=90,I=85,_=-270,S=270,O={Point:0,LineString:1,MultiLineString:1,Polygon:2};function M(t,e){const o=O[t.geometry.type]-O[e.geometry.type];return 0===o&&t.geometry.type===p.POLYGON?t.area-e.area:o}const L=function(t){return t.map((t=>(t.geometry.type===p.POLYGON&&(t.area=a.geometry({type:p.FEATURE,property:{},geometry:t.geometry})),t))).sort(M).map((t=>(delete t.area,t)))};const N=function(t,e=0){return[[t.point.x-e,t.point.y-e],[t.point.x+e,t.point.y+e]]};function b(t){if(this._items={},this._nums={},this._length=t?t.length:0,t)for(let e=0,o=t.length;e{t.push({k:e,v:this._items[e]})})),Object.keys(this._nums).forEach((e=>{t.push({k:JSON.parse(e),v:this._nums[e]})})),t.sort(((t,e)=>t.v-e.v)).map((t=>t.k))},b.prototype.clear=function(){return this._length=0,this._items={},this._nums={},this};const x=b,P=[m.FEATURE,m.MIDPOINT,m.VERTEX],A={click:function(t,e,o){return F(t,e,o,o.options.clickBuffer)},touch:function(t,e,o){return F(t,e,o,o.options.touchBuffer)}};function F(t,e,o,n){if(null===o.map)return[];const r=t?N(t,n):e,i={};o.options.styles&&(i.layers=o.options.styles.map((t=>t.id)).filter((t=>null!=o.map.getLayer(t))));const s=o.map.queryRenderedFeatures(r,i).filter((t=>-1!==P.indexOf(t.properties.meta))),a=new x,c=[];return s.forEach((t=>{const e=t.properties.id;a.has(e)||(a.add(e),c.push(t))})),L(c)}function R(t,e){const o=A.click(t,null,e),n={mouse:l.NONE};return o[0]&&(n.mouse=o[0].properties.active===y.ACTIVE?l.MOVE:l.POINTER,n.feature=o[0].properties.meta),-1!==e.events.currentModeName().indexOf("draw")&&(n.mouse=l.ADD),e.ui.queueMapClasses(n),e.ui.updateMapClasses(),o[0]}function w(t,e){const o=t.x-e.x,n=t.y-e.y;return Math.sqrt(o*o+n*n)}const D=4,U=12,k=500;function V(t,e,o={}){const n=null!=o.fineTolerance?o.fineTolerance:D,r=null!=o.grossTolerance?o.grossTolerance:U,i=null!=o.interval?o.interval:k;t.point=t.point||e.point,t.time=t.time||e.time;const s=w(t.point,e.point);return s(o=e)=>{let n="",r=0|o;for(;r--;)n+=t[Math.random()*t.length|0];return n})("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",32);function $(){return j()}const Y=function(t,e){this.ctx=t,this.properties=e.properties||{},this.coordinates=e.geometry.coordinates,this.id=e.id||$(),this.type=e.geometry.type};Y.prototype.changed=function(){this.ctx.store.featureChanged(this.id)},Y.prototype.incomingCoords=function(t){this.setCoordinates(t)},Y.prototype.setCoordinates=function(t){this.coordinates=t,this.changed()},Y.prototype.getCoordinates=function(){return JSON.parse(JSON.stringify(this.coordinates))},Y.prototype.setProperty=function(t,e){this.properties[t]=e},Y.prototype.toGeoJSON=function(){return JSON.parse(JSON.stringify({id:this.id,type:p.FEATURE,properties:this.properties,geometry:{coordinates:this.getCoordinates(),type:this.type}}))},Y.prototype.internal=function(t){const e={id:this.id,meta:m.FEATURE,"meta:type":this.type,active:y.INACTIVE,mode:t};if(this.ctx.options.userProperties)for(const o in this.properties)e[`user_${o}`]=this.properties[o];return{type:p.FEATURE,properties:e,geometry:{coordinates:this.getCoordinates(),type:this.type}}};const H=Y,X=function(t,e){H.call(this,t,e)};(X.prototype=Object.create(H.prototype)).isValid=function(){return"number"==typeof this.coordinates[0]&&"number"==typeof this.coordinates[1]},X.prototype.updateCoordinate=function(t,e,o){this.coordinates=3===arguments.length?[e,o]:[t,e],this.changed()},X.prototype.getCoordinate=function(){return this.getCoordinates()};const q=X,Z=function(t,e){H.call(this,t,e)};(Z.prototype=Object.create(H.prototype)).isValid=function(){return this.coordinates.length>1},Z.prototype.addCoordinate=function(t,e,o){this.changed();const n=parseInt(t,10);this.coordinates.splice(n,0,[e,o])},Z.prototype.getCoordinate=function(t){const e=parseInt(t,10);return JSON.parse(JSON.stringify(this.coordinates[e]))},Z.prototype.removeCoordinate=function(t){this.changed(),this.coordinates.splice(parseInt(t,10),1)},Z.prototype.updateCoordinate=function(t,e,o){const n=parseInt(t,10);this.coordinates[n]=[e,o],this.changed()};const W=Z,K=function(t,e){H.call(this,t,e),this.coordinates=this.coordinates.map((t=>t.slice(0,-1)))};(K.prototype=Object.create(H.prototype)).isValid=function(){return 0!==this.coordinates.length&&this.coordinates.every((t=>t.length>2))},K.prototype.incomingCoords=function(t){this.coordinates=t.map((t=>t.slice(0,-1))),this.changed()},K.prototype.setCoordinates=function(t){this.coordinates=t,this.changed()},K.prototype.addCoordinate=function(t,e,o){this.changed();const n=t.split(".").map((t=>parseInt(t,10)));this.coordinates[n[0]].splice(n[1],0,[e,o])},K.prototype.removeCoordinate=function(t){this.changed();const e=t.split(".").map((t=>parseInt(t,10))),o=this.coordinates[e[0]];o&&(o.splice(e[1],1),o.length<3&&this.coordinates.splice(e[0],1))},K.prototype.getCoordinate=function(t){const e=t.split(".").map((t=>parseInt(t,10))),o=this.coordinates[e[0]];return JSON.parse(JSON.stringify(o[e[1]]))},K.prototype.getCoordinates=function(){return this.coordinates.map((t=>t.concat([t[0]])))},K.prototype.updateCoordinate=function(t,e,o){this.changed();const n=t.split("."),r=parseInt(n[0],10),i=parseInt(n[1],10);void 0===this.coordinates[r]&&(this.coordinates[r]=[]),this.coordinates[r][i]=[e,o]};const z=K,Q={MultiPoint:q,MultiLineString:W,MultiPolygon:z},tt=(t,e,o,n,r)=>{const i=o.split("."),s=parseInt(i[0],10),a=i[1]?i.slice(1).join("."):null;return t[s][e](a,n,r)},et=function(t,e){if(H.call(this,t,e),delete this.coordinates,this.model=Q[e.geometry.type],void 0===this.model)throw new TypeError(`${e.geometry.type} is not a valid type`);this.features=this._coordinatesToFeatures(e.geometry.coordinates)};(et.prototype=Object.create(H.prototype))._coordinatesToFeatures=function(t){const e=this.model.bind(this);return t.map((t=>new e(this.ctx,{id:$(),type:p.FEATURE,properties:{},geometry:{coordinates:t,type:this.type.replace("Multi","")}})))},et.prototype.isValid=function(){return this.features.every((t=>t.isValid()))},et.prototype.setCoordinates=function(t){this.features=this._coordinatesToFeatures(t),this.changed()},et.prototype.getCoordinate=function(t){return tt(this.features,"getCoordinate",t)},et.prototype.getCoordinates=function(){return JSON.parse(JSON.stringify(this.features.map((t=>t.type===p.POLYGON?t.getCoordinates():t.coordinates))))},et.prototype.updateCoordinate=function(t,e,o){tt(this.features,"updateCoordinate",t,e,o),this.changed()},et.prototype.addCoordinate=function(t,e,o){tt(this.features,"addCoordinate",t,e,o),this.changed()},et.prototype.removeCoordinate=function(t){tt(this.features,"removeCoordinate",t),this.changed()},et.prototype.getFeatures=function(){return this.features};const ot=et;function nt(t){this.map=t.map,this.drawConfig=JSON.parse(JSON.stringify(t.options||{})),this._ctx=t}nt.prototype.setSelected=function(t){return this._ctx.store.setSelected(t)},nt.prototype.setSelectedCoordinates=function(t){this._ctx.store.setSelectedCoordinates(t),t.reduce(((t,e)=>(void 0===t[e.feature_id]&&(t[e.feature_id]=!0,this._ctx.store.get(e.feature_id).changed()),t)),{})},nt.prototype.getSelected=function(){return this._ctx.store.getSelected()},nt.prototype.getSelectedIds=function(){return this._ctx.store.getSelectedIds()},nt.prototype.isSelected=function(t){return this._ctx.store.isSelected(t)},nt.prototype.getFeature=function(t){return this._ctx.store.get(t)},nt.prototype.select=function(t){return this._ctx.store.select(t)},nt.prototype.deselect=function(t){return this._ctx.store.deselect(t)},nt.prototype.deleteFeature=function(t,e={}){return this._ctx.store.delete(t,e)},nt.prototype.addFeature=function(t,e={}){return this._ctx.store.add(t,e)},nt.prototype.clearSelectedFeatures=function(){return this._ctx.store.clearSelected()},nt.prototype.clearSelectedCoordinates=function(){return this._ctx.store.clearSelectedCoordinates()},nt.prototype.setActionableState=function(t={}){const e={trash:t.trash||!1,combineFeatures:t.combineFeatures||!1,uncombineFeatures:t.uncombineFeatures||!1};return this._ctx.events.actionable(e)},nt.prototype.changeMode=function(t,e={},o={}){return this._ctx.events.changeMode(t,e,o)},nt.prototype.fire=function(t,e){return this._ctx.events.fire(t,e)},nt.prototype.updateUIClasses=function(t){return this._ctx.ui.queueMapClasses(t)},nt.prototype.activateUIButton=function(t){return this._ctx.ui.setActiveButton(t)},nt.prototype.featuresAt=function(t,e,o="click"){if("click"!==o&&"touch"!==o)throw new Error("invalid buffer type");return A[o](t,e,this._ctx)},nt.prototype.newFeature=function(t){const e=t.geometry.type;return e===p.POINT?new q(this._ctx,t):e===p.LINE_STRING?new W(this._ctx,t):e===p.POLYGON?new z(this._ctx,t):new ot(this._ctx,t)},nt.prototype.isInstanceOf=function(t,e){if(t===p.POINT)return e instanceof q;if(t===p.LINE_STRING)return e instanceof W;if(t===p.POLYGON)return e instanceof z;if("MultiFeature"===t)return e instanceof ot;throw new Error(`Unknown feature class: ${t}`)},nt.prototype.doRender=function(t){return this._ctx.store.featureChanged(t)};const rt=nt;nt.prototype.onSetup=function(){},nt.prototype.onDrag=function(){},nt.prototype.onClick=function(){},nt.prototype.onMouseMove=function(){},nt.prototype.onMouseDown=function(){},nt.prototype.onMouseUp=function(){},nt.prototype.onMouseOut=function(){},nt.prototype.onKeyUp=function(){},nt.prototype.onKeyDown=function(){},nt.prototype.onTouchStart=function(){},nt.prototype.onTouchMove=function(){},nt.prototype.onTouchEnd=function(){},nt.prototype.onTap=function(){},nt.prototype.onStop=function(){},nt.prototype.onTrash=function(){},nt.prototype.onCombineFeature=function(){},nt.prototype.onUncombineFeature=function(){},nt.prototype.toDisplayFeatures=function(){throw new Error("You must overwrite toDisplayFeatures")};const it={drag:"onDrag",click:"onClick",mousemove:"onMouseMove",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseout:"onMouseOut",keyup:"onKeyUp",keydown:"onKeyDown",touchstart:"onTouchStart",touchmove:"onTouchMove",touchend:"onTouchEnd",tap:"onTap"},st=Object.keys(it);function at(t){const e=Object.keys(t);return function(o,n={}){let r={};const i=e.reduce(((e,o)=>(e[o]=t[o],e)),new rt(o));return{start(){r=i.onSetup(n),st.forEach((e=>{const o=it[e];let n=()=>!1;var s;t[o]&&(n=()=>!0),this.on(e,n,(s=o,t=>i[s](r,t)))}))},stop(){i.onStop(r)},trash(){i.onTrash(r)},combineFeatures(){i.onCombineFeatures(r)},uncombineFeatures(){i.onUncombineFeatures(r)},render(t,e){i.toDisplayFeatures(r,t,e)}}}}const ct=function(t){return[].concat(t).filter((t=>void 0!==t))};function ut(){const t=this;if(!(t.ctx.map&&void 0!==t.ctx.map.getSource(u.HOT)))return a();const e=t.ctx.events.currentModeName();t.ctx.ui.queueMapClasses({mode:e});let o=[],n=[];t.isDirty?n=t.getAllIds():(o=t.getChangedIds().filter((e=>void 0!==t.get(e))),n=t.sources.hot.filter((e=>e.properties.id&&-1===o.indexOf(e.properties.id)&&void 0!==t.get(e.properties.id))).map((t=>t.properties.id))),t.sources.hot=[];const r=t.sources.cold.length;t.sources.cold=t.isDirty?[]:t.sources.cold.filter((t=>{const e=t.properties.id||t.properties.parent;return-1===o.indexOf(e)}));const i=r!==t.sources.cold.length||n.length>0;function s(o,n){const r=t.get(o).internal(e);t.ctx.events.currentModeRender(r,(o=>{o.properties.mode=e,t.sources[n].push(o)}))}function a(){t.isDirty=!1,t.clearChangedIds()}o.forEach((t=>s(t,"hot"))),n.forEach((t=>s(t,"cold"))),i&&t.ctx.map.getSource(u.COLD).setData({type:p.FEATURE_COLLECTION,features:t.sources.cold}),t.ctx.map.getSource(u.HOT).setData({type:p.FEATURE_COLLECTION,features:t.sources.hot}),a()}function lt(t){let e;this._features={},this._featureIds=new x,this._selectedFeatureIds=new x,this._selectedCoordinates=[],this._changedFeatureIds=new x,this._emitSelectionChange=!1,this._mapInitialConfig={},this.ctx=t,this.sources={hot:[],cold:[]},this.render=()=>{e||(e=requestAnimationFrame((()=>{e=null,ut.call(this),this._emitSelectionChange&&(this.ctx.events.fire(f.SELECTION_CHANGE,{features:this.getSelected().map((t=>t.toGeoJSON())),points:this.getSelectedCoordinates().map((t=>({type:p.FEATURE,properties:{},geometry:{type:p.POINT,coordinates:t.coordinates}})))}),this._emitSelectionChange=!1),this.ctx.events.fire(f.RENDER,{})})))},this.isDirty=!1}function dt(t,e={}){const o=t._selectedCoordinates.filter((e=>t._selectedFeatureIds.has(e.feature_id)));t._selectedCoordinates.length===o.length||e.silent||(t._emitSelectionChange=!0),t._selectedCoordinates=o}lt.prototype.createRenderBatch=function(){const t=this.render;let e=0;return this.render=function(){e++},()=>{this.render=t,e>0&&this.render()}},lt.prototype.setDirty=function(){return this.isDirty=!0,this},lt.prototype.featureCreated=function(t,e={}){this._changedFeatureIds.add(t);if(!0!==(null!=e.silent?e.silent:this.ctx.options.suppressAPIEvents)){const e=this.get(t);this.ctx.events.fire(f.CREATE,{features:[e.toGeoJSON()]})}return this},lt.prototype.featureChanged=function(t,e={}){this._changedFeatureIds.add(t);return!0!==(null!=e.silent?e.silent:this.ctx.options.suppressAPIEvents)&&this.ctx.events.fire(f.UPDATE,{action:e.action?e.action:g.CHANGE_COORDINATES,features:[this.get(t).toGeoJSON()]}),this},lt.prototype.getChangedIds=function(){return this._changedFeatureIds.values()},lt.prototype.clearChangedIds=function(){return this._changedFeatureIds.clear(),this},lt.prototype.getAllIds=function(){return this._featureIds.values()},lt.prototype.add=function(t,e={}){return this._features[t.id]=t,this._featureIds.add(t.id),this.featureCreated(t.id,{silent:e.silent}),this},lt.prototype.delete=function(t,e={}){const o=[];return ct(t).forEach((t=>{this._featureIds.has(t)&&(this._featureIds.delete(t),this._selectedFeatureIds.delete(t),e.silent||-1===o.indexOf(this._features[t])&&o.push(this._features[t].toGeoJSON()),delete this._features[t],this.isDirty=!0)})),o.length&&this.ctx.events.fire(f.DELETE,{features:o}),dt(this,e),this},lt.prototype.get=function(t){return this._features[t]},lt.prototype.getAll=function(){return Object.keys(this._features).map((t=>this._features[t]))},lt.prototype.select=function(t,e={}){return ct(t).forEach((t=>{this._selectedFeatureIds.has(t)||(this._selectedFeatureIds.add(t),this._changedFeatureIds.add(t),e.silent||(this._emitSelectionChange=!0))})),this},lt.prototype.deselect=function(t,e={}){return ct(t).forEach((t=>{this._selectedFeatureIds.has(t)&&(this._selectedFeatureIds.delete(t),this._changedFeatureIds.add(t),e.silent||(this._emitSelectionChange=!0))})),dt(this,e),this},lt.prototype.clearSelected=function(t={}){return this.deselect(this._selectedFeatureIds.values(),{silent:t.silent}),this},lt.prototype.setSelected=function(t,e={}){return t=ct(t),this.deselect(this._selectedFeatureIds.values().filter((e=>-1===t.indexOf(e))),{silent:e.silent}),this.select(t.filter((t=>!this._selectedFeatureIds.has(t))),{silent:e.silent}),this},lt.prototype.setSelectedCoordinates=function(t){return this._selectedCoordinates=t,this._emitSelectionChange=!0,this},lt.prototype.clearSelectedCoordinates=function(){return this._selectedCoordinates=[],this._emitSelectionChange=!0,this},lt.prototype.getSelectedIds=function(){return this._selectedFeatureIds.values()},lt.prototype.getSelected=function(){return this.getSelectedIds().map((t=>this.get(t)))},lt.prototype.getSelectedCoordinates=function(){return this._selectedCoordinates.map((t=>({coordinates:this.get(t.feature_id).getCoordinate(t.coord_path)})))},lt.prototype.isSelected=function(t){return this._selectedFeatureIds.has(t)},lt.prototype.setFeatureProperty=function(t,e,o,n={}){this.get(t).setProperty(e,o),this.featureChanged(t,{silent:n.silent,action:g.CHANGE_PROPERTIES})},lt.prototype.storeMapConfig=function(){E.forEach((t=>{this.ctx.map[t]&&(this._mapInitialConfig[t]=this.ctx.map[t].isEnabled())}))},lt.prototype.restoreMapConfig=function(){Object.keys(this._mapInitialConfig).forEach((t=>{this._mapInitialConfig[t]?this.ctx.map[t].enable():this.ctx.map[t].disable()}))},lt.prototype.getInitialConfigValue=function(t){return void 0===this._mapInitialConfig[t]||this._mapInitialConfig[t]};const pt=["mode","feature","mouse"];function ht(t){let e=null,o=null;const n={onRemove(){return t.map.off("load",n.connect),clearInterval(o),n.removeLayers(),t.store.restoreMapConfig(),t.ui.removeButtons(),t.events.removeEventListeners(),t.ui.clearMapClasses(),t.boxZoomInitial&&t.map.boxZoom.enable(),t.map=null,t.container=null,t.store=null,e&&e.parentNode&&e.parentNode.removeChild(e),e=null,this},connect(){t.map.off("load",n.connect),clearInterval(o),n.addLayers(),t.store.storeMapConfig(),t.events.addEventListeners()},onAdd(r){if(t.map=r,t.events=function(t){const e=Object.keys(t.options.modes).reduce(((e,o)=>(e[o]=at(t.options.modes[o]),e)),{});let o={},n={};const r={};let i=null,a=null;r.drag=function(e,o){o({point:e.point,time:(new Date).getTime()})?(t.ui.queueMapClasses({mouse:l.DRAG}),a.drag(e)):e.originalEvent.stopPropagation()},r.mousedrag=function(t){r.drag(t,(t=>!V(o,t)))},r.touchdrag=function(t){r.drag(t,(t=>!J(n,t)))},r.mousemove=function(e){if(1===(void 0!==e.originalEvent.buttons?e.originalEvent.buttons:e.originalEvent.which))return r.mousedrag(e);const o=R(e,t);e.featureTarget=o,a.mousemove(e)},r.mousedown=function(e){o={time:(new Date).getTime(),point:e.point};const n=R(e,t);e.featureTarget=n,a.mousedown(e)},r.mouseup=function(e){const n=R(e,t);e.featureTarget=n,V(o,{point:e.point,time:(new Date).getTime()})?a.click(e):a.mouseup(e)},r.mouseout=function(t){a.mouseout(t)},r.touchstart=function(e){if(!t.options.touchEnabled)return;n={time:(new Date).getTime(),point:e.point};const o=A.touch(e,null,t)[0];e.featureTarget=o,a.touchstart(e)},r.touchmove=function(e){if(t.options.touchEnabled)return a.touchmove(e),r.touchdrag(e)},r.touchend=function(e){if(e.originalEvent.preventDefault(),!t.options.touchEnabled)return;const o=A.touch(e,null,t)[0];e.featureTarget=o,J(n,{time:(new Date).getTime(),point:e.point})?a.tap(e):a.touchend(e)};const u=t=>!(8===t||46===t||t>=48&&t<=57);function d(o,n,r={}){a.stop();const c=e[o];if(void 0===c)throw new Error(`${o} is not valid`);i=o;const u=c(t,n);a=s(u,t),r.silent||t.map.fire(f.MODE_CHANGE,{mode:o}),t.store.setDirty(),t.store.render()}r.keydown=function(e){(e.srcElement||e.target).classList.contains(c.CANVAS)&&(8!==e.keyCode&&46!==e.keyCode||!t.options.controls.trash?u(e.keyCode)?a.keydown(e):49===e.keyCode&&t.options.controls.point?d(h.DRAW_POINT):50===e.keyCode&&t.options.controls.line_string?d(h.DRAW_LINE_STRING):51===e.keyCode&&t.options.controls.polygon&&d(h.DRAW_POLYGON):(e.preventDefault(),a.trash()))},r.keyup=function(t){u(t.keyCode)&&a.keyup(t)},r.zoomend=function(){t.store.changeZoom()},r.data=function(e){if("style"===e.dataType){const{setup:e,map:o,options:n,store:r}=t;n.styles.some((t=>o.getLayer(t.id)))||(e.addLayers(),r.setDirty(),r.render())}};const p={trash:!1,combineFeatures:!1,uncombineFeatures:!1};return{start(){i=t.options.defaultMode,a=s(e[i](t),t)},changeMode:d,actionable:function(e){let o=!1;Object.keys(e).forEach((t=>{if(void 0===p[t])throw new Error("Invalid action type");p[t]!==e[t]&&(o=!0),p[t]=e[t]})),o&&t.map.fire(f.ACTIONABLE,{actions:p})},currentModeName:()=>i,currentModeRender:(t,e)=>a.render(t,e),fire(e,o){t.map&&t.map.fire(e,o)},addEventListeners(){t.map.on("mousemove",r.mousemove),t.map.on("mousedown",r.mousedown),t.map.on("mouseup",r.mouseup),t.map.on("data",r.data),t.map.on("touchmove",r.touchmove),t.map.on("touchstart",r.touchstart),t.map.on("touchend",r.touchend),t.container.addEventListener("mouseout",r.mouseout),t.options.keybindings&&(t.container.addEventListener("keydown",r.keydown),t.container.addEventListener("keyup",r.keyup))},removeEventListeners(){t.map.off("mousemove",r.mousemove),t.map.off("mousedown",r.mousedown),t.map.off("mouseup",r.mouseup),t.map.off("data",r.data),t.map.off("touchmove",r.touchmove),t.map.off("touchstart",r.touchstart),t.map.off("touchend",r.touchend),t.container.removeEventListener("mouseout",r.mouseout),t.options.keybindings&&(t.container.removeEventListener("keydown",r.keydown),t.container.removeEventListener("keyup",r.keyup))},trash(t){a.trash(t)},combineFeatures(){a.combineFeatures()},uncombineFeatures(){a.uncombineFeatures()},getMode:()=>i}}(t),t.ui=function(t){const e={};let o=null,n={mode:null,feature:null,mouse:null},r={mode:null,feature:null,mouse:null};function i(t){r=Object.assign(r,t)}function s(){if(!t.container)return;const e=[],o=[];pt.forEach((t=>{r[t]!==n[t]&&(e.push(`${t}-${n[t]}`),null!==r[t]&&o.push(`${t}-${r[t]}`))})),e.length>0&&t.container.classList.remove(...e),o.length>0&&t.container.classList.add(...o),n=Object.assign(n,r)}function a(t,e={}){const n=document.createElement("button");return n.className=`${c.CONTROL_BUTTON} ${e.className}`,n.setAttribute("title",e.title),e.container.appendChild(n),n.addEventListener("click",(n=>{if(n.preventDefault(),n.stopPropagation(),n.target===o)return u(),void e.onDeactivate();l(t),e.onActivate()}),!0),n}function u(){o&&(o.classList.remove(c.ACTIVE_BUTTON),o=null)}function l(t){u();const n=e[t];n&&n&&"trash"!==t&&(n.classList.add(c.ACTIVE_BUTTON),o=n)}return{setActiveButton:l,queueMapClasses:i,updateMapClasses:s,clearMapClasses:function(){i({mode:null,feature:null,mouse:null}),s()},addButtons:function(){const o=t.options.controls,n=document.createElement("div");return n.className=`${c.CONTROL_GROUP} ${c.CONTROL_BASE}`,o?(o[d.LINE]&&(e[d.LINE]=a(d.LINE,{container:n,className:c.CONTROL_BUTTON_LINE,title:"LineString tool "+(t.options.keybindings?"(l)":""),onActivate:()=>t.events.changeMode(h.DRAW_LINE_STRING),onDeactivate:()=>t.events.trash()})),o[d.POLYGON]&&(e[d.POLYGON]=a(d.POLYGON,{container:n,className:c.CONTROL_BUTTON_POLYGON,title:"Polygon tool "+(t.options.keybindings?"(p)":""),onActivate:()=>t.events.changeMode(h.DRAW_POLYGON),onDeactivate:()=>t.events.trash()})),o[d.POINT]&&(e[d.POINT]=a(d.POINT,{container:n,className:c.CONTROL_BUTTON_POINT,title:"Marker tool "+(t.options.keybindings?"(m)":""),onActivate:()=>t.events.changeMode(h.DRAW_POINT),onDeactivate:()=>t.events.trash()})),o.trash&&(e.trash=a("trash",{container:n,className:c.CONTROL_BUTTON_TRASH,title:"Delete",onActivate:()=>{t.events.trash()}})),o.combine_features&&(e.combine_features=a("combineFeatures",{container:n,className:c.CONTROL_BUTTON_COMBINE_FEATURES,title:"Combine",onActivate:()=>{t.events.combineFeatures()}})),o.uncombine_features&&(e.uncombine_features=a("uncombineFeatures",{container:n,className:c.CONTROL_BUTTON_UNCOMBINE_FEATURES,title:"Uncombine",onActivate:()=>{t.events.uncombineFeatures()}})),n):n},removeButtons:function(){Object.keys(e).forEach((t=>{const o=e[t];o.parentNode&&o.parentNode.removeChild(o),delete e[t]}))}}}(t),t.container=r.getContainer(),t.store=new lt(t),e=t.ui.addButtons(),t.options.boxSelect){t.boxZoomInitial=r.boxZoom.isEnabled(),r.boxZoom.disable();const e=r.dragPan.isEnabled();r.dragPan.disable(),r.dragPan.enable(),e||r.dragPan.disable()}return r.loaded()?n.connect():(r.on("load",n.connect),o=setInterval((()=>{r.loaded()&&n.connect()}),16)),t.events.start(),e},addLayers(){t.map.addSource(u.COLD,{data:{type:p.FEATURE_COLLECTION,features:[]},type:"geojson"}),t.map.addSource(u.HOT,{data:{type:p.FEATURE_COLLECTION,features:[]},type:"geojson"}),t.options.styles.forEach((e=>{t.map.addLayer(e)})),t.store.setDirty(!0),t.store.render()},removeLayers(){t.options.styles.forEach((e=>{t.map.getLayer(e.id)&&t.map.removeLayer(e.id)})),t.map.getSource(u.COLD)&&t.map.removeSource(u.COLD),t.map.getSource(u.HOT)&&t.map.removeSource(u.HOT)}};return t.setup=n,n}const ft="#3bb2d0",gt="#fbb03b",mt="#fff",yt=[{id:"gl-draw-polygon-fill",type:"fill",filter:["all",["==","$type","Polygon"]],paint:{"fill-color":["case",["==",["get","active"],"true"],gt,ft],"fill-opacity":.1}},{id:"gl-draw-lines",type:"line",filter:["any",["==","$type","LineString"],["==","$type","Polygon"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":["case",["==",["get","active"],"true"],gt,ft],"line-dasharray":["case",["==",["get","active"],"true"],[.2,2],[2,0]],"line-width":2}},{id:"gl-draw-point-outer",type:"circle",filter:["all",["==","$type","Point"],["==","meta","feature"]],paint:{"circle-radius":["case",["==",["get","active"],"true"],7,5],"circle-color":mt}},{id:"gl-draw-point-inner",type:"circle",filter:["all",["==","$type","Point"],["==","meta","feature"]],paint:{"circle-radius":["case",["==",["get","active"],"true"],5,3],"circle-color":["case",["==",["get","active"],"true"],gt,ft]}},{id:"gl-draw-vertex-outer",type:"circle",filter:["all",["==","$type","Point"],["==","meta","vertex"],["!=","mode","simple_select"]],paint:{"circle-radius":["case",["==",["get","active"],"true"],7,5],"circle-color":mt}},{id:"gl-draw-vertex-inner",type:"circle",filter:["all",["==","$type","Point"],["==","meta","vertex"],["!=","mode","simple_select"]],paint:{"circle-radius":["case",["==",["get","active"],"true"],5,3],"circle-color":gt}},{id:"gl-draw-midpoint",type:"circle",filter:["all",["==","meta","midpoint"]],paint:{"circle-radius":3,"circle-color":gt}}];function Et(t){return function(e){const o=e.featureTarget;return!!o&&(!!o.properties&&o.properties.meta===t)}}function Ct(t){return!!t.originalEvent&&(!!t.originalEvent.shiftKey&&0===t.originalEvent.button)}function Tt(t){return!!t.featureTarget&&(!!t.featureTarget.properties&&(t.featureTarget.properties.active===y.ACTIVE&&t.featureTarget.properties.meta===m.FEATURE))}function vt(t){return!!t.featureTarget&&(!!t.featureTarget.properties&&(t.featureTarget.properties.active===y.INACTIVE&&t.featureTarget.properties.meta===m.FEATURE))}function It(t){return void 0===t.featureTarget}function _t(t){return!!t.featureTarget&&(!!t.featureTarget.properties&&t.featureTarget.properties.meta===m.FEATURE)}function St(t){const e=t.featureTarget;return!!e&&(!!e.properties&&e.properties.meta===m.VERTEX)}function Ot(t){return!!t.originalEvent&&!0===t.originalEvent.shiftKey}function Mt(t){return 27===t.keyCode}function Lt(t){return 13===t.keyCode}function Nt(){return!0}var bt=o(4748);const xt=function(t,e){const o=e.getBoundingClientRect();return new bt(t.clientX-o.left-(e.clientLeft||0),t.clientY-o.top-(e.clientTop||0))};function Pt(t,e,o,n){return{type:p.FEATURE,properties:{meta:m.VERTEX,parent:t,coord_path:o,active:n?y.ACTIVE:y.INACTIVE},geometry:{type:p.POINT,coordinates:e}}}function At(t,e,o){const n=e.geometry.coordinates,r=o.geometry.coordinates;if(n[1]>I||n[1]I||r[1]{const c=null!=e?`${e}.${i}`:String(i),l=Pt(s,t,c,u(c));if(o.midpoints&&r){const t=At(s,r,l);t&&a.push(t)}r=l;const d=JSON.stringify(t);n!==d&&a.push(l),0===i&&(n=d)}))}function u(t){return!!o.selectedPaths&&-1!==o.selectedPaths.indexOf(t)}return r===p.POINT?a.push(Pt(s,i,n,u(n))):r===p.POLYGON?i.forEach(((t,e)=>{c(t,null!==n?`${n}.${e}`:String(e))})):r===p.LINE_STRING?c(i,n):0===r.indexOf(p.MULTI_PREFIX)&&function(){const n=r.replace(p.MULTI_PREFIX,"");i.forEach(((r,i)=>{const s={type:p.FEATURE,properties:e.properties,geometry:{type:n,coordinates:r}};a=a.concat(t(s,o,i))}))}(),a},Rt={enable(t){setTimeout((()=>{t.map&&t.map.doubleClickZoom&&t._ctx&&t._ctx.store&&t._ctx.store.getInitialConfigValue&&t._ctx.store.getInitialConfigValue("doubleClickZoom")&&t.map.doubleClickZoom.enable()}),0)},disable(t){setTimeout((()=>{t.map&&t.map.doubleClickZoom&&t.map.doubleClickZoom.disable()}),0)}},{LAT_MIN:wt,LAT_MAX:Dt,LAT_RENDERED_MIN:Ut,LAT_RENDERED_MAX:kt,LNG_MIN:Vt,LNG_MAX:Gt}=n;function Bt(t,e){let o=wt,n=Dt,r=wt,i=Dt,s=Gt,a=Vt;t.forEach((t=>{const e=function(t){const e={Point:0,LineString:1,Polygon:2,MultiPoint:1,MultiLineString:2,MultiPolygon:3}[t.geometry.type],o=[t.geometry.coordinates].flat(e),n=o.map((t=>t[0])),r=o.map((t=>t[1])),i=t=>Math.min.apply(null,t),s=t=>Math.max.apply(null,t);return[i(n),i(r),s(n),s(r)]}(t),c=e[1],u=e[3],l=e[0],d=e[2];c>o&&(o=c),ur&&(r=u),ca&&(a=d)}));const c=e;return o+c.lat>kt&&(c.lat=kt-o),r+c.lat>Dt&&(c.lat=Dt-r),n+c.lat=Gt&&(c.lng-=360*Math.ceil(Math.abs(c.lng)/360)),c}function Jt(t,e){const o=Bt(t.map((t=>t.toGeoJSON())),e);t.forEach((t=>{const e=t.getCoordinates(),n=t=>{const e={lng:t[0]+o.lng,lat:t[1]+o.lat};return[e.lng,e.lat]},r=t=>t.map((t=>n(t))),i=t=>t.map((t=>r(t)));let s;t.type===p.POINT?s=n(e):t.type===p.LINE_STRING||t.type===p.MULTI_POINT?s=e.map(n):t.type===p.POLYGON||t.type===p.MULTI_LINE_STRING?s=e.map(r):t.type===p.MULTI_POLYGON&&(s=e.map(i)),t.incomingCoords(s)}))}const jt={onSetup:function(t){const e={dragMoveLocation:null,boxSelectStartLocation:null,boxSelectElement:void 0,boxSelecting:!1,canBoxSelect:!1,dragMoving:!1,canDragMove:!1,initialDragPanState:this.map.dragPan.isEnabled(),initiallySelectedFeatureIds:t.featureIds||[]};return this.setSelected(e.initiallySelectedFeatureIds.filter((t=>void 0!==this.getFeature(t)))),this.fireActionable(),this.setActionableState({combineFeatures:!0,uncombineFeatures:!0,trash:!0}),e},fireUpdate:function(){this.fire(f.UPDATE,{action:g.MOVE,features:this.getSelected().map((t=>t.toGeoJSON()))})},fireActionable:function(){const t=this.getSelected(),e=t.filter((t=>this.isInstanceOf("MultiFeature",t)));let o=!1;if(t.length>1){o=!0;const e=t[0].type.replace("Multi","");t.forEach((t=>{t.type.replace("Multi","")!==e&&(o=!1)}))}const n=e.length>0,r=t.length>0;this.setActionableState({combineFeatures:o,uncombineFeatures:n,trash:r})},getUniqueIds:function(t){if(!t.length)return[];return t.map((t=>t.properties.id)).filter((t=>void 0!==t)).reduce(((t,e)=>(t.add(e),t)),new x).values()},stopExtendedInteractions:function(t){t.boxSelectElement&&(t.boxSelectElement.parentNode&&t.boxSelectElement.parentNode.removeChild(t.boxSelectElement),t.boxSelectElement=null),(t.canDragMove||t.canBoxSelect)&&!0===t.initialDragPanState&&this.map.dragPan.enable(),t.boxSelecting=!1,t.canBoxSelect=!1,t.dragMoving=!1,t.canDragMove=!1},onStop:function(){Rt.enable(this)},onMouseMove:function(t,e){return _t(e)&&t.dragMoving&&this.fireUpdate(),this.stopExtendedInteractions(t),!0},onMouseOut:function(t){return!t.dragMoving||this.fireUpdate()}};jt.onTap=jt.onClick=function(t,e){return It(e)?this.clickAnywhere(t,e):Et(m.VERTEX)(e)?this.clickOnVertex(t,e):_t(e)?this.clickOnFeature(t,e):void 0},jt.clickAnywhere=function(t){const e=this.getSelectedIds();e.length&&(this.clearSelectedFeatures(),e.forEach((t=>this.doRender(t)))),Rt.enable(this),this.stopExtendedInteractions(t)},jt.clickOnVertex=function(t,e){this.changeMode(h.DIRECT_SELECT,{featureId:e.featureTarget.properties.parent,coordPath:e.featureTarget.properties.coord_path,startPos:e.lngLat}),this.updateUIClasses({mouse:l.MOVE})},jt.startOnActiveFeature=function(t,e){this.stopExtendedInteractions(t),this.map.dragPan.disable(),this.doRender(e.featureTarget.properties.id),t.canDragMove=!0,t.dragMoveLocation=e.lngLat},jt.clickOnFeature=function(t,e){Rt.disable(this),this.stopExtendedInteractions(t);const o=Ot(e),n=this.getSelectedIds(),r=e.featureTarget.properties.id,i=this.isSelected(r);if(!o&&i&&this.getFeature(r).type!==p.POINT)return this.changeMode(h.DIRECT_SELECT,{featureId:r});i&&o?(this.deselect(r),this.updateUIClasses({mouse:l.POINTER}),1===n.length&&Rt.enable(this)):!i&&o?(this.select(r),this.updateUIClasses({mouse:l.MOVE})):i||o||(n.forEach((t=>this.doRender(t))),this.setSelected(r),this.updateUIClasses({mouse:l.MOVE})),this.doRender(r)},jt.onMouseDown=function(t,e){return t.initialDragPanState=this.map.dragPan.isEnabled(),Tt(e)?this.startOnActiveFeature(t,e):this.drawConfig.boxSelect&&Ct(e)?this.startBoxSelect(t,e):void 0},jt.startBoxSelect=function(t,e){this.stopExtendedInteractions(t),this.map.dragPan.disable(),t.boxSelectStartLocation=xt(e.originalEvent,this.map.getContainer()),t.canBoxSelect=!0},jt.onTouchStart=function(t,e){if(Tt(e))return this.startOnActiveFeature(t,e)},jt.onDrag=function(t,e){return t.canDragMove?this.dragMove(t,e):this.drawConfig.boxSelect&&t.canBoxSelect?this.whileBoxSelect(t,e):void 0},jt.whileBoxSelect=function(t,e){t.boxSelecting=!0,this.updateUIClasses({mouse:l.ADD}),t.boxSelectElement||(t.boxSelectElement=document.createElement("div"),t.boxSelectElement.classList.add(c.BOX_SELECT),this.map.getContainer().appendChild(t.boxSelectElement));const o=xt(e.originalEvent,this.map.getContainer()),n=Math.min(t.boxSelectStartLocation.x,o.x),r=Math.max(t.boxSelectStartLocation.x,o.x),i=Math.min(t.boxSelectStartLocation.y,o.y),s=Math.max(t.boxSelectStartLocation.y,o.y),a=`translate(${n}px, ${i}px)`;t.boxSelectElement.style.transform=a,t.boxSelectElement.style.WebkitTransform=a,t.boxSelectElement.style.width=r-n+"px",t.boxSelectElement.style.height=s-i+"px"},jt.dragMove=function(t,e){t.dragMoving=!0,e.originalEvent.stopPropagation();const o={lng:e.lngLat.lng-t.dragMoveLocation.lng,lat:e.lngLat.lat-t.dragMoveLocation.lat};Jt(this.getSelected(),o),t.dragMoveLocation=e.lngLat},jt.onTouchEnd=jt.onMouseUp=function(t,e){if(t.dragMoving)this.fireUpdate();else if(t.boxSelecting){const o=[t.boxSelectStartLocation,xt(e.originalEvent,this.map.getContainer())],n=this.featuresAt(null,o,"click"),r=this.getUniqueIds(n).filter((t=>!this.isSelected(t)));r.length&&(this.select(r),r.forEach((t=>this.doRender(t))),this.updateUIClasses({mouse:l.MOVE}))}this.stopExtendedInteractions(t)},jt.toDisplayFeatures=function(t,e,o){e.properties.active=this.isSelected(e.properties.id)?y.ACTIVE:y.INACTIVE,o(e),this.fireActionable(),e.properties.active===y.ACTIVE&&e.geometry.type!==p.POINT&&Ft(e).forEach(o)},jt.onTrash=function(){this.deleteFeature(this.getSelectedIds()),this.fireActionable()},jt.onCombineFeatures=function(){const t=this.getSelected();if(0===t.length||t.length<2)return;const e=[],o=[],n=t[0].type.replace("Multi","");for(let r=0;r{e.push(t)})):e.push(i.getCoordinates()),o.push(i.toGeoJSON())}if(o.length>1){const t=this.newFeature({type:p.FEATURE,properties:o[0].properties,geometry:{type:`Multi${n}`,coordinates:e}});this.addFeature(t),this.deleteFeature(this.getSelectedIds(),{silent:!0}),this.setSelected([t.id]),this.fire(f.COMBINE_FEATURES,{createdFeatures:[t.toGeoJSON()],deletedFeatures:o})}this.fireActionable()},jt.onUncombineFeatures=function(){const t=this.getSelected();if(0===t.length)return;const e=[],o=[];for(let n=0;n{this.addFeature(t),t.properties=r.properties,e.push(t.toGeoJSON()),this.select([t.id])})),this.deleteFeature(r.id,{silent:!0}),o.push(r.toGeoJSON()))}e.length>1&&this.fire(f.UNCOMBINE_FEATURES,{createdFeatures:e,deletedFeatures:o}),this.fireActionable()};const $t=jt,Yt=Et(m.VERTEX),Ht=Et(m.MIDPOINT),Xt={fireUpdate:function(){this.fire(f.UPDATE,{action:g.CHANGE_COORDINATES,features:this.getSelected().map((t=>t.toGeoJSON()))})},fireActionable:function(t){this.setActionableState({combineFeatures:!1,uncombineFeatures:!1,trash:t.selectedCoordPaths.length>0})},startDragging:function(t,e){t.initialDragPanState=this.map.dragPan.isEnabled(),this.map.dragPan.disable(),t.canDragMove=!0,t.dragMoveLocation=e.lngLat},stopDragging:function(t){t.canDragMove&&!0===t.initialDragPanState&&this.map.dragPan.enable(),t.dragMoving=!1,t.canDragMove=!1,t.dragMoveLocation=null},onVertex:function(t,e){this.startDragging(t,e);const o=e.featureTarget.properties,n=t.selectedCoordPaths.indexOf(o.coord_path);Ot(e)||-1!==n?Ot(e)&&-1===n&&t.selectedCoordPaths.push(o.coord_path):t.selectedCoordPaths=[o.coord_path];const r=this.pathsToCoordinates(t.featureId,t.selectedCoordPaths);this.setSelectedCoordinates(r)},onMidpoint:function(t,e){this.startDragging(t,e);const o=e.featureTarget.properties;t.feature.addCoordinate(o.coord_path,o.lng,o.lat),this.fireUpdate(),t.selectedCoordPaths=[o.coord_path]},pathsToCoordinates:function(t,e){return e.map((e=>({feature_id:t,coord_path:e})))},onFeature:function(t,e){0===t.selectedCoordPaths.length?this.startDragging(t,e):this.stopDragging(t)},dragFeature:function(t,e,o){Jt(this.getSelected(),o),t.dragMoveLocation=e.lngLat},dragVertex:function(t,e,o){const n=t.selectedCoordPaths.map((e=>t.feature.getCoordinate(e))),r=Bt(n.map((t=>({type:p.FEATURE,properties:{},geometry:{type:p.POINT,coordinates:t}}))),o);for(let i=0;ie.localeCompare(t,"en",{numeric:!0}))).forEach((e=>t.feature.removeCoordinate(e))),this.fireUpdate(),t.selectedCoordPaths=[],this.clearSelectedCoordinates(),this.fireActionable(t),!1===t.feature.isValid()&&(this.deleteFeature([t.featureId]),this.changeMode(h.SIMPLE_SELECT,{}))},onMouseMove:function(t,e){const o=Tt(e),n=Yt(e),r=Ht(e),i=0===t.selectedCoordPaths.length;o&&i||n&&!i?this.updateUIClasses({mouse:l.MOVE}):this.updateUIClasses({mouse:l.NONE});return(n||o||r)&&t.dragMoving&&this.fireUpdate(),this.stopDragging(t),!0},onMouseOut:function(t){return t.dragMoving&&this.fireUpdate(),!0}};Xt.onTouchStart=Xt.onMouseDown=function(t,e){return Yt(e)?this.onVertex(t,e):Tt(e)?this.onFeature(t,e):Ht(e)?this.onMidpoint(t,e):void 0},Xt.onDrag=function(t,e){if(!0!==t.canDragMove)return;t.dragMoving=!0,e.originalEvent.stopPropagation();const o={lng:e.lngLat.lng-t.dragMoveLocation.lng,lat:e.lngLat.lat-t.dragMoveLocation.lat};t.selectedCoordPaths.length>0?this.dragVertex(t,e,o):this.dragFeature(t,e,o),t.dragMoveLocation=e.lngLat},Xt.onClick=function(t,e){return It(e)?this.clickNoTarget(t,e):Tt(e)?this.clickActiveFeature(t,e):vt(e)?this.clickInactive(t,e):void this.stopDragging(t)},Xt.onTap=function(t,e){return It(e)?this.clickNoTarget(t,e):Tt(e)?this.clickActiveFeature(t,e):vt(e)?this.clickInactive(t,e):void 0},Xt.onTouchEnd=Xt.onMouseUp=function(t){t.dragMoving&&this.fireUpdate(),this.stopDragging(t)};const qt=Xt,Zt={onSetup:function(){const t=this.newFeature({type:p.FEATURE,properties:{},geometry:{type:p.POINT,coordinates:[]}});return this.addFeature(t),this.clearSelectedFeatures(),this.updateUIClasses({mouse:l.ADD}),this.activateUIButton(d.POINT),this.setActionableState({trash:!0}),{point:t}},stopDrawingAndRemove:function(t){this.deleteFeature([t.point.id],{silent:!0}),this.changeMode(h.SIMPLE_SELECT)}};Zt.onTap=Zt.onClick=function(t,e){this.updateUIClasses({mouse:l.MOVE}),t.point.updateCoordinate("",e.lngLat.lng,e.lngLat.lat),this.fire(f.CREATE,{features:[t.point.toGeoJSON()]}),this.changeMode(h.SIMPLE_SELECT,{featureIds:[t.point.id]})},Zt.onStop=function(t){this.activateUIButton(),t.point.getCoordinate().length||this.deleteFeature([t.point.id],{silent:!0})},Zt.toDisplayFeatures=function(t,e,o){const n=e.properties.id===t.point.id;if(e.properties.active=n?y.ACTIVE:y.INACTIVE,!n)return o(e)},Zt.onTrash=Zt.stopDrawingAndRemove,Zt.onKeyUp=function(t,e){if(Mt(e)||Lt(e))return this.stopDrawingAndRemove(t,e)};const Wt=Zt;const Kt=function(t,e){return!!t.lngLat&&(t.lngLat.lng===e[0]&&t.lngLat.lat===e[1])},zt={onSetup:function(){const t=this.newFeature({type:p.FEATURE,properties:{},geometry:{type:p.POLYGON,coordinates:[[]]}});return this.addFeature(t),this.clearSelectedFeatures(),Rt.disable(this),this.updateUIClasses({mouse:l.ADD}),this.activateUIButton(d.POLYGON),this.setActionableState({trash:!0}),{polygon:t,currentVertexPosition:0}},clickAnywhere:function(t,e){if(t.currentVertexPosition>0&&Kt(e,t.polygon.coordinates[0][t.currentVertexPosition-1]))return this.changeMode(h.SIMPLE_SELECT,{featureIds:[t.polygon.id]});this.updateUIClasses({mouse:l.ADD}),t.polygon.updateCoordinate(`0.${t.currentVertexPosition}`,e.lngLat.lng,e.lngLat.lat),t.currentVertexPosition++,t.polygon.updateCoordinate(`0.${t.currentVertexPosition}`,e.lngLat.lng,e.lngLat.lat)},clickOnVertex:function(t){return this.changeMode(h.SIMPLE_SELECT,{featureIds:[t.polygon.id]})},onMouseMove:function(t,e){t.polygon.updateCoordinate(`0.${t.currentVertexPosition}`,e.lngLat.lng,e.lngLat.lat),St(e)&&this.updateUIClasses({mouse:l.POINTER})}};zt.onTap=zt.onClick=function(t,e){return St(e)?this.clickOnVertex(t,e):this.clickAnywhere(t,e)},zt.onKeyUp=function(t,e){Mt(e)?(this.deleteFeature([t.polygon.id],{silent:!0}),this.changeMode(h.SIMPLE_SELECT)):Lt(e)&&this.changeMode(h.SIMPLE_SELECT,{featureIds:[t.polygon.id]})},zt.onStop=function(t){this.updateUIClasses({mouse:l.NONE}),Rt.enable(this),this.activateUIButton(),void 0!==this.getFeature(t.polygon.id)&&(t.polygon.removeCoordinate(`0.${t.currentVertexPosition}`),t.polygon.isValid()?this.fire(f.CREATE,{features:[t.polygon.toGeoJSON()]}):(this.deleteFeature([t.polygon.id],{silent:!0}),this.changeMode(h.SIMPLE_SELECT,{},{silent:!0})))},zt.toDisplayFeatures=function(t,e,o){const n=e.properties.id===t.polygon.id;if(e.properties.active=n?y.ACTIVE:y.INACTIVE,!n)return o(e);if(0===e.geometry.coordinates.length)return;const r=e.geometry.coordinates[0].length;if(!(r<3)){if(e.properties.meta=m.FEATURE,o(Pt(t.polygon.id,e.geometry.coordinates[0][0],"0.0",!1)),r>3){const n=e.geometry.coordinates[0].length-3;o(Pt(t.polygon.id,e.geometry.coordinates[0][n],`0.${n}`,!1))}if(r<=4){const t=[[e.geometry.coordinates[0][0][0],e.geometry.coordinates[0][0][1]],[e.geometry.coordinates[0][1][0],e.geometry.coordinates[0][1][1]]];if(o({type:p.FEATURE,properties:e.properties,geometry:{coordinates:t,type:p.LINE_STRING}}),3===r)return}return o(e)}},zt.onTrash=function(t){this.deleteFeature([t.polygon.id],{silent:!0}),this.changeMode(h.SIMPLE_SELECT)};const Qt=zt,te={onSetup:function(t){const e=(t=t||{}).featureId;let o,n,r="forward";if(e){if(o=this.getFeature(e),!o)throw new Error("Could not find a feature with the provided featureId");let i=t.from;if(i&&"Feature"===i.type&&i.geometry&&"Point"===i.geometry.type&&(i=i.geometry),i&&"Point"===i.type&&i.coordinates&&2===i.coordinates.length&&(i=i.coordinates),!i||!Array.isArray(i))throw new Error("Please use the `from` property to indicate which point to continue the line from");const s=o.coordinates.length-1;if(o.coordinates[s][0]===i[0]&&o.coordinates[s][1]===i[1])n=s+1,o.addCoordinate(n,...o.coordinates[s]);else{if(o.coordinates[0][0]!==i[0]||o.coordinates[0][1]!==i[1])throw new Error("`from` should match the point at either the start or the end of the provided LineString");r="backwards",n=0,o.addCoordinate(n,...o.coordinates[0])}}else o=this.newFeature({type:p.FEATURE,properties:{},geometry:{type:p.LINE_STRING,coordinates:[]}}),n=0,this.addFeature(o);return this.clearSelectedFeatures(),Rt.disable(this),this.updateUIClasses({mouse:l.ADD}),this.activateUIButton(d.LINE),this.setActionableState({trash:!0}),{line:o,currentVertexPosition:n,direction:r}},clickAnywhere:function(t,e){if(t.currentVertexPosition>0&&Kt(e,t.line.coordinates[t.currentVertexPosition-1])||"backwards"===t.direction&&Kt(e,t.line.coordinates[t.currentVertexPosition+1]))return this.changeMode(h.SIMPLE_SELECT,{featureIds:[t.line.id]});this.updateUIClasses({mouse:l.ADD}),t.line.updateCoordinate(t.currentVertexPosition,e.lngLat.lng,e.lngLat.lat),"forward"===t.direction?(t.currentVertexPosition++,t.line.updateCoordinate(t.currentVertexPosition,e.lngLat.lng,e.lngLat.lat)):t.line.addCoordinate(0,e.lngLat.lng,e.lngLat.lat)},clickOnVertex:function(t){return this.changeMode(h.SIMPLE_SELECT,{featureIds:[t.line.id]})},onMouseMove:function(t,e){t.line.updateCoordinate(t.currentVertexPosition,e.lngLat.lng,e.lngLat.lat),St(e)&&this.updateUIClasses({mouse:l.POINTER})}};te.onTap=te.onClick=function(t,e){if(St(e))return this.clickOnVertex(t,e);this.clickAnywhere(t,e)},te.onKeyUp=function(t,e){Lt(e)?this.changeMode(h.SIMPLE_SELECT,{featureIds:[t.line.id]}):Mt(e)&&(this.deleteFeature([t.line.id],{silent:!0}),this.changeMode(h.SIMPLE_SELECT))},te.onStop=function(t){Rt.enable(this),this.activateUIButton(),void 0!==this.getFeature(t.line.id)&&(t.line.removeCoordinate(`${t.currentVertexPosition}`),t.line.isValid()?this.fire(f.CREATE,{features:[t.line.toGeoJSON()]}):(this.deleteFeature([t.line.id],{silent:!0}),this.changeMode(h.SIMPLE_SELECT,{},{silent:!0})))},te.onTrash=function(t){this.deleteFeature([t.line.id],{silent:!0}),this.changeMode(h.SIMPLE_SELECT)},te.toDisplayFeatures=function(t,e,o){const n=e.properties.id===t.line.id;if(e.properties.active=n?y.ACTIVE:y.INACTIVE,!n)return o(e);e.geometry.coordinates.length<2||(e.properties.meta=m.FEATURE,o(Pt(t.line.id,e.geometry.coordinates["forward"===t.direction?e.geometry.coordinates.length-2:1],""+("forward"===t.direction?e.geometry.coordinates.length-2:1),!1)),o(e))};const ee={simple_select:$t,direct_select:qt,draw_point:Wt,draw_polygon:Qt,draw_line_string:te},oe={defaultMode:h.SIMPLE_SELECT,keybindings:!0,touchEnabled:!0,clickBuffer:2,touchBuffer:25,boxSelect:!0,displayControlsDefault:!0,styles:yt,modes:ee,controls:{},userProperties:!1,suppressAPIEvents:!0},ne={point:!0,line_string:!0,polygon:!0,trash:!0,combine_features:!0,uncombine_features:!0},re={point:!1,line_string:!1,polygon:!1,trash:!1,combine_features:!1,uncombine_features:!1};function ie(t,e){return t.map((t=>t.source?t:Object.assign({},t,{id:`${t.id}.${e}`,source:"hot"===e?u.HOT:u.COLD})))}var se=o(2017),ae=o(8186);function ce(t,e){return t.length===e.length&&JSON.stringify(t.map((t=>t)).sort())===JSON.stringify(e.map((t=>t)).sort())}const ue={Polygon:z,LineString:W,Point:q,MultiPolygon:ot,MultiLineString:ot,MultiPoint:ot};const le=function(t,e){const o={options:t=function(t={}){let e=Object.assign({},t);return t.controls||(e.controls={}),!1===t.displayControlsDefault?e.controls=Object.assign({},re,t.controls):e.controls=Object.assign({},ne,t.controls),e=Object.assign({},oe,e),e.styles=ie(e.styles,"cold").concat(ie(e.styles,"hot")),e}(t)};e=function(t,e){e.modes=h;const o=void 0===t.options.suppressAPIEvents||!!t.options.suppressAPIEvents;return e.getFeatureIdsAt=function(e){return A.click({point:e},null,t).map((t=>t.properties.id))},e.getSelectedIds=function(){return t.store.getSelectedIds()},e.getSelected=function(){return{type:p.FEATURE_COLLECTION,features:t.store.getSelectedIds().map((e=>t.store.get(e))).map((t=>t.toGeoJSON()))}},e.getSelectedPoints=function(){return{type:p.FEATURE_COLLECTION,features:t.store.getSelectedCoordinates().map((t=>({type:p.FEATURE,properties:{},geometry:{type:p.POINT,coordinates:t.coordinates}})))}},e.set=function(o){if(void 0===o.type||o.type!==p.FEATURE_COLLECTION||!Array.isArray(o.features))throw new Error("Invalid FeatureCollection");const n=t.store.createRenderBatch();let r=t.store.getAllIds().slice();const i=e.add(o),s=new x(i);return r=r.filter((t=>!s.has(t))),r.length&&e.delete(r),n(),i},e.add=function(e){const n=JSON.parse(JSON.stringify(ae(e))).features.map((e=>{if(e.id=e.id||$(),null===e.geometry)throw new Error("Invalid geometry: null");if(void 0===t.store.get(e.id)||t.store.get(e.id).type!==e.geometry.type){const n=ue[e.geometry.type];if(void 0===n)throw new Error(`Invalid geometry type: ${e.geometry.type}.`);const r=new n(t,e);t.store.add(r,{silent:o})}else{const n=t.store.get(e.id),r=n.properties;n.properties=e.properties,se(r,e.properties)||t.store.featureChanged(n.id,{silent:o}),se(n.getCoordinates(),e.geometry.coordinates)||n.incomingCoords(e.geometry.coordinates)}return e.id}));return t.store.render(),n},e.get=function(e){const o=t.store.get(e);if(o)return o.toGeoJSON()},e.getAll=function(){return{type:p.FEATURE_COLLECTION,features:t.store.getAll().map((t=>t.toGeoJSON()))}},e.delete=function(n){return t.store.delete(n,{silent:o}),e.getMode()!==h.DIRECT_SELECT||t.store.getSelectedIds().length?t.store.render():t.events.changeMode(h.SIMPLE_SELECT,void 0,{silent:o}),e},e.deleteAll=function(){return t.store.delete(t.store.getAllIds(),{silent:o}),e.getMode()===h.DIRECT_SELECT?t.events.changeMode(h.SIMPLE_SELECT,void 0,{silent:o}):t.store.render(),e},e.changeMode=function(n,r={}){return n===h.SIMPLE_SELECT&&e.getMode()===h.SIMPLE_SELECT?(ce(r.featureIds||[],t.store.getSelectedIds())||(t.store.setSelected(r.featureIds,{silent:o}),t.store.render()),e):(n===h.DIRECT_SELECT&&e.getMode()===h.DIRECT_SELECT&&r.featureId===t.store.getSelectedIds()[0]||t.events.changeMode(n,r,{silent:o}),e)},e.getMode=function(){return t.events.getMode()},e.trash=function(){return t.events.trash({silent:o}),e},e.combineFeatures=function(){return t.events.combineFeatures({silent:o}),e},e.uncombineFeatures=function(){return t.events.uncombineFeatures({silent:o}),e},e.setFeatureProperty=function(n,r,i){return t.store.setFeatureProperty(n,r,i,{silent:o}),e},e}(o,e),o.api=e;const n=ht(o);return e.onAdd=n.onAdd,e.onRemove=n.onRemove,e.types=d,e.options=t,e};function de(t){le(t,this)}de.modes=ee,de.constants=n,de.lib=i;const pe=de},999:(t,e,o)=>{"use strict";o.d(e,{A:()=>i});var n=o(2820),r=6378137;function i(t){return(0,n.jE)(t,(function(t,e){return t+function(t){var e,o=0;switch(t.type){case"Polygon":return s(t.coordinates);case"MultiPolygon":for(e=0;e0){e+=Math.abs(a(t[0]));for(var o=1;o2){for(a=0;a{r.d(t,{R:()=>l,x:()=>u});var o=r(6540);const n={},i=o.createContext(n);function l(e){const t=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function u(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),o.createElement(i.Provider,{value:t},e.children)}},2820:(e,t,r)=>{r.d(t,{Fh:()=>o,jE:()=>i});function o(e,t,r){if(null!==e)for(var n,i,l,u,s,a,c,f,g=0,y=0,m=e.type,p="FeatureCollection"===m,h="Feature"===m,b=p?e.features.length:1,P=0;P{o.r(t),o.d(t,{assets:()=>h,contentTitle:()=>f,default:()=>v,frontMatter:()=>m,metadata:()=>n,toc:()=>g});const n=JSON.parse('{"id":"maplibre/terrain","title":"Terrain","description":"","source":"@site/src/examples/maplibre/terrain.mdx","sourceDirName":"maplibre","slug":"/maplibre/terrain","permalink":"/react-map-gl/examples/maplibre/terrain","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"Side by Side","permalink":"/react-map-gl/examples/maplibre/side-by-side"},"next":{"title":"Camera Transition","permalink":"/react-map-gl/examples/maplibre/viewport-animation"}}');var r=o(4848),s=o(8453),i=o(6540),a=(o(5338),o(5490));function l(){return(0,r.jsxs)("div",{className:"control-panel",children:[(0,r.jsx)("h3",{children:"3D Terrain"}),(0,r.jsx)("p",{children:"Add 3D terrain and sky to a map."}),(0,r.jsx)("div",{className:"source-link",children:(0,r.jsx)("a",{href:"https://github.com/visgl/react-maplibre/tree/1.0-release/examples/terrain",target:"_new",children:"View Code \u2197"})})]})}const c=i.memo(l),u={"sky-color":"#80ccff","sky-horizon-blend":.5,"horizon-color":"#ccddff","horizon-fog-blend":.5,"fog-color":"#fcf0dd","fog-ground-blend":.2},p={source:"terrain-dem",exaggeration:1.5};function d(){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(a.T5,{initialViewState:{latitude:47.27574,longitude:11.39085,zoom:12,pitch:70},maxPitch:85,mapStyle:"https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json",sky:u,terrain:p,children:[(0,r.jsx)(a.kL,{id:"terrain-dem",type:"raster-dem",url:"https://demotiles.maplibre.org/terrain-tiles/tiles.json",tileSize:256}),(0,r.jsx)(a.kL,{id:"hillshade-dem",type:"raster-dem",url:"https://demotiles.maplibre.org/terrain-tiles/tiles.json",tileSize:256,children:(0,r.jsx)(a.Wd,{type:"hillshade",layout:{visibility:"visible"},paint:{"hillshade-shadow-color":"#473B24"}})}),(0,r.jsx)(a.jG,Object.assign({},p,{position:"top-left"}))]}),(0,r.jsx)(c,{})]})}const m={},f="Terrain",h={},g=[];function y(e){const t={h1:"h1",header:"header",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"terrain",children:"Terrain"})}),"\n","\n",(0,r.jsx)(d,{})]})}function v(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(y,{...e})}):y(e)}},5490:(e,t,o)=>{o.d(t,{T3:()=>O,tG:()=>T,Wd:()=>V,T5:()=>C,pH:()=>M,ov:()=>I,zD:()=>P,g0:()=>A,kL:()=>H,jG:()=>N,Ay:()=>C,VI:()=>k});var n=o(6540),r=o(4848);const s=n.createContext(null);function i(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let o=0;o{let o=null;"interactive"in e&&(o=Object.assign({},e),delete o.interactive);const n=t[e.ref];if(n){o=o||Object.assign({},e),delete o.ref;for(const e of c)e in n&&(o[e]=n[e])}return o||e}));return Object.assign({},e,{layers:o})}const p={version:8,sources:{},layers:[]},d={mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",click:"onClick",dblclick:"onDblClick",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",mouseout:"onMouseOut",contextmenu:"onContextMenu",touchstart:"onTouchStart",touchend:"onTouchEnd",touchmove:"onTouchMove",touchcancel:"onTouchCancel"},m={movestart:"onMoveStart",move:"onMove",moveend:"onMoveEnd",dragstart:"onDragStart",drag:"onDrag",dragend:"onDragEnd",zoomstart:"onZoomStart",zoom:"onZoom",zoomend:"onZoomEnd",rotatestart:"onRotateStart",rotate:"onRotate",rotateend:"onRotateEnd",pitchstart:"onPitchStart",pitch:"onPitch",pitchend:"onPitchEnd"},f={wheel:"onWheel",boxzoomstart:"onBoxZoomStart",boxzoomend:"onBoxZoomEnd",boxzoomcancel:"onBoxZoomCancel",resize:"onResize",load:"onLoad",render:"onRender",idle:"onIdle",remove:"onRemove",data:"onData",styledata:"onStyleData",sourcedata:"onSourceData",error:"onError"},h=["minZoom","maxZoom","minPitch","maxPitch","maxBounds","projection","renderWorldCopies"],g=["scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate","touchPitch"];class y{constructor(e,t,o){this._map=null,this._internalUpdate=!1,this._hoveredFeatures=null,this._propsedCameraUpdate=null,this._styleComponents={},this._onEvent=e=>{const t=this.props[f[e.type]];t?t(e):"error"===e.type&&console.error(e.error)},this._onCameraEvent=e=>{if(this._internalUpdate)return;e.viewState=this._propsedCameraUpdate||a(this._map.transform);const t=this.props[m[e.type]];t&&t(e)},this._onCameraUpdate=e=>this._internalUpdate?e:(this._propsedCameraUpdate=a(e),l(e,this.props)),this._onPointerEvent=e=>{"mousemove"!==e.type&&"mouseout"!==e.type||this._updateHover(e);const t=this.props[d[e.type]];t&&(this.props.interactiveLayerIds&&"mouseover"!==e.type&&"mouseout"!==e.type&&(e.features=this._hoveredFeatures||this._queryRenderedFeatures(e.point)),t(e),delete e.features)},this._MapClass=e,this.props=t,this._initialize(o)}get map(){return this._map}setProps(e){const t=this.props;this.props=e;const o=this._updateSettings(e,t),n=this._updateSize(e),r=this._updateViewState(e);this._updateStyle(e,t),this._updateStyleComponents(e),this._updateHandlers(e,t),(o||n||r&&!this._map.isMoving())&&this.redraw()}static reuse(e,t){const o=y.savedMaps.pop();if(!o)return null;const n=o.map,r=n.getContainer();for(t.className=r.className;r.childNodes.length>0;)t.appendChild(r.childNodes[0]);n._container=t;const s=n._resizeObserver;s&&(s.disconnect(),s.observe(t)),o.setProps(Object.assign({},e,{styleDiffing:!1})),n.resize();const{initialViewState:i}=e;return i&&(i.bounds?n.fitBounds(i.bounds,Object.assign({},i.fitBoundsOptions,{duration:0})):o._updateViewState(i)),n.isStyleLoaded()?n.fire("load"):n.once("style.load",(()=>n.fire("load"))),n._update(),o}_initialize(e){const{props:t}=this,{mapStyle:o=p}=t,n=Object.assign({},t,t.initialViewState,{container:e,style:u(o)}),r=n.initialViewState||n.viewState||n;if(Object.assign(n,{center:[r.longitude||0,r.latitude||0],zoom:r.zoom||0,pitch:r.pitch||0,bearing:r.bearing||0}),t.gl){const e=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=e,t.gl)}const s=new this._MapClass(n);r.padding&&s.setPadding(r.padding),t.cursor&&(s.getCanvas().style.cursor=t.cursor),s.transformCameraUpdate=this._onCameraUpdate,s.on("style.load",(()=>{this._styleComponents={light:s.getLight(),sky:s.getSky(),projection:null==s.getProjection?void 0:s.getProjection(),terrain:s.getTerrain()},this._updateStyleComponents(this.props)})),s.on("sourcedata",(()=>{this._updateStyleComponents(this.props)}));for(const i in d)s.on(i,this._onPointerEvent);for(const i in m)s.on(i,this._onCameraEvent);for(const i in f)s.on(i,this._onEvent);this._map=s}recycle(){const e=this.map.getContainer().querySelector("[mapboxgl-children]");null==e||e.remove(),y.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){const e=this._map;e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())}_updateSize(e){const{viewState:t}=e;if(t){const e=this._map;if(t.width!==e.transform.width||t.height!==e.transform.height)return e.resize(),!0}return!1}_updateViewState(e){const t=this._map,o=t.transform;if(!t.isMoving()){const n=l(o,e);if(Object.keys(n).length>0)return this._internalUpdate=!0,t.jumpTo(n),this._internalUpdate=!1,!0}return!1}_updateSettings(e,t){const o=this._map;let n=!1;for(const r of h)if(r in e&&!i(e[r],t[r])){n=!0;const t=o["set"+r[0].toUpperCase()+r.slice(1)];null==t||t.call(o,e[r])}return n}_updateStyle(e,t){if(e.cursor!==t.cursor&&(this._map.getCanvas().style.cursor=e.cursor||""),e.mapStyle!==t.mapStyle){const{mapStyle:t=p,styleDiffing:o=!0}=e,n={diff:o};"localIdeographFontFamily"in e&&(n.localIdeographFontFamily=e.localIdeographFontFamily),this._map.setStyle(u(t),n)}}_updateStyleComponents(e){let{light:t,projection:o,sky:n,terrain:r}=e;const s=this._map,a=this._styleComponents;var l;s.style._loaded&&(t&&!i(t,a.light)&&(a.light=t,s.setLight(t)),o&&!i(o,a.projection)&&o!==(null==(l=a.projection)?void 0:l.type)&&(a.projection="string"==typeof o?{type:o}:o,null==s.setProjection||s.setProjection(a.projection)),n&&!i(n,a.sky)&&(a.sky=n,s.setSky(n)),void 0===r||i(r,a.terrain)||r&&!s.getSource(r.source)||(a.terrain=r,s.setTerrain(r)))}_updateHandlers(e,t){const o=this._map;for(const s of g){var n,r;const a=null==(n=e[s])||n;i(a,null==(r=t[s])||r)||(a?o[s].enable(a):o[s].disable())}}_queryRenderedFeatures(e){const t=this._map,{interactiveLayerIds:o=[]}=this.props;try{return t.queryRenderedFeatures(e,{layers:o.filter(t.getLayer.bind(t))})}catch(n){return[]}}_updateHover(e){const{props:t}=this;if(t.interactiveLayerIds&&(t.onMouseMove||t.onMouseEnter||t.onMouseLeave)){var o;const t=e.type,n=(null==(o=this._hoveredFeatures)?void 0:o.length)>0,r=this._queryRenderedFeatures(e.point),s=r.length>0;!s&&n&&(e.type="mouseleave",this._onPointerEvent(e)),this._hoveredFeatures=r,s&&!n&&(e.type="mouseenter",this._onPointerEvent(e)),e.type=t}else this._hoveredFeatures=null}}y.savedMaps=[];const v=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function b(e){if(!e)return null;const t=e.map,o={getMap:()=>t};for(const n of function(e){const t=new Set;let o=e;for(;o;){for(const n of Object.getOwnPropertyNames(o))"_"!==n[0]&&"function"==typeof e[n]&&"fire"!==n&&"setEventedParent"!==n&&t.add(n);o=Object.getPrototypeOf(o)}return Array.from(t)}(t))n in o||v.includes(n)||(o[n]=t[n].bind(t));return o}const x="undefined"!=typeof document?n.useLayoutEffect:n.useEffect;const _=n.createContext(null);function L(e,t){const i=(0,n.useContext)(s),[a,l]=(0,n.useState)(null),c=(0,n.useRef)(),{current:u}=(0,n.useRef)({mapLib:null,map:null});(0,n.useEffect)((()=>{const t=e.mapLib;let n,r=!0;return Promise.resolve(t||o.e(6443).then(o.t.bind(o,6443,23))).then((t=>{if(!r)return;if(!t)throw new Error("Invalid mapLib");const o="Map"in t?t:t.default;if(!o.Map)throw new Error("Invalid mapLib");if(function(e,t){const{RTLTextPlugin:o,maxParallelImageRequests:n,workerCount:r,workerUrl:s}=t;if(o&&e.getRTLTextPluginStatus&&"unavailable"===e.getRTLTextPluginStatus()){const{pluginUrl:t,lazy:n=!0}="string"==typeof o?{pluginUrl:o}:o;e.setRTLTextPlugin(t,(e=>{e&&console.error(e)}),n)}void 0!==n&&e.setMaxParallelImageRequests(n),void 0!==r&&e.setWorkerCount(r),void 0!==s&&e.setWorkerUrl(s)}(o,e),o.supported&&!o.supported(e))throw new Error("Map is not supported by this browser");e.reuseMaps&&(n=y.reuse(e,c.current)),n||(n=new y(o.Map,e,c.current)),u.map=b(n),u.mapLib=o,l(n),null==i||i.onMapMount(u.map,e.id)})).catch((t=>{const{onError:o}=e;o?o({type:"error",target:null,originalEvent:null,error:t}):console.error(t)})),()=>{r=!1,n&&(null==i||i.onMapUnmount(e.id),e.reuseMaps?n.recycle():n.destroy())}}),[]),x((()=>{a&&a.setProps(e)})),(0,n.useImperativeHandle)(t,(()=>u.map),[a]);const p=(0,n.useMemo)((()=>Object.assign({position:"relative",width:"100%",height:"100%"},e.style)),[e.style]);return(0,r.jsx)("div",{id:e.id,ref:c,style:p,children:a&&(0,r.jsx)(_.Provider,{value:u,children:(0,r.jsx)("div",{"mapboxgl-children":"",style:{height:"100%"},children:e.children})})})}const C=n.forwardRef(L);var S=o(961);const j=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function w(e,t){if(!e||!t)return;const o=e.style;for(const n in t){const e=t[n];Number.isFinite(e)&&!j.test(n)?o[n]=e+"px":o[n]=e}}const M=(0,n.memo)((0,n.forwardRef)(((e,t)=>{const{map:o,mapLib:r}=(0,n.useContext)(_),s=(0,n.useRef)({props:e});s.current.props=e;const i=(0,n.useMemo)((()=>{let t=!1;n.Children.forEach(e.children,(e=>{e&&(t=!0)}));const o=Object.assign({},e,{element:t?document.createElement("div"):null}),a=new r.Marker(o);return a.setLngLat([e.longitude,e.latitude]),a.getElement().addEventListener("click",(e=>{null==s.current.props.onClick||s.current.props.onClick({type:"click",target:a,originalEvent:e})})),a.on("dragstart",(e=>{const t=e;t.lngLat=i.getLngLat(),null==s.current.props.onDragStart||s.current.props.onDragStart(t)})),a.on("drag",(e=>{const t=e;t.lngLat=i.getLngLat(),null==s.current.props.onDrag||s.current.props.onDrag(t)})),a.on("dragend",(e=>{const t=e;t.lngLat=i.getLngLat(),null==s.current.props.onDragEnd||s.current.props.onDragEnd(t)})),a}),[]);(0,n.useEffect)((()=>(i.addTo(o.getMap()),()=>{i.remove()})),[]);const{longitude:a,latitude:l,offset:c,style:u,draggable:p=!1,popup:d=null,rotation:m=0,rotationAlignment:f="auto",pitchAlignment:h="auto"}=e;return(0,n.useEffect)((()=>{w(i.getElement(),u)}),[u]),(0,n.useImperativeHandle)(t,(()=>i),[]),i.getLngLat().lng===a&&i.getLngLat().lat===l||i.setLngLat([a,l]),c&&!function(e,t){const o=Array.isArray(e)?e[0]:e?e.x:0,n=Array.isArray(e)?e[1]:e?e.y:0,r=Array.isArray(t)?t[0]:t?t.x:0,s=Array.isArray(t)?t[1]:t?t.y:0;return o===r&&n===s}(i.getOffset(),c)&&i.setOffset(c),i.isDraggable()!==p&&i.setDraggable(p),i.getRotation()!==m&&i.setRotation(m),i.getRotationAlignment()!==f&&i.setRotationAlignment(f),i.getPitchAlignment()!==h&&i.setPitchAlignment(h),i.getPopup()!==d&&i.setPopup(d),(0,S.createPortal)(e.children,i.getElement())})));function E(e){return new Set(e?e.trim().split(/\s+/):[])}const P=(0,n.memo)((0,n.forwardRef)(((e,t)=>{const{map:o,mapLib:r}=(0,n.useContext)(_),s=(0,n.useMemo)((()=>document.createElement("div")),[]),a=(0,n.useRef)({props:e});a.current.props=e;const l=(0,n.useMemo)((()=>{const t=Object.assign({},e),o=new r.Popup(t);return o.setLngLat([e.longitude,e.latitude]),o.once("open",(e=>{null==a.current.props.onOpen||a.current.props.onOpen(e)})),o}),[]);if((0,n.useEffect)((()=>{const e=e=>{null==a.current.props.onClose||a.current.props.onClose(e)};return l.on("close",e),l.setDOMContent(s).addTo(o.getMap()),()=>{l.off("close",e),l.isOpen()&&l.remove()}}),[]),(0,n.useEffect)((()=>{w(l.getElement(),e.style)}),[e.style]),(0,n.useImperativeHandle)(t,(()=>l),[]),l.isOpen()&&(l.getLngLat().lng===e.longitude&&l.getLngLat().lat===e.latitude||l.setLngLat([e.longitude,e.latitude]),e.offset&&!i(l.options.offset,e.offset)&&l.setOffset(e.offset),l.options.anchor===e.anchor&&l.options.maxWidth===e.maxWidth||(l.options.anchor=e.anchor,l.setMaxWidth(e.maxWidth)),l.options.className!==e.className)){const t=E(l.options.className),o=E(e.className);for(const e of t)o.has(e)||l.removeClassName(e);for(const e of o)t.has(e)||l.addClassName(e);l.options.className=e.className}return(0,S.createPortal)(e.children,s)})));function k(e,t,o,r){const s=(0,n.useContext)(_),i=(0,n.useMemo)((()=>e(s)),[]);return(0,n.useEffect)((()=>{const e=r||o||t,n="function"==typeof t&&"function"==typeof o?t:null,a="function"==typeof o?o:"function"==typeof t?t:null,{map:l}=s;return l.hasControl(i)||(l.addControl(i,null==e?void 0:e.position),n&&n(s)),()=>{a&&a(s),l.hasControl(i)&&l.removeControl(i)}}),[]),i}function z(e){const t=k((t=>{let{mapLib:o}=t;return new o.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)})}),{position:e.position});return(0,n.useEffect)((()=>{w(t._controlContainer,e.style)}),[e.style]),null}const O=(0,n.memo)(z);function R(e,t){const o=(0,n.useRef)({props:e}),r=k((t=>{let{mapLib:n}=t;const r=new n.GeolocateControl(e),s=r._setupUI;return r._setupUI=()=>{r._container.hasChildNodes()||s()},r.on("geolocate",(e=>{null==o.current.props.onGeolocate||o.current.props.onGeolocate(e)})),r.on("error",(e=>{null==o.current.props.onError||o.current.props.onError(e)})),r.on("outofmaxbounds",(e=>{null==o.current.props.onOutOfMaxBounds||o.current.props.onOutOfMaxBounds(e)})),r.on("trackuserlocationstart",(e=>{null==o.current.props.onTrackUserLocationStart||o.current.props.onTrackUserLocationStart(e)})),r.on("trackuserlocationend",(e=>{null==o.current.props.onTrackUserLocationEnd||o.current.props.onTrackUserLocationEnd(e)})),r}),{position:e.position});return o.current.props=e,(0,n.useImperativeHandle)(t,(()=>r),[]),(0,n.useEffect)((()=>{w(r._container,e.style)}),[e.style]),null}const T=(0,n.memo)((0,n.forwardRef)(R));function U(e){const t=k((t=>{let{mapLib:o}=t;return new o.NavigationControl(e)}),{position:e.position});return(0,n.useEffect)((()=>{w(t._container,e.style)}),[e.style]),null}const I=(0,n.memo)(U);function D(e){const t=k((t=>{let{mapLib:o}=t;return new o.ScaleControl(e)}),{position:e.position}),o=(0,n.useRef)(e),r=o.current;o.current=e;const{style:s}=e;return void 0!==e.maxWidth&&e.maxWidth!==r.maxWidth&&(t.options.maxWidth=e.maxWidth),void 0!==e.unit&&e.unit!==r.unit&&t.setUnit(e.unit),(0,n.useEffect)((()=>{w(t._container,s)}),[s]),null}const A=(0,n.memo)(D);function F(e){const t=k((t=>{let{mapLib:o}=t;return new o.TerrainControl(e)}),{position:e.position});return(0,n.useEffect)((()=>{w(t._container,e.style)}),[e.style]),null}const N=(0,n.memo)(F);function W(e,t){if(!e)throw new Error(t)}let Z=0;function H(e){const t=(0,n.useContext)(_).map.getMap(),o=(0,n.useRef)(e),[,r]=(0,n.useState)(0),s=(0,n.useMemo)((()=>e.id||"jsx-source-"+Z++),[]);(0,n.useEffect)((()=>{if(t){const e=()=>setTimeout((()=>r((e=>e+1))),0);return t.on("styledata",e),e(),()=>{if(t.off("styledata",e),t.style&&t.style._loaded&&t.getSource(s)){var o;const e=null==(o=t.getStyle())?void 0:o.layers;if(e)for(const o of e)o.source===s&&t.removeLayer(o.id);t.removeSource(s)}}}}),[t]);let a=t&&t.style&&t.getSource(s);return a?function(e,t,o){W(t.id===o.id,"source id changed"),W(t.type===o.type,"source type changed");let n="",r=0;for(const a in t)"children"===a||"id"===a||i(o[a],t[a])||(n=a,r++);if(!r)return;const s=t.type;if("geojson"===s)e.setData(t.data);else if("image"===s)e.updateImage({url:t.url,coordinates:t.coordinates});else switch(n){case"coordinates":null==e.setCoordinates||e.setCoordinates(t.coordinates);break;case"url":null==e.setUrl||e.setUrl(t.url);break;case"tiles":null==e.setTiles||e.setTiles(t.tiles);break;default:console.warn("Unable to update prop: "+n)}}(a,e,o.current):a=function(e,t,o){if(e.style&&e.style._loaded){const n=Object.assign({},o);return delete n.id,delete n.children,e.addSource(t,n),e.getSource(t)}return null}(t,s,e),o.current=e,a&&n.Children.map(e.children,(e=>e&&(0,n.cloneElement)(e,{source:s})))||null}let B=0;function V(e){const t=(0,n.useContext)(_).map.getMap(),o=(0,n.useRef)(e),[,r]=(0,n.useState)(0),s=(0,n.useMemo)((()=>e.id||"jsx-layer-"+B++),[]);(0,n.useEffect)((()=>{if(t){const e=()=>r((e=>e+1));return t.on("styledata",e),e(),()=>{t.off("styledata",e),t.style&&t.style._loaded&&t.getLayer(s)&&t.removeLayer(s)}}}),[t]);if(t&&t.style&&t.getLayer(s))try{!function(e,t,o,n){if(W(o.id===n.id,"layer id changed"),W(o.type===n.type,"layer type changed"),"custom"===o.type||"custom"===n.type)return;const{layout:r={},paint:s={},filter:a,minzoom:l,maxzoom:c,beforeId:u}=o;if(u!==n.beforeId&&e.moveLayer(t,u),r!==n.layout){const o=n.layout||{};for(const n in r)i(r[n],o[n])||e.setLayoutProperty(t,n,r[n]);for(const n in o)r.hasOwnProperty(n)||e.setLayoutProperty(t,n,void 0)}if(s!==n.paint){const o=n.paint||{};for(const n in s)i(s[n],o[n])||e.setPaintProperty(t,n,s[n]);for(const n in o)s.hasOwnProperty(n)||e.setPaintProperty(t,n,void 0)}i(a,n.filter)||e.setFilter(t,a),l===n.minzoom&&c===n.maxzoom||e.setLayerZoomRange(t,l,c)}(t,s,e,o.current)}catch(a){console.warn(a)}else!function(e,t,o){if(e.style&&e.style._loaded&&(!("source"in o)||e.getSource(o.source))){const n=Object.assign({},o,{id:t});delete n.beforeId,e.addLayer(n,o.beforeId)}}(t,s,e);return o.current=e,null}},8453:(e,t,o)=>{o.d(t,{R:()=>i,x:()=>a});var n=o(6540);const r={},s=n.createContext(r);function i(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5990ff10.998c5a32.js b/assets/js/5990ff10.998c5a32.js deleted file mode 100644 index 72ab5534..00000000 --- a/assets/js/5990ff10.998c5a32.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[2344],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),l=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=l(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=l(n),m=o,f=p["".concat(u,".").concat(m)]||p[m]||d[m]||a;return n?r.createElement(f,i(i({ref:t},c),{},{components:n})):r.createElement(f,i({ref:t},c))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[p]="string"==typeof e?e:o,i[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>y,contentTitle:()=>v,default:()=>x,frontMatter:()=>g,metadata:()=>h,toc:()=>_});var r=n(7462),o=n(3366),a=n(7294),i=n(3905),s=(n(745),n(945)),u=n(7971);function l(e){return a.createElement("div",{className:"control-panel"},a.createElement("h3",null,"Camera Transition"),a.createElement("p",null,"Smooth animate of the viewport."),a.createElement("div",{className:"source-link"},a.createElement("a",{href:"https://github.com/visgl/react-map-gl/tree/7.1-release/examples/viewport-animation",target:"_new"},"View Code \u2197")),a.createElement("hr",null),u.filter((function(e){return"California"===e.state})).map((function(t,n){return a.createElement("div",{key:"btn-"+n,className:"input"},a.createElement("input",{type:"radio",name:"city",id:"city-"+n,defaultChecked:"San Francisco"===t.city,onClick:function(){return e.onSelectCity(t)}}),a.createElement("label",{htmlFor:"city-"+n},t.city))})))}const c=a.memo(l);var p="",d={latitude:37.7751,longitude:-122.4193,zoom:11,bearing:0,pitch:0};function m(){var e=(0,a.useRef)(),t=(0,a.useCallback)((function(t){var n,r=t.longitude,o=t.latitude;null==(n=e.current)||n.flyTo({center:[r,o],duration:2e3})}),[]);return a.createElement(a.Fragment,null,a.createElement(s.ZP,{ref:e,initialViewState:d,mapStyle:"mapbox://styles/mapbox/light-v9",mapboxAccessToken:p}),a.createElement(c,{onSelectCity:t}))}var f=["components"],g={},v="Camera Transition",h={unversionedId:"viewport-animation",id:"viewport-animation",title:"Camera Transition",description:"",source:"@site/src/examples/viewport-animation.mdx",sourceDirName:".",slug:"/viewport-animation",permalink:"/react-map-gl/examples/viewport-animation",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"examplesSidebar",previous:{title:"Limit Map Interaction",permalink:"/react-map-gl/examples/interaction"},next:{title:"Highlight By Filter",permalink:"/react-map-gl/examples/filter"}},y={},_=[],b={toc:_},w="wrapper";function x(e){var t=e.components,n=(0,o.Z)(e,f);return(0,i.kt)(w,(0,r.Z)({},b,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"camera-transition"},"Camera Transition"),(0,i.kt)(m,{mdxType:"App"}))}x.isMDXComponent=!0},945:(e,t,n)=>{n.d(t,{ot:()=>$,$j:()=>te,mh:()=>re,D5:()=>X,Jx:()=>Y,Pv:()=>ee,GI:()=>K,jf:()=>ne,Hw:()=>oe,ZP:()=>ae,PE:()=>D});var r=n(7294),o=r.createContext(null);var a=n(1202);function i(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(var n=0;n0;)n.appendChild(a.childNodes[0]);o._container=n;var i=o._resizeObserver;i&&(i.disconnect(),i.observe(n)),r.setProps(Object.assign({},t,{styleDiffing:!1})),o.resize();var s=t.initialViewState;return s&&(s.bounds?o.fitBounds(s.bounds,Object.assign({},s.fitBoundsOptions,{duration:0})):r._updateViewState(s,!1)),o.isStyleLoaded()?o.fire("load"):o.once("styledata",(function(){return o.fire("load")})),o._update(),r},t._initialize=function(e){var t=this,n=this.props,r=n.mapStyle,o=void 0===r?m:r,a=Object.assign({},n,n.initialViewState,{accessToken:n.mapboxAccessToken||b()||null,container:e,style:d(o)}),i=a.initialViewState||a.viewState||a;if(Object.assign(a,{center:[i.longitude||0,i.latitude||0],zoom:i.zoom||0,pitch:i.pitch||0,bearing:i.bearing||0}),n.gl){var u=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=function(){return HTMLCanvasElement.prototype.getContext=u,n.gl}}var l=new this._MapClass(a);i.padding&&l.setPadding(i.padding),n.cursor&&(l.getCanvas().style.cursor=n.cursor),this._createShadowTransform(l);var c=l._render;l._render=function(e){t._inRender=!0,c.call(l,e),t._inRender=!1};var p=l._renderTaskQueue.run;l._renderTaskQueue.run=function(e){p.call(l._renderTaskQueue,e),t._onBeforeRepaint()},l.on("render",(function(){return t._onAfterRepaint()}));var h=l.fire;for(var y in l.fire=this._fireEvent.bind(this,h),l.on("resize",(function(){t._renderTransform.resize(l.transform.width,l.transform.height)})),l.on("styledata",(function(){t._updateStyleComponents(t.props,{}),s(l.transform,t._renderTransform)})),l.on("sourcedata",(function(){return t._updateStyleComponents(t.props,{})})),f)l.on(y,this._onPointerEvent);for(var _ in g)l.on(_,this._onCameraEvent);for(var w in v)l.on(w,this._onEvent);this._map=l},t.recycle=function(){var t=this.map.getContainer().querySelector("[mapboxgl-children]");null==t||t.remove(),e.savedMaps.push(this)},t.destroy=function(){this._map.remove()},t.redraw=function(){var e=this._map;!this._inRender&&e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())},t._createShadowTransform=function(e){var t,n,r=(t=e.transform,(n=t.clone()).pixelsToGLUnits=t.pixelsToGLUnits,n);e.painter.transform=r,this._renderTransform=r},t._updateSize=function(e){var t=e.viewState;if(t){var n=this._map;if(t.width!==n.transform.width||t.height!==n.transform.height)return n.resize(),!0}return!1},t._updateViewState=function(e,t){if(this._internalUpdate)return!1;var n=this._map,r=this._renderTransform,o=r.zoom,a=r.pitch,i=r.bearing,s=n.isMoving();s&&(r.cameraElevationReference="sea");var c=l(r,Object.assign({},u(n.transform),e));if(s&&(r.cameraElevationReference="ground"),c&&t){var p=this._deferredEvents;p.move=!0,p.zoom||(p.zoom=o!==r.zoom),p.rotate||(p.rotate=i!==r.bearing),p.pitch||(p.pitch=a!==r.pitch)}return s||l(n.transform,e),c},t._updateSettings=function(e,t){for(var n=this._map,r=!1,o=0,a=h;o0,a=this._queryRenderedFeatures(e.point),i=a.length>0;!i&&o&&(e.type="mouseleave",this._onPointerEvent(e)),this._hoveredFeatures=a,i&&!o&&(e.type="mouseenter",this._onPointerEvent(e)),e.type=r}else this._hoveredFeatures=null},t._fireEvent=function(e,t,n){var r=this._map,o=r.transform,a="string"==typeof t?t:t.type;return"move"===a&&this._updateViewState(this.props,!1),a in g&&("object"==typeof t&&(t.viewState=u(o)),this._map.isMoving())?(r.transform=this._renderTransform,e.call(r,t,n),r.transform=o,r):(e.call(r,t,n),r)},t._onBeforeRepaint=function(){var e=this,t=this._map;for(var n in this._internalUpdate=!0,this._deferredEvents)this._deferredEvents[n]&&t.fire(n);this._internalUpdate=!1;var r=this._map.transform;t.transform=this._renderTransform,this._onAfterRepaint=function(){s(e._renderTransform,r),t.transform=r}},(0,a.Z)(e,[{key:"map",get:function(){return this._map}},{key:"transform",get:function(){return this._renderTransform}}]),e}();function b(){var e=null;if("undefined"!=typeof location){var t=/access_token=([^&\/]*)/.exec(location.search);e=t&&t[1]}try{e=e||"pk.eyJ1IjoidWNmLW1hcGJveCIsImEiOiJja2tyNHQzdnIzYmNnMndwZGI3djNzdjVyIn0.xgCXV9mLZ47q7easx6WLCQ"}catch(n){}try{e=e||process.env.REACT_APP_MAPBOX_ACCESS_TOKEN}catch(r){}return e}_.savedMaps=[];var w=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function x(e){if(!e)return null;for(var t,n=e.map,r={getMap:function(){return n},getCenter:function(){return e.transform.center},getZoom:function(){return e.transform.zoom},getBearing:function(){return e.transform.bearing},getPitch:function(){return e.transform.pitch},getPadding:function(){return e.transform.padding},getBounds:function(){return e.transform.getBounds()},project:function(t){var r=n.transform;n.transform=e.transform;var o=n.project(t);return n.transform=r,o},unproject:function(t){var r=n.transform;n.transform=e.transform;var o=n.unproject(t);return n.transform=r,o},queryTerrainElevation:function(t,r){var o=n.transform;n.transform=e.transform;var a=n.queryTerrainElevation(t,r);return n.transform=o,a},queryRenderedFeatures:function(t,r){var o=n.transform;n.transform=e.transform;var a=n.queryRenderedFeatures(t,r);return n.transform=o,a}},o=(0,c.Z)(function(e){var t=new Set,n=e;for(;n;){for(var r,o=(0,c.Z)(Object.getOwnPropertyNames(n));!(r=o()).done;){var a=r.value;"_"!==a[0]&&"function"==typeof e[a]&&"fire"!==a&&"setEventedParent"!==a&&t.add(a)}n=Object.getPrototypeOf(n)}return Array.from(t)}(n));!(t=o()).done;){var a=t.value;a in r||w.includes(a)||(r[a]=n[a].bind(n))}return r}const k="undefined"!=typeof document?r.useLayoutEffect:r.useEffect;var S=["baseApiUrl","maxParallelImageRequests","workerClass","workerCount","workerUrl"];var C=r.createContext(null);function E(e,t,n){var a=(0,r.useContext)(o),i=(0,r.useState)(null),s=i[0],u=i[1],l=(0,r.useRef)(),p=(0,r.useRef)({mapLib:null,map:null}).current;(0,r.useEffect)((function(){var t,r=e.mapLib,o=!0;return Promise.resolve(r||n).then((function(n){if(o){if(!n)throw new Error("Invalid mapLib");var r="Map"in n?n:n.default;if(!r.Map)throw new Error("Invalid mapLib");if(function(e,t){for(var n,r=(0,c.Z)(S);!(n=r()).done;){var o=n.value;o in t&&(e[o]=t[o])}var a=t.RTLTextPlugin,i=void 0===a?"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js":a;i&&e.getRTLTextPluginStatus&&"unavailable"===e.getRTLTextPluginStatus()&&e.setRTLTextPlugin(i,(function(e){e&&console.error(e)}),!0)}(r,e),r.supported&&!r.supported(e))throw new Error("Map is not supported by this browser");e.reuseMaps&&(t=_.reuse(e,l.current)),t||(t=new _(r.Map,e,l.current)),p.map=x(t),p.mapLib=r,u(t),null==a||a.onMapMount(p.map,e.id)}})).catch((function(t){var n=e.onError;n?n({type:"error",target:null,originalEvent:null,error:t}):console.error(t)})),function(){o=!1,t&&(null==a||a.onMapUnmount(e.id),e.reuseMaps?t.recycle():t.destroy())}}),[]),k((function(){s&&s.setProps(e)})),(0,r.useImperativeHandle)(t,(function(){return p.map}),[s]);var d=(0,r.useMemo)((function(){return Object.assign({position:"relative",width:"100%",height:"100%"},e.style)}),[e.style]);return r.createElement("div",{id:e.id,ref:l,style:d},s&&r.createElement(C.Provider,{value:p},r.createElement("div",{"mapboxgl-children":"",style:{height:"100%"}},e.children)))}var P=n(3935),j=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function L(e,t){if(e&&t){var n=e.style;for(var r in t){var o=t[r];Number.isFinite(o)&&!j.test(r)?n[r]=o+"px":n[r]=o}}}function T(e,t){var n=(0,r.useContext)(C),o=n.map,a=n.mapLib,i=(0,r.useRef)({props:e});i.current.props=e;var s=(0,r.useMemo)((function(){var t=!1;r.Children.forEach(e.children,(function(e){e&&(t=!0)}));var n=Object.assign({},e,{element:t?document.createElement("div"):null}),o=new a.Marker(n);return o.setLngLat([e.longitude,e.latitude]),o.getElement().addEventListener("click",(function(e){null==i.current.props.onClick||i.current.props.onClick({type:"click",target:o,originalEvent:e})})),o.on("dragstart",(function(e){var t=e;t.lngLat=s.getLngLat(),null==i.current.props.onDragStart||i.current.props.onDragStart(t)})),o.on("drag",(function(e){var t=e;t.lngLat=s.getLngLat(),null==i.current.props.onDrag||i.current.props.onDrag(t)})),o.on("dragend",(function(e){var t=e;t.lngLat=s.getLngLat(),null==i.current.props.onDragEnd||i.current.props.onDragEnd(t)})),o}),[]);(0,r.useEffect)((function(){return s.addTo(o.getMap()),function(){s.remove()}}),[]);var u,l,c,p,d,m,f=e.longitude,g=e.latitude,v=e.offset,h=e.style,y=e.draggable,_=void 0!==y&&y,b=e.popup,w=void 0===b?null:b,x=e.rotation,k=void 0===x?0:x,S=e.rotationAlignment,E=void 0===S?"auto":S,j=e.pitchAlignment,T=void 0===j?"auto":j;return(0,r.useEffect)((function(){L(s.getElement(),h)}),[h]),(0,r.useImperativeHandle)(t,(function(){return s}),[]),s.getLngLat().lng===f&&s.getLngLat().lat===g||s.setLngLat([f,g]),v&&(u=s.getOffset(),l=v,c=Array.isArray(u)?u[0]:u?u.x:0,p=Array.isArray(u)?u[1]:u?u.y:0,d=Array.isArray(l)?l[0]:l?l.x:0,m=Array.isArray(l)?l[1]:l?l.y:0,c!==d||p!==m)&&s.setOffset(v),s.isDraggable()!==_&&s.setDraggable(_),s.getRotation()!==k&&s.setRotation(k),s.getRotationAlignment()!==E&&s.setRotationAlignment(E),s.getPitchAlignment()!==T&&s.setPitchAlignment(T),s.getPopup()!==w&&s.setPopup(w),(0,P.createPortal)(e.children,s.getElement())}const O=(0,r.memo)((0,r.forwardRef)(T));function M(e){return new Set(e?e.trim().split(/\s+/):[])}function R(e,t){var n=(0,r.useContext)(C),o=n.map,a=n.mapLib,s=(0,r.useMemo)((function(){return document.createElement("div")}),[]),u=(0,r.useRef)({props:e});u.current.props=e;var l=(0,r.useMemo)((function(){var t=Object.assign({},e),n=new a.Popup(t);return n.setLngLat([e.longitude,e.latitude]),n.once("open",(function(e){null==u.current.props.onOpen||u.current.props.onOpen(e)})),n}),[]);if((0,r.useEffect)((function(){var e=function(e){null==u.current.props.onClose||u.current.props.onClose(e)};return l.on("close",e),l.setDOMContent(s).addTo(o.getMap()),function(){l.off("close",e),l.isOpen()&&l.remove()}}),[]),(0,r.useEffect)((function(){L(l.getElement(),e.style)}),[e.style]),(0,r.useImperativeHandle)(t,(function(){return l}),[]),l.isOpen()&&(l.getLngLat().lng===e.longitude&&l.getLngLat().lat===e.latitude||l.setLngLat([e.longitude,e.latitude]),e.offset&&!i(l.options.offset,e.offset)&&l.setOffset(e.offset),l.options.anchor===e.anchor&&l.options.maxWidth===e.maxWidth||(l.options.anchor=e.anchor,l.setMaxWidth(e.maxWidth)),l.options.className!==e.className)){for(var p,d=M(l.options.className),m=M(e.className),f=(0,c.Z)(d);!(p=f()).done;){var g=p.value;m.has(g)||l.removeClassName(g)}for(var v,h=(0,c.Z)(m);!(v=h()).done;){var y=v.value;d.has(y)||l.addClassName(y)}l.options.className=e.className}return(0,P.createPortal)(e.children,s)}const A=(0,r.memo)((0,r.forwardRef)(R));const D=function(e,t,n,o){var a=(0,r.useContext)(C),i=(0,r.useMemo)((function(){return e(a)}),[]);return(0,r.useEffect)((function(){var e=o||n||t,r="function"==typeof t&&"function"==typeof n?t:null,s="function"==typeof n?n:"function"==typeof t?t:null,u=a.map;return u.hasControl(i)||(u.addControl(i,null==e?void 0:e.position),r&&r(a)),function(){s&&s(a),u.hasControl(i)&&u.removeControl(i)}}),[]),i};function z(e){var t=D((function(t){return new t.mapLib.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)})}),{position:e.position});return(0,r.useEffect)((function(){L(t._controlContainer,e.style)}),[e.style]),null}const N=(0,r.memo)(z);function I(e,t){var n=(0,r.useRef)({props:e}),o=D((function(t){var r=new t.mapLib.GeolocateControl(e),o=r._setupUI;return r._setupUI=function(e){r._container.hasChildNodes()||o(e)},r.on("geolocate",(function(e){null==n.current.props.onGeolocate||n.current.props.onGeolocate(e)})),r.on("error",(function(e){null==n.current.props.onError||n.current.props.onError(e)})),r.on("outofmaxbounds",(function(e){null==n.current.props.onOutOfMaxBounds||n.current.props.onOutOfMaxBounds(e)})),r.on("trackuserlocationstart",(function(e){null==n.current.props.onTrackUserLocationStart||n.current.props.onTrackUserLocationStart(e)})),r.on("trackuserlocationend",(function(e){null==n.current.props.onTrackUserLocationEnd||n.current.props.onTrackUserLocationEnd(e)})),r}),{position:e.position});return n.current.props=e,(0,r.useImperativeHandle)(t,(function(){return o}),[]),(0,r.useEffect)((function(){L(o._container,e.style)}),[e.style]),null}const F=(0,r.memo)((0,r.forwardRef)(I));function Z(e){var t=D((function(t){return new t.mapLib.NavigationControl(e)}),{position:e.position});return(0,r.useEffect)((function(){L(t._container,e.style)}),[e.style]),null}const U=(0,r.memo)(Z);function W(e){var t=D((function(t){return new t.mapLib.ScaleControl(e)}),{position:e.position}),n=(0,r.useRef)(e),o=n.current;n.current=e;var a=e.style;return void 0!==e.maxWidth&&e.maxWidth!==o.maxWidth&&(t.options.maxWidth=e.maxWidth),void 0!==e.unit&&e.unit!==o.unit&&t.setUnit(e.unit),(0,r.useEffect)((function(){L(t._container,a)}),[a]),null}const J=(0,r.memo)(W);function G(e,t){if(!e)throw new Error(t)}var H=0;const B=function(e){var t=(0,r.useContext)(C).map.getMap(),n=(0,r.useRef)(e),o=(0,r.useState)(0)[1],a=(0,r.useMemo)((function(){return e.id||"jsx-layer-"+H++}),[]);if((0,r.useEffect)((function(){if(t){var e=function(){return o((function(e){return e+1}))};return t.on("styledata",e),e(),function(){t.off("styledata",e),t.style&&t.style._loaded&&t.getLayer(a)&&t.removeLayer(a)}}}),[t]),t&&t.style&&t.getLayer(a))try{!function(e,t,n,r){if(G(n.id===r.id,"layer id changed"),G(n.type===r.type,"layer type changed"),"custom"!==n.type&&"custom"!==r.type){var o=n.layout,a=void 0===o?{}:o,s=n.paint,u=void 0===s?{}:s,l=n.filter,c=n.minzoom,p=n.maxzoom,d=n.beforeId;if(d!==r.beforeId&&e.moveLayer(t,d),a!==r.layout){var m=r.layout||{};for(var f in a)i(a[f],m[f])||e.setLayoutProperty(t,f,a[f]);for(var g in m)a.hasOwnProperty(g)||e.setLayoutProperty(t,g,void 0)}if(u!==r.paint){var v=r.paint||{};for(var h in u)i(u[h],v[h])||e.setPaintProperty(t,h,u[h]);for(var y in v)u.hasOwnProperty(y)||e.setPaintProperty(t,y,void 0)}i(l,r.filter)||e.setFilter(t,l),c===r.minzoom&&p===r.maxzoom||e.setLayerZoomRange(t,c,p)}}(t,a,e,n.current)}catch(s){console.warn(s)}else!function(e,t,n){if(e.style&&e.style._loaded&&(!("source"in n)||e.getSource(n.source))){var r=Object.assign({},n,{id:t});delete r.beforeId,e.addLayer(r,n.beforeId)}}(t,a,e);return n.current=e,null};var V=0;const q=function(e){var t=(0,r.useContext)(C).map.getMap(),n=(0,r.useRef)(e),o=(0,r.useState)(0)[1],a=(0,r.useMemo)((function(){return e.id||"jsx-source-"+V++}),[]);(0,r.useEffect)((function(){if(t){var e=function(){return setTimeout((function(){return o((function(e){return e+1}))}),0)};return t.on("styledata",e),e(),function(){if(t.off("styledata",e),t.style&&t.style._loaded&&t.getSource(a)){var n,r=null==(n=t.getStyle())?void 0:n.layers;if(r)for(var o,i=(0,c.Z)(r);!(o=i()).done;){var s=o.value;s.source===a&&t.removeLayer(s.id)}t.removeSource(a)}}}}),[t]);var s=t&&t.style&&t.getSource(a);return s?function(e,t,n){G(t.id===n.id,"source id changed"),G(t.type===n.type,"source type changed");var r="",o=0;for(var a in t)"children"===a||"id"===a||i(n[a],t[a])||(r=a,o++);if(o){var s=t.type;if("geojson"===s)e.setData(t.data);else if("image"===s)e.updateImage({url:t.url,coordinates:t.coordinates});else if("setCoordinates"in e&&1===o&&"coordinates"===r)e.setCoordinates(t.coordinates);else if("setUrl"in e)switch(r){case"url":e.setUrl(t.url);break;case"tiles":e.setTiles(t.tiles)}else console.warn("Unable to update prop: "+r)}}(s,e,n.current):s=function(e,t,n){if(e.style&&e.style._loaded){var r=Object.assign({},n);return delete r.id,delete r.children,e.addSource(t,r),e.getSource(t)}return null}(t,a,e),n.current=e,s&&r.Children.map(e.children,(function(e){return e&&(0,r.cloneElement)(e,{source:a})}))||null};var Q=n.e(8539).then(n.t.bind(n,8539,23)),X=r.forwardRef((function(e,t){return E(e,t,Q)})),Y=O,K=A,$=N,ee=U,te=F,ne=J,re=B,oe=q;const ae=X},745:(e,t,n)=>{var r=n(3935);r.createRoot,r.hydrateRoot},1202:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(1002);function o(e){var t=function(e,t){if("object"!==(0,r.Z)(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!==(0,r.Z)(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===(0,r.Z)(t)?t:String(t)}function a(e,t){for(var n=0;n{e.exports=JSON.parse('[{"city":"New York","population":"8,175,133","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/Above_Gotham.jpg/240px-Above_Gotham.jpg","state":"New York","latitude":40.6643,"longitude":-73.9385},{"city":"Los Angeles","population":"3,792,621","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/5/57/LA_Skyline_Mountains2.jpg/240px-LA_Skyline_Mountains2.jpg","state":"California","latitude":34.0194,"longitude":-118.4108},{"city":"Chicago","population":"2,695,598","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/8/85/2008-06-10_3000x1000_chicago_skyline.jpg/240px-2008-06-10_3000x1000_chicago_skyline.jpg","state":"Illinois","latitude":41.8376,"longitude":-87.6818},{"city":"Houston","population":"2,100,263","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/6/60/Aerial_views_of_the_Houston%2C_Texas%2C_28005u.jpg/240px-Aerial_views_of_the_Houston%2C_Texas%2C_28005u.jpg","state":"Texas","latitude":29.7805,"longitude":-95.3863},{"city":"Phoenix","population":"1,445,632","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/Downtown_Phoenix_Aerial_Looking_Northeast.jpg/207px-Downtown_Phoenix_Aerial_Looking_Northeast.jpg","state":"Arizona","latitude":33.5722,"longitude":-112.088},{"city":"Philadelphia","population":"1,526,006","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Philly_skyline.jpg/240px-Philly_skyline.jpg","state":"Pennsylvania","latitude":40.0094,"longitude":-75.1333},{"city":"San Antonio","population":"1,327,407","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Downtown_San_Antonio_View.JPG/240px-Downtown_San_Antonio_View.JPG","state":"Texas","latitude":29.4724,"longitude":-98.5251},{"city":"San Diego","population":"1,307,402","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/5/53/US_Navy_110604-N-NS602-574_Navy_and_Marine_Corps_personnel%2C_along_with_community_leaders_from_the_greater_San_Diego_area_come_together_to_commemora.jpg/240px-US_Navy_110604-N-NS602-574_Navy_and_Marine_Corps_personnel%2C_along_with_community_leaders_from_the_greater_San_Diego_area_come_together_to_commemora.jpg","state":"California","latitude":32.8153,"longitude":-117.135},{"city":"Dallas","population":"1,197,816","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/a/ab/Dallas_skyline_daytime.jpg/240px-Dallas_skyline_daytime.jpg","state":"Texas","latitude":32.7757,"longitude":-96.7967},{"city":"San Jose","population":"945,942","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/1/1e/Downtown_San_Jose_skyline.PNG/240px-Downtown_San_Jose_skyline.PNG","state":"California","latitude":37.2969,"longitude":-121.8193},{"city":"Austin","population":"790,390","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/9/97/Austin2012-12-01.JPG/240px-Austin2012-12-01.JPG","state":"Texas","latitude":30.3072,"longitude":-97.756},{"city":"Jacksonville","population":"821,784","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Skyline_of_Jacksonville_FL%2C_South_view_20160706_1.jpg/240px-Skyline_of_Jacksonville_FL%2C_South_view_20160706_1.jpg","state":"Florida","latitude":30.337,"longitude":-81.6613},{"city":"San Francisco","population":"805,235","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/San_Francisco_skyline_from_Coit_Tower.jpg/240px-San_Francisco_skyline_from_Coit_Tower.jpg","state":"California","latitude":37.7751,"longitude":-122.4193},{"city":"Columbus","population":"787,033","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Columbus-ohio-skyline-panorama.jpg/240px-Columbus-ohio-skyline-panorama.jpg","state":"Ohio","latitude":39.9848,"longitude":-82.985},{"city":"Indianapolis","population":"820,445","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/1/16/Downtown_indy_from_parking_garage_zoom.JPG/213px-Downtown_indy_from_parking_garage_zoom.JPG","state":"Indiana","latitude":39.7767,"longitude":-86.1459},{"city":"Fort Worth","population":"741,206","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/d/db/FortWorthTexasSkylineW.jpg/240px-FortWorthTexasSkylineW.jpg","state":"Texas","latitude":32.7795,"longitude":-97.3463},{"city":"Charlotte","population":"731,424","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/7/7d/Charlotte_skyline45647.jpg/222px-Charlotte_skyline45647.jpg","state":"North Carolina","latitude":35.2087,"longitude":-80.8307},{"city":"Seattle","population":"608,660","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/3/36/SeattleI5Skyline.jpg/240px-SeattleI5Skyline.jpg","state":"Washington","latitude":47.6205,"longitude":-122.3509},{"city":"Denver","population":"600,158","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/0/0b/DenverCP.JPG/240px-DenverCP.JPG","state":"Colorado","latitude":39.7618,"longitude":-104.8806},{"city":"El Paso","population":"649,121","image":"http://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Downtown_El_Paso_at_sunset.jpeg/240px-Downtown_El_Paso_at_sunset.jpeg","state":"Texas","latitude":31.8484,"longitude":-106.427}]')}}]); \ No newline at end of file diff --git a/assets/js/5e95c892.bd7deeae.js b/assets/js/5e95c892.bd7deeae.js new file mode 100644 index 00000000..24552bf7 --- /dev/null +++ b/assets/js/5e95c892.bd7deeae.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[9647],{7121:(e,s,r)=>{r.r(s),r.d(s,{default:()=>i});r(6540);var t=r(4164),c=r(1003),u=r(7559),a=r(2831),n=r(4207),p=r(4848);function i(e){return(0,p.jsx)(c.e3,{className:(0,t.A)(u.G.wrapper.docsPages),children:(0,p.jsx)(n.A,{children:(0,a.v)(e.route.routes)})})}}}]); \ No newline at end of file diff --git a/assets/js/5f869270.00dfb5ad.js b/assets/js/5f869270.00dfb5ad.js new file mode 100644 index 00000000..65042503 --- /dev/null +++ b/assets/js/5f869270.00dfb5ad.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[6092],{8384:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>c,default:()=>l,frontMatter:()=>i,metadata:()=>n,toc:()=>s});const n=JSON.parse('{"id":"api-reference/maplibre/map-provider","title":"MapProvider","description":"A Context.Provider that facilitates map operations outside of the component that directly renders a Map.","source":"@site/../docs/api-reference/maplibre/map-provider.md","sourceDirName":"api-reference/maplibre","slug":"/api-reference/maplibre/map-provider","permalink":"/react-map-gl/docs/api-reference/maplibre/map-provider","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/maplibre/map-provider.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"LogoControl","permalink":"/react-map-gl/docs/api-reference/maplibre/logo-control"},"next":{"title":"Marker","permalink":"/react-map-gl/docs/api-reference/maplibre/marker"}}');var a=t(4848),o=t(8453);const i={},c="MapProvider",p={},s=[{value:"Source",id:"source",level:2}];function d(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",...(0,o.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.header,{children:(0,a.jsx)(r.h1,{id:"mapprovider",children:"MapProvider"})}),"\n",(0,a.jsxs)(r.p,{children:["A ",(0,a.jsx)(r.a,{href:"https://reactjs.org/docs/context.html#contextprovider",children:"Context.Provider"})," that facilitates map operations outside of the component that directly renders a ",(0,a.jsx)(r.a,{href:"/react-map-gl/docs/api-reference/maplibre/map",children:"Map"}),"."]}),"\n",(0,a.jsx)(r.p,{children:"The component should wrap all nodes in which you may want to access the maps:"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-tsx",children:"import {MapProvider} from 'react-map-gl/maplibre';\n\nfunction Root() {\n return (\n \n {\n // Application tree, somewhere one or more component(s) are rendered\n }\n \n );\n}\n"})}),"\n",(0,a.jsxs)(r.p,{children:["See ",(0,a.jsx)(r.a,{href:"/react-map-gl/docs/api-reference/maplibre/use-map",children:"useMap"})," for more information."]}),"\n",(0,a.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,a.jsx)(r.p,{children:(0,a.jsx)(r.a,{href:"https://github.com/visgl/react-map-gl/tree/master/modules/maplibre/src/components/use-map.tsx",children:"use-map.tsx"})})]})}function l(e={}){const{wrapper:r}={...(0,o.R)(),...e.components};return r?(0,a.jsx)(r,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},8453:(e,r,t)=>{t.d(r,{R:()=>i,x:()=>c});var n=t(6540);const a={},o=n.createContext(a);function i(e){const r=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),n.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6065.41048af6.js b/assets/js/6065.41048af6.js new file mode 100644 index 00000000..d0b3696b --- /dev/null +++ b/assets/js/6065.41048af6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[6065],{6065:(e,t,r)=>{r.d(t,{Ay:()=>je});var n=r(4363),i=r(6540),a=r(2833),s=r.n(a);const o=function(e){function t(e,n,c,l,h){for(var f,p,g,m,k,w=0,C=0,A=0,x=0,I=0,_=0,z=g=f=0,D=0,L=0,M=0,B=0,F=c.length,$=F-1,G="",H="",W="",Y="";Df)&&(B=(G=G.replace(" ",":")).length),0n&&(n=(t=t.trim()).charCodeAt(0)),n){case 38:return t.replace(m,"$1"+e.trim());case 58:return e.trim()+t.replace(m,"$1"+e.trim());default:if(0<1*r&&0c.charCodeAt(8))break;case 115:s=s.replace(c,"-webkit-"+c)+";"+s;break;case 207:case 102:s=s.replace(c,"-webkit-"+(102n.charCodeAt(0)&&(n=n.trim()),n=[n],01?t-1:0),n=1;n0?" Args: "+r.join(", "):""))}var I=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}var t=e.prototype;return t.indexOfGroup=function(e){for(var t=0,r=0;r=this.groupSizes.length){for(var r=this.groupSizes,n=r.length,i=n;e>=i;)(i<<=1)<0&&x(16,""+e);this.groupSizes=new Uint32Array(i),this.groupSizes.set(r),this.length=i;for(var a=n;a=this.length||0===this.groupSizes[e])return t;for(var r=this.groupSizes[e],n=this.indexOfGroup(e),i=n+r,a=n;a=E&&(E=t+1),P.set(e,t),R.set(t,e)},j="style["+w+'][data-styled-version="5.3.11"]',z=new RegExp("^"+w+'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'),N=function(e,t,r){for(var n,i=r.split(","),a=0,s=i.length;a=0;r--){var n=t[r];if(n&&1===n.nodeType&&n.hasAttribute(w))return n}}(r),a=void 0!==i?i.nextSibling:null;n.setAttribute(w,"active"),n.setAttribute("data-styled-version","5.3.11");var s=L();return s&&n.setAttribute("nonce",s),r.insertBefore(n,a),n},B=function(){function e(e){var t=this.element=M(e);t.appendChild(document.createTextNode("")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,r=0,n=t.length;r=0){var r=document.createTextNode(t),n=this.nodes[e];return this.element.insertBefore(r,n||null),this.length++,!0}return!1},t.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},t.getRule=function(e){return e0&&(l+=e+",")})),n+=""+o+c+'{content:"'+l+'"}/*!sc*/\n'}}}return n}(this)},e}(),Y=/(a)(d)/gi,U=function(e){return String.fromCharCode(e+(e>25?39:97))};function q(e){var t,r="";for(t=Math.abs(e);t>52;t=t/52|0)r=U(t%52)+r;return(U(t%52)+r).replace(Y,"$1-$2")}var V=function(e,t){for(var r=t.length;r;)e=33*e^t.charCodeAt(--r);return e},X=function(e){return V(5381,e)};function Z(e){for(var t=0;t>>0);if(!t.hasNameForId(n,s)){var o=r(a,"."+s,void 0,n);t.insertRules(n,s,o)}i.push(s),this.staticRulesId=s}else{for(var c=this.rules.length,l=V(this.baseHash,r.hash),u="",d=0;d>>0);if(!t.hasNameForId(n,g)){var m=r(u,"."+g,void 0,n);t.insertRules(n,g,m)}i.push(g)}}return i.join(" ")},e}(),Q=/^\s*\/\/.*$/gm,ee=[":","[",".","#"];function te(e){var t,r,n,i,a=void 0===e?y:e,s=a.options,c=void 0===s?y:s,l=a.plugins,u=void 0===l?v:l,d=new o(c),h=[],f=function(e){function t(t){if(t)try{e(t+"}")}catch(e){}}return function(r,n,i,a,s,o,c,l,u,d){switch(r){case 1:if(0===u&&64===n.charCodeAt(0))return e(n+";"),"";break;case 2:if(0===l)return n+"/*|*/";break;case 3:switch(l){case 102:case 112:return e(i[0]+n),"";default:return n+(0===d?"/*|*/":"")}case-2:n.split("/*|*/}").forEach(t)}}}((function(e){h.push(e)})),p=function(e,n,a){return 0===n&&-1!==ee.indexOf(a[r.length])||a.match(i)?e:"."+t};function g(e,a,s,o){void 0===o&&(o="&");var c=e.replace(Q,""),l=a&&s?s+" "+a+" { "+c+" }":c;return t=o,r=a,n=new RegExp("\\"+r+"\\b","g"),i=new RegExp("(\\"+r+"\\b){2,}"),d(s||!a?"":a,l)}return d.use([].concat(u,[function(e,t,i){2===e&&i.length&&i[0].lastIndexOf(r)>0&&(i[0]=i[0].replace(n,p))},f,function(e){if(-2===e){var t=h;return h=[],t}}])),g.hash=u.length?u.reduce((function(e,t){return t.name||x(15),V(e,t.name)}),5381).toString():"",g}var re=i.createContext(),ne=(re.Consumer,i.createContext()),ie=(ne.Consumer,new W),ae=te();function se(){return(0,i.useContext)(re)||ie}function oe(){return(0,i.useContext)(ne)||ae}function ce(e){var t=(0,i.useState)(e.stylisPlugins),r=t[0],n=t[1],a=se(),o=(0,i.useMemo)((function(){var t=a;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t}),[e.disableCSSOMInjection,e.sheet,e.target]),c=(0,i.useMemo)((function(){return te({options:{prefix:!e.disableVendorPrefixes},plugins:r})}),[e.disableVendorPrefixes,r]);return(0,i.useEffect)((function(){s()(r,e.stylisPlugins)||n(e.stylisPlugins)}),[e.stylisPlugins]),i.createElement(re.Provider,{value:o},i.createElement(ne.Provider,{value:c},e.children))}var le=function(){function e(e,t){var r=this;this.inject=function(e,t){void 0===t&&(t=ae);var n=r.name+t.hash;e.hasNameForId(r.id,n)||e.insertRules(r.id,n,t(r.rules,n,"@keyframes"))},this.toString=function(){return x(12,String(r.name))},this.name=e,this.id="sc-keyframes-"+e,this.rules=t}return e.prototype.getName=function(e){return void 0===e&&(e=ae),this.name+e.hash},e}(),ue=/([A-Z])/,de=/([A-Z])/g,he=/^ms-/,fe=function(e){return"-"+e.toLowerCase()};function pe(e){return ue.test(e)?e.replace(de,fe).replace(he,"-ms-"):e}var ge=function(e){return null==e||!1===e||""===e};function me(e,t,r,n){if(Array.isArray(e)){for(var i,a=[],s=0,o=e.length;s1?t-1:0),n=1;n?@[\\\]^`{|}~-]+/g,Se=/(^-|-$)/g;function we(e){return e.replace(ke,"-").replace(Se,"")}var Ce=function(e){return q(X(e)>>>0)};function Ae(e){return"string"==typeof e&&!0}var xe=function(e){return"function"==typeof e||"object"==typeof e&&null!==e&&!Array.isArray(e)},Ie=function(e){return"__proto__"!==e&&"constructor"!==e&&"prototype"!==e};function Pe(e,t,r){var n=e[r];xe(t)&&xe(n)?Re(n,t):e[r]=t}function Re(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n=0||(i[r]=e[r]);return i}(t,["componentId"]),a=n&&n+"-"+(Ae(e)?e:we(k(e)));return Te(e,p({},i,{attrs:m,componentId:a}),r)},Object.defineProperty(C,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=n?Re({},e.defaultProps,t):t}}),Object.defineProperty(C,"toString",{value:function(){return"."+C.styledComponentId}}),a&&f()(C,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),C}var _e=function(e){return function e(t,r,i){if(void 0===i&&(i=y),!(0,n.isValidElementType)(r))return x(1,String(r));var a=function(){return t(r,i,ye.apply(void 0,arguments))};return a.withConfig=function(n){return e(t,r,p({},i,{},n))},a.attrs=function(n){return e(t,r,p({},i,{attrs:Array.prototype.concat(i.attrs,n).filter(Boolean)}))},a}(Te,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach((function(e){_e[e]=_e(e)}));!function(){function e(e,t){this.rules=e,this.componentId=t,this.isStatic=Z(e),W.registerId(this.componentId+1)}var t=e.prototype;t.createStyles=function(e,t,r,n){var i=n(me(this.rules,t,r,n).join(""),""),a=this.componentId+e;r.insertRules(a,a,i)},t.removeStyles=function(e,t){t.clearRules(this.componentId+e)},t.renderStyles=function(e,t,r,n){e>2&&W.registerId(this.componentId+e),this.removeStyles(e,r),this.createStyles(e,t,r,n)}}();!function(){function e(){var e=this;this._emitSheetCSS=function(){var t=e.instance.toString();if(!t)return"";var r=L();return""},this.getStyleTags=function(){return e.sealed?x(2):e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)return x(2);var r=((t={})[w]="",t["data-styled-version"]="5.3.11",t.dangerouslySetInnerHTML={__html:e.instance.toString()},t),n=L();return n&&(r.nonce=n),[i.createElement("style",p({},r,{key:"sc-0-0"}))]},this.seal=function(){e.sealed=!0},this.instance=new W({isServer:!0}),this.sealed=!1}var t=e.prototype;t.collectStyles=function(e){return this.sealed?x(2):i.createElement(ce,{sheet:this.instance},e)},t.interleaveWithNodeStream=function(e){return x(3)}}();const je=_e}}]); \ No newline at end of file diff --git a/assets/js/606cb955.fb5ccac8.js b/assets/js/606cb955.fb5ccac8.js new file mode 100644 index 00000000..4289eebf --- /dev/null +++ b/assets/js/606cb955.fb5ccac8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[4057],{5583:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>v,contentTitle:()=>y,default:()=>b,frontMatter:()=>h,metadata:()=>n,toc:()=>_});const n=JSON.parse('{"id":"mapbox/geocoder","title":"Geocoder","description":"","source":"@site/src/examples/mapbox/geocoder.mdx","sourceDirName":"mapbox","slug":"/mapbox/geocoder","permalink":"/react-map-gl/examples/mapbox/geocoder","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"Highlight By Filter","permalink":"/react-map-gl/examples/mapbox/filter"},"next":{"title":"GeoJSON Animation","permalink":"/react-map-gl/examples/mapbox/geojson-animation"}}');var r=o(4848),s=o(8453),i=o(6540),a=(o(5338),o(2198)),c=o(5915),l=o.n(c);function u(e){const[t,o]=(0,i.useState)(null),n=(0,a.VI)((()=>{const t=new(l())(Object.assign({},e,{marker:!1,accessToken:e.mapboxAccessToken}));return t.on("loading",e.onLoading),t.on("results",e.onResults),t.on("result",(t=>{var n;e.onResult(t);const{result:s}=t,i=s&&(s.center||"Point"===(null==(n=s.geometry)?void 0:n.type)&&s.geometry.coordinates);if(i&&e.marker){const t="object"==typeof e.marker?e.marker:{};o((0,r.jsx)(a.pH,Object.assign({},t,{longitude:i[0],latitude:i[1]})))}else o(null)})),t.on("error",e.onError),t}),{position:e.position});return n._map&&(n.getProximity()!==e.proximity&&void 0!==e.proximity&&n.setProximity(e.proximity),n.getRenderFunction()!==e.render&&void 0!==e.render&&n.setRenderFunction(e.render),n.getLanguage()!==e.language&&void 0!==e.language&&n.setLanguage(e.language),n.getZoom()!==e.zoom&&void 0!==e.zoom&&n.setZoom(e.zoom),n.getFlyTo()!==e.flyTo&&void 0!==e.flyTo&&n.setFlyTo(e.flyTo),n.getPlaceholder()!==e.placeholder&&void 0!==e.placeholder&&n.setPlaceholder(e.placeholder),n.getCountries()!==e.countries&&void 0!==e.countries&&n.setCountries(e.countries),n.getTypes()!==e.types&&void 0!==e.types&&n.setTypes(e.types),n.getMinLength()!==e.minLength&&void 0!==e.minLength&&n.setMinLength(e.minLength),n.getLimit()!==e.limit&&void 0!==e.limit&&n.setLimit(e.limit),n.getFilter()!==e.filter&&void 0!==e.filter&&n.setFilter(e.filter),n.getOrigin()!==e.origin&&void 0!==e.origin&&n.setOrigin(e.origin)),t}const d=()=>{};function p(){return(0,r.jsxs)("div",{className:"control-panel",children:[(0,r.jsx)("h3",{children:"Geocoder"}),(0,r.jsx)("div",{className:"source-link",children:(0,r.jsx)("a",{href:"https://github.com/visgl/react-map-gl/tree/7.0-release/examples/geocoder",target:"_new",children:"View Code \u2197"})})]})}u.defaultProps={marker:!0,onLoading:d,onResults:d,onResult:d,onError:d};const m=i.memo(p),f="pk.eyJ1IjoidWNmLW1hcGJveCIsImEiOiJja2tyNHQzdnIzYmNnMndwZGI3djNzdjVyIn0.xgCXV9mLZ47q7easx6WLCQ";function g(){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.Ay,{initialViewState:{longitude:-79.4512,latitude:43.6568,zoom:13},mapStyle:"mapbox://styles/mapbox/streets-v9",mapboxAccessToken:f,children:(0,r.jsx)(u,{mapboxAccessToken:f,position:"top-left"})}),(0,r.jsx)(m,{})]})}const h={},y="Geocoder",v={},_=[];function x(e){const t={h1:"h1",header:"header",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"geocoder",children:"Geocoder"})}),"\n","\n",(0,r.jsx)(g,{})]})}function b(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(x,{...e})}):x(e)}},2198:(e,t,o)=>{o.d(t,{T3:()=>I,tG:()=>F,Wd:()=>V,T5:()=>j,pH:()=>P,ov:()=>Z,zD:()=>z,g0:()=>U,kL:()=>H,Ay:()=>j,VI:()=>k});var n=o(6540),r=o(4848);const s=n.createContext(null);function i(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let o=0;o{let o=null;"interactive"in e&&(o=Object.assign({},e),delete o.interactive);const n=t[e.ref];if(n){o=o||Object.assign({},e),delete o.ref;for(const e of u)e in n&&(o[e]=n[e])}return o||e}));return Object.assign({},e,{layers:o})}const p={version:8,sources:{},layers:[]},m={mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",click:"onClick",dblclick:"onDblClick",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",mouseout:"onMouseOut",contextmenu:"onContextMenu",touchstart:"onTouchStart",touchend:"onTouchEnd",touchmove:"onTouchMove",touchcancel:"onTouchCancel"},f={movestart:"onMoveStart",move:"onMove",moveend:"onMoveEnd",dragstart:"onDragStart",drag:"onDrag",dragend:"onDragEnd",zoomstart:"onZoomStart",zoom:"onZoom",zoomend:"onZoomEnd",rotatestart:"onRotateStart",rotate:"onRotate",rotateend:"onRotateEnd",pitchstart:"onPitchStart",pitch:"onPitch",pitchend:"onPitchEnd"},g={wheel:"onWheel",boxzoomstart:"onBoxZoomStart",boxzoomend:"onBoxZoomEnd",boxzoomcancel:"onBoxZoomCancel",resize:"onResize",load:"onLoad",render:"onRender",idle:"onIdle",remove:"onRemove",data:"onData",styledata:"onStyleData",sourcedata:"onSourceData",error:"onError"},h=["minZoom","maxZoom","minPitch","maxPitch","maxBounds","projection","renderWorldCopies"],y=["scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate","touchPitch"];class v{constructor(e,t,o){this._map=null,this._internalUpdate=!1,this._inRender=!1,this._hoveredFeatures=null,this._deferredEvents={move:!1,zoom:!1,pitch:!1,rotate:!1},this._onEvent=e=>{const t=this.props[g[e.type]];t?t(e):"error"===e.type&&console.error(e.error)},this._onPointerEvent=e=>{"mousemove"!==e.type&&"mouseout"!==e.type||this._updateHover(e);const t=this.props[m[e.type]];t&&(this.props.interactiveLayerIds&&"mouseover"!==e.type&&"mouseout"!==e.type&&(e.features=this._hoveredFeatures||this._queryRenderedFeatures(e.point)),t(e),delete e.features)},this._onCameraEvent=e=>{if(!this._internalUpdate){const t=this.props[f[e.type]];t&&t(e)}e.type in this._deferredEvents&&(this._deferredEvents[e.type]=!1)},this._MapClass=e,this.props=t,this._initialize(o)}get map(){return this._map}get transform(){return this._renderTransform}setProps(e){const t=this.props;this.props=e;const o=this._updateSettings(e,t);o&&this._createShadowTransform(this._map);const n=this._updateSize(e),r=this._updateViewState(e,!0);this._updateStyle(e,t),this._updateStyleComponents(e,t),this._updateHandlers(e,t),(o||n||r&&!this._map.isMoving())&&this.redraw()}static reuse(e,t){const o=v.savedMaps.pop();if(!o)return null;const n=o.map,r=n.getContainer();for(t.className=r.className;r.childNodes.length>0;)t.appendChild(r.childNodes[0]);n._container=t,o.setProps(Object.assign({},e,{styleDiffing:!1})),n.resize();const{initialViewState:s}=e;return s&&(s.bounds?n.fitBounds(s.bounds,Object.assign({},s.fitBoundsOptions,{duration:0})):o._updateViewState(s,!1)),n.isStyleLoaded()?n.fire("load"):n.once("styledata",(()=>n.fire("load"))),n._update(),o}_initialize(e){const{props:t}=this,{mapStyle:o=p}=t,n=Object.assign({},t,t.initialViewState,{accessToken:t.mapboxAccessToken||_()||null,container:e,style:d(o)}),r=n.initialViewState||n.viewState||n;if(Object.assign(n,{center:[r.longitude||0,r.latitude||0],zoom:r.zoom||0,pitch:r.pitch||0,bearing:r.bearing||0}),t.gl){const e=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=e,t.gl)}const s=new this._MapClass(n);r.padding&&s.setPadding(r.padding),t.cursor&&(s.getCanvas().style.cursor=t.cursor),this._createShadowTransform(s);const i=s._render;s._render=e=>{this._inRender=!0,i.call(s,e),this._inRender=!1};const c=s._renderTaskQueue.run;s._renderTaskQueue.run=e=>{c.call(s._renderTaskQueue,e),this._onBeforeRepaint()},s.on("render",(()=>this._onAfterRepaint()));const l=s.fire;s.fire=this._fireEvent.bind(this,l),s.on("resize",(()=>{this._renderTransform.resize(s.transform.width,s.transform.height)})),s.on("styledata",(()=>{this._updateStyleComponents(this.props,{}),a(s.transform,this._renderTransform)})),s.on("sourcedata",(()=>this._updateStyleComponents(this.props,{})));for(const a in m)s.on(a,this._onPointerEvent);for(const a in f)s.on(a,this._onCameraEvent);for(const a in g)s.on(a,this._onEvent);this._map=s}recycle(){const e=this.map.getContainer().querySelector("[mapboxgl-children]");null==e||e.remove(),v.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){const e=this._map;!this._inRender&&e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())}_createShadowTransform(e){const t=function(e){const t=e.clone();return t.pixelsToGLUnits=e.pixelsToGLUnits,t}(e.transform);e.painter.transform=t,this._renderTransform=t}_updateSize(e){const{viewState:t}=e;if(t){const e=this._map;if(t.width!==e.transform.width||t.height!==e.transform.height)return e.resize(),!0}return!1}_updateViewState(e,t){if(this._internalUpdate)return!1;const o=this._map,n=this._renderTransform,{zoom:r,pitch:s,bearing:i}=n,a=o.isMoving();a&&(n.cameraElevationReference="sea");const u=l(n,Object.assign({},c(o.transform),e));if(a&&(n.cameraElevationReference="ground"),u&&t){const e=this._deferredEvents;e.move=!0,e.zoom||(e.zoom=r!==n.zoom),e.rotate||(e.rotate=i!==n.bearing),e.pitch||(e.pitch=s!==n.pitch)}return a||l(o.transform,e),u}_updateSettings(e,t){const o=this._map;let n=!1;for(const r of h)if(r in e&&!i(e[r],t[r])){n=!0;const t=o["set"+r[0].toUpperCase()+r.slice(1)];null==t||t.call(o,e[r])}return n}_updateStyle(e,t){if(e.cursor!==t.cursor&&(this._map.getCanvas().style.cursor=e.cursor||""),e.mapStyle!==t.mapStyle){const{mapStyle:t=p,styleDiffing:o=!0}=e,n={diff:o};return"localIdeographFontFamily"in e&&(n.localIdeographFontFamily=e.localIdeographFontFamily),this._map.setStyle(d(t),n),!0}return!1}_updateStyleComponents(e,t){const o=this._map;let n=!1;return o.isStyleLoaded()&&("light"in e&&o.setLight&&!i(e.light,t.light)&&(n=!0,o.setLight(e.light)),"fog"in e&&o.setFog&&!i(e.fog,t.fog)&&(n=!0,o.setFog(e.fog)),"terrain"in e&&o.setTerrain&&!i(e.terrain,t.terrain)&&(e.terrain&&!o.getSource(e.terrain.source)||(n=!0,o.setTerrain(e.terrain)))),n}_updateHandlers(e,t){const o=this._map;let n=!1;for(const a of y){var r,s;const c=null==(r=e[a])||r;i(c,null==(s=t[a])||s)||(n=!0,c?o[a].enable(c):o[a].disable())}return n}_queryRenderedFeatures(e){const t=this._map,o=t.transform,{interactiveLayerIds:n=[]}=this.props;try{return t.transform=this._renderTransform,t.queryRenderedFeatures(e,{layers:n.filter(t.getLayer.bind(t))})}catch(r){return[]}finally{t.transform=o}}_updateHover(e){const{props:t}=this;if(t.interactiveLayerIds&&(t.onMouseMove||t.onMouseEnter||t.onMouseLeave)){var o;const t=e.type,n=(null==(o=this._hoveredFeatures)?void 0:o.length)>0,r=this._queryRenderedFeatures(e.point),s=r.length>0;!s&&n&&(e.type="mouseleave",this._onPointerEvent(e)),this._hoveredFeatures=r,s&&!n&&(e.type="mouseenter",this._onPointerEvent(e)),e.type=t}else this._hoveredFeatures=null}_fireEvent(e,t,o){const n=this._map,r=n.transform,s="string"==typeof t?t:t.type;return"move"===s&&this._updateViewState(this.props,!1),s in f&&("object"==typeof t&&(t.viewState=c(r)),this._map.isMoving())?(n.transform=this._renderTransform,e.call(n,t,o),n.transform=r,n):(e.call(n,t,o),n)}_onBeforeRepaint(){const e=this._map;this._internalUpdate=!0;for(const o in this._deferredEvents)this._deferredEvents[o]&&e.fire(o);this._internalUpdate=!1;const t=this._map.transform;e.transform=this._renderTransform,this._onAfterRepaint=()=>{a(this._renderTransform,t),e.transform=t}}}function _(){let e=null;if("undefined"!=typeof location){const t=/access_token=([^&\/]*)/.exec(location.search);e=t&&t[1]}try{e=e||"pk.eyJ1IjoidWNmLW1hcGJveCIsImEiOiJja2tyNHQzdnIzYmNnMndwZGI3djNzdjVyIn0.xgCXV9mLZ47q7easx6WLCQ"}catch(t){}try{e=e||process.env.REACT_APP_MAPBOX_ACCESS_TOKEN}catch(o){}return e}v.savedMaps=[];const x=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function b(e){if(!e)return null;const t=e.map,o={getMap:()=>t,getCenter:()=>e.transform.center,getZoom:()=>e.transform.zoom,getBearing:()=>e.transform.bearing,getPitch:()=>e.transform.pitch,getPadding:()=>e.transform.padding,getBounds:()=>e.transform.getBounds(),project:o=>{const n=t.transform;t.transform=e.transform;const r=t.project(o);return t.transform=n,r},unproject:o=>{const n=t.transform;t.transform=e.transform;const r=t.unproject(o);return t.transform=n,r},queryTerrainElevation:(o,n)=>{const r=t.transform;t.transform=e.transform;const s=t.queryTerrainElevation(o,n);return t.transform=r,s},queryRenderedFeatures:(o,n)=>{const r=t.transform;t.transform=e.transform;const s=t.queryRenderedFeatures(o,n);return t.transform=r,s}};for(const n of function(e){const t=new Set;let o=e;for(;o;){for(const n of Object.getOwnPropertyNames(o))"_"!==n[0]&&"function"==typeof e[n]&&"fire"!==n&&"setEventedParent"!==n&&t.add(n);o=Object.getPrototypeOf(o)}return Array.from(t)}(t))n in o||x.includes(n)||(o[n]=t[n].bind(t));return o}const L="undefined"!=typeof document?n.useLayoutEffect:n.useEffect,E=["baseApiUrl","maxParallelImageRequests","workerClass","workerCount","workerUrl"];const S=n.createContext(null);function C(e,t){const i=(0,n.useContext)(s),[a,c]=(0,n.useState)(null),l=(0,n.useRef)(),{current:u}=(0,n.useRef)({mapLib:null,map:null});(0,n.useEffect)((()=>{const t=e.mapLib;let n,r=!0;return Promise.resolve(t||o.e(842).then(o.t.bind(o,842,23))).then((t=>{if(!r)return;if(!t)throw new Error("Invalid mapLib");const o="Map"in t?t:t.default;if(!o.Map)throw new Error("Invalid mapLib");if(function(e,t){for(const n of E)n in t&&(e[n]=t[n]);const{RTLTextPlugin:o="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js"}=t;o&&e.getRTLTextPluginStatus&&"unavailable"===e.getRTLTextPluginStatus()&&e.setRTLTextPlugin(o,(e=>{e&&console.error(e)}),!0)}(o,e),o.supported&&!o.supported(e))throw new Error("Map is not supported by this browser");e.reuseMaps&&(n=v.reuse(e,l.current)),n||(n=new v(o.Map,e,l.current)),u.map=b(n),u.mapLib=o,c(n),null==i||i.onMapMount(u.map,e.id)})).catch((t=>{const{onError:o}=e;o?o({type:"error",target:null,error:t}):console.error(t)})),()=>{r=!1,n&&(null==i||i.onMapUnmount(e.id),e.reuseMaps?n.recycle():n.destroy())}}),[]),L((()=>{a&&a.setProps(e)})),(0,n.useImperativeHandle)(t,(()=>u.map),[a]);const d=(0,n.useMemo)((()=>Object.assign({position:"relative",width:"100%",height:"100%"},e.style)),[e.style]);return(0,r.jsx)("div",{id:e.id,ref:l,style:d,children:a&&(0,r.jsx)(S.Provider,{value:u,children:(0,r.jsx)("div",{"mapboxgl-children":"",style:{height:"100%"},children:e.children})})})}const j=n.forwardRef(C);var w=o(961);const M=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function T(e,t){if(!e||!t)return;const o=e.style;for(const n in t){const e=t[n];Number.isFinite(e)&&!M.test(n)?o[n]=e+"px":o[n]=e}}const P=(0,n.memo)((0,n.forwardRef)(((e,t)=>{const{map:o,mapLib:r}=(0,n.useContext)(S),s=(0,n.useRef)({props:e});s.current.props=e;const i=(0,n.useMemo)((()=>{let t=!1;n.Children.forEach(e.children,(e=>{e&&(t=!0)}));const o=Object.assign({},e,{element:t?document.createElement("div"):null}),a=new r.Marker(o);return a.setLngLat([e.longitude,e.latitude]),a.getElement().addEventListener("click",(e=>{null==s.current.props.onClick||s.current.props.onClick({type:"click",target:a,originalEvent:e})})),a.on("dragstart",(e=>{const t=e;t.lngLat=i.getLngLat(),null==s.current.props.onDragStart||s.current.props.onDragStart(t)})),a.on("drag",(e=>{const t=e;t.lngLat=i.getLngLat(),null==s.current.props.onDrag||s.current.props.onDrag(t)})),a.on("dragend",(e=>{const t=e;t.lngLat=i.getLngLat(),null==s.current.props.onDragEnd||s.current.props.onDragEnd(t)})),a}),[]);(0,n.useEffect)((()=>(i.addTo(o.getMap()),()=>{i.remove()})),[]);const{longitude:a,latitude:c,offset:l,style:u,draggable:d=!1,popup:p=null,rotation:m=0,rotationAlignment:f="auto",pitchAlignment:g="auto"}=e;return(0,n.useEffect)((()=>{T(i.getElement(),u)}),[u]),(0,n.useImperativeHandle)(t,(()=>i),[]),i.getLngLat().lng===a&&i.getLngLat().lat===c||i.setLngLat([a,c]),l&&!function(e,t){const o=Array.isArray(e)?e[0]:e?e.x:0,n=Array.isArray(e)?e[1]:e?e.y:0,r=Array.isArray(t)?t[0]:t?t.x:0,s=Array.isArray(t)?t[1]:t?t.y:0;return o===r&&n===s}(i.getOffset(),l)&&i.setOffset(l),i.isDraggable()!==d&&i.setDraggable(d),i.getRotation()!==m&&i.setRotation(m),i.getRotationAlignment()!==f&&i.setRotationAlignment(f),i.getPitchAlignment()!==g&&i.setPitchAlignment(g),i.getPopup()!==p&&i.setPopup(p),(0,w.createPortal)(e.children,i.getElement())})));function R(e){return new Set(e?e.trim().split(/\s+/):[])}const z=(0,n.memo)((0,n.forwardRef)(((e,t)=>{const{map:o,mapLib:r}=(0,n.useContext)(S),s=(0,n.useMemo)((()=>document.createElement("div")),[]),a=(0,n.useRef)({props:e});a.current.props=e;const c=(0,n.useMemo)((()=>{const t=Object.assign({},e),o=new r.Popup(t);return o.setLngLat([e.longitude,e.latitude]),o.once("open",(e=>{null==a.current.props.onOpen||a.current.props.onOpen(e)})),o}),[]);if((0,n.useEffect)((()=>{const e=e=>{null==a.current.props.onClose||a.current.props.onClose(e)};return c.on("close",e),c.setDOMContent(s).addTo(o.getMap()),()=>{c.off("close",e),c.isOpen()&&c.remove()}}),[]),(0,n.useEffect)((()=>{T(c.getElement(),e.style)}),[e.style]),(0,n.useImperativeHandle)(t,(()=>c),[]),c.isOpen()&&(c.getLngLat().lng===e.longitude&&c.getLngLat().lat===e.latitude||c.setLngLat([e.longitude,e.latitude]),e.offset&&!i(c.options.offset,e.offset)&&c.setOffset(e.offset),c.options.anchor===e.anchor&&c.options.maxWidth===e.maxWidth||(c.options.anchor=e.anchor,c.setMaxWidth(e.maxWidth)),c.options.className!==e.className)){const t=R(c.options.className),o=R(e.className);for(const e of t)o.has(e)||c.removeClassName(e);for(const e of o)t.has(e)||c.addClassName(e);c.options.className=e.className}return(0,w.createPortal)(e.children,s)})));function k(e,t,o,r){const s=(0,n.useContext)(S),i=(0,n.useMemo)((()=>e(s)),[]);return(0,n.useEffect)((()=>{const e=r||o||t,n="function"==typeof t&&"function"==typeof o?t:null,a="function"==typeof o?o:"function"==typeof t?t:null,{map:c}=s;return c.hasControl(i)||(c.addControl(i,null==e?void 0:e.position),n&&n(s)),()=>{a&&a(s),c.hasControl(i)&&c.removeControl(i)}}),[]),i}function O(e){const t=k((t=>{let{mapLib:o}=t;return new o.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)})}),{position:e.position});return(0,n.useEffect)((()=>{T(t._controlContainer,e.style)}),[e.style]),null}const I=(0,n.memo)(O);function A(e,t){const o=(0,n.useRef)({props:e}),r=k((t=>{let{mapLib:n}=t;const r=new n.GeolocateControl(e),s=r._setupUI.bind(r);return r._setupUI=e=>{r._container.hasChildNodes()||s(e)},r.on("geolocate",(e=>{null==o.current.props.onGeolocate||o.current.props.onGeolocate(e)})),r.on("error",(e=>{null==o.current.props.onError||o.current.props.onError(e)})),r.on("outofmaxbounds",(e=>{null==o.current.props.onOutOfMaxBounds||o.current.props.onOutOfMaxBounds(e)})),r.on("trackuserlocationstart",(e=>{null==o.current.props.onTrackUserLocationStart||o.current.props.onTrackUserLocationStart(e)})),r.on("trackuserlocationend",(e=>{null==o.current.props.onTrackUserLocationEnd||o.current.props.onTrackUserLocationEnd(e)})),r}),{position:e.position});return o.current.props=e,(0,n.useImperativeHandle)(t,(()=>r),[]),(0,n.useEffect)((()=>{T(r._container,e.style)}),[e.style]),null}const F=(0,n.memo)((0,n.forwardRef)(A));function N(e){const t=k((t=>{let{mapLib:o}=t;return new o.NavigationControl(e)}),{position:e.position});return(0,n.useEffect)((()=>{T(t._container,e.style)}),[e.style]),null}const Z=(0,n.memo)(N);function D(e){const t=k((t=>{let{mapLib:o}=t;return new o.ScaleControl(e)}),{position:e.position}),o=(0,n.useRef)(e),r=o.current;o.current=e;const{style:s}=e;return void 0!==e.maxWidth&&e.maxWidth!==r.maxWidth&&(t.options.maxWidth=e.maxWidth),void 0!==e.unit&&e.unit!==r.unit&&t.setUnit(e.unit),(0,n.useEffect)((()=>{T(t._container,s)}),[s]),null}const U=(0,n.memo)(D);function W(e,t){if(!e)throw new Error(t)}let B=0;function H(e){const t=(0,n.useContext)(S).map.getMap(),o=(0,n.useRef)(e),[,r]=(0,n.useState)(0),s=(0,n.useMemo)((()=>e.id||"jsx-source-"+B++),[]);(0,n.useEffect)((()=>{if(t){const e=()=>setTimeout((()=>r((e=>e+1))),0);return t.on("styledata",e),e(),()=>{if(t.off("styledata",e),t.style&&t.style._loaded&&t.getSource(s)){var o;const e=null==(o=t.getStyle())?void 0:o.layers;if(e)for(const o of e)o.source===s&&t.removeLayer(o.id);t.removeSource(s)}}}}),[t]);let a=t&&t.style&&t.getSource(s);return a?function(e,t,o){W(t.id===o.id,"source id changed"),W(t.type===o.type,"source type changed");let n="",r=0;for(const a in t)"children"===a||"id"===a||i(o[a],t[a])||(n=a,r++);if(!r)return;const s=t.type;"geojson"===s?e.setData(t.data):"image"===s?e.updateImage({url:t.url,coordinates:t.coordinates}):"setCoordinates"in e&&1===r&&"coordinates"===n?e.setCoordinates(t.coordinates):"setUrl"in e&&"url"===n?e.setUrl(t.url):"setTiles"in e&&"tiles"===n?e.setTiles(t.tiles):console.warn("Unable to update prop: "+n)}(a,e,o.current):a=function(e,t,o){if(e.style&&e.style._loaded){const n=Object.assign({},o);return delete n.id,delete n.children,e.addSource(t,n),e.getSource(t)}return null}(t,s,e),o.current=e,a&&n.Children.map(e.children,(e=>e&&(0,n.cloneElement)(e,{source:s})))||null}let G=0;function V(e){const t=(0,n.useContext)(S).map.getMap(),o=(0,n.useRef)(e),[,r]=(0,n.useState)(0),s=(0,n.useMemo)((()=>e.id||"jsx-layer-"+G++),[]);(0,n.useEffect)((()=>{if(t){const e=()=>r((e=>e+1));return t.on("styledata",e),e(),()=>{t.off("styledata",e),t.style&&t.style._loaded&&t.getLayer(s)&&t.removeLayer(s)}}}),[t]);if(t&&t.style&&t.getLayer(s))try{!function(e,t,o,n){if(W(o.id===n.id,"layer id changed"),W(o.type===n.type,"layer type changed"),"custom"===o.type||"custom"===n.type)return;const{layout:r={},paint:s={},filter:a,minzoom:c,maxzoom:l,beforeId:u}=o;if(u!==n.beforeId&&e.moveLayer(t,u),r!==n.layout){const o=n.layout||{};for(const n in r)i(r[n],o[n])||e.setLayoutProperty(t,n,r[n]);for(const n in o)r.hasOwnProperty(n)||e.setLayoutProperty(t,n,void 0)}if(s!==n.paint){const o=n.paint||{};for(const n in s)i(s[n],o[n])||e.setPaintProperty(t,n,s[n]);for(const n in o)s.hasOwnProperty(n)||e.setPaintProperty(t,n,void 0)}i(a,n.filter)||e.setFilter(t,a),c===n.minzoom&&l===n.maxzoom||e.setLayerZoomRange(t,c,l)}(t,s,e,o.current)}catch(a){console.warn(a)}else!function(e,t,o){if(e.style&&e.style._loaded&&(!("source"in o)||e.getSource(o.source))){const n=Object.assign({},o,{id:t});delete n.beforeId,e.addLayer(n,o.beforeId)}}(t,s,e);return o.current=e,null}}}]); \ No newline at end of file diff --git a/assets/js/608d6ba6.24dc736b.js b/assets/js/608d6ba6.24dc736b.js deleted file mode 100644 index da47e90c..00000000 --- a/assets/js/608d6ba6.24dc736b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[2930],{3905:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>u});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),l=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=l(e.components);return r.createElement(p.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,m=s(e,["components","mdxType","originalType","parentName"]),c=l(a),d=n,u=c["".concat(p,".").concat(d)]||c[d]||h[d]||o;return a?r.createElement(u,i(i({ref:t},m),{},{components:a})):r.createElement(u,i({ref:t},m))}));function u(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=d;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[c]="string"==typeof e?e:n,i[1]=s;for(var l=2;l{a.r(t),a.d(t,{assets:()=>m,contentTitle:()=>p,default:()=>u,frontMatter:()=>s,metadata:()=>l,toc:()=>c});var r=a(7462),n=a(3366),o=(a(7294),a(3905)),i=["components"],s={},p="Introduction",l={unversionedId:"README",id:"README",title:"Introduction",description:"These docs are for",source:"@site/../docs/README.md",sourceDirName:".",slug:"/",permalink:"/react-map-gl/docs/",draft:!1,editUrl:"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/README.md",tags:[],version:"current",frontMatter:{},sidebar:"docsSidebar",next:{title:"What's new",permalink:"/react-map-gl/docs/whats-new"}},m={},c=[{value:"Design Philosophy",id:"design-philosophy",level:2},{value:"Limitations",id:"limitations",level:2}],h={toc:c},d="wrapper";function u(e){var t=e.components,a=(0,n.Z)(e,i);return(0,o.kt)(d,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"introduction"},"Introduction"),(0,o.kt)("p",{align:"center"},"These docs are for",(0,o.kt)("a",{href:"https://github.com/visgl/react-map-gl/tree/7.1-release/docs"},(0,o.kt)("img",{src:"https://img.shields.io/badge/v7.1-brightgreen.svg?style=flat-square"})),"Looking for an old version?",(0,o.kt)("a",{href:"https://github.com/visgl/react-map-gl/tree/6.1-release/docs"},(0,o.kt)("img",{src:"https://img.shields.io/badge/v6.1-brightgreen.svg?style=flat-square"})),(0,o.kt)("a",{href:"https://github.com/visgl/react-map-gl/tree/5.3-release/docs"},(0,o.kt)("img",{src:"https://img.shields.io/badge/v5.3-brightgreen.svg?style=flat-square"}))),(0,o.kt)("p",null,"react-map-gl is a suite of ",(0,o.kt)("a",{parentName:"p",href:"http://facebook.github.io/react/"},"React")," components for\nMapbox GL JS-compatible libraries."),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Library"),(0,o.kt)("th",{parentName:"tr",align:null},"Description"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/MapLibre/maplibre-gl-js"},"MapLibre")),(0,o.kt)("td",{parentName:"tr",align:null},"An open fork of mapbox-gl v1, that can be used without a mapbox token.")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/mapbox/mapbox-gl-js"},"Mapbox GL JS v1")),(0,o.kt)("td",{parentName:"tr",align:null},"The previous version of mapbox GL JS. This version is free open source and can be used with non-mapbox basemaps without a mapbox token.")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/mapbox/mapbox-gl-js"},"Mapbox GL JS v2")),(0,o.kt)("td",{parentName:"tr",align:null},"The latest version of Mapbox GL JS. Note that version 2 is not free open source, and a mapbox token is required and billable events are generated even if you do not use mapbox hosted basemaps.")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Other mapbox-gl forks"),(0,o.kt)("td",{parentName:"tr",align:null},"It may be possible to use react-map-gl with other mapbox forks, but this is not a supported use case. Minor PRs to enable other forks to be used may be accepted.")))),(0,o.kt)("p",null,"For basemaps:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You can load map data from Mapbox's own service."),(0,o.kt)("li",{parentName:"ul"},"You can create and host your own map data using one of the many ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/mapbox/awesome-vector-tiles"},"open source tools"),".")),(0,o.kt)("p",null,"New to react-map-gl? ",(0,o.kt)("a",{parentName:"p",href:"/react-map-gl/docs/get-started/"},"Get Started")),(0,o.kt)("p",null,"Want to contribute? See our ",(0,o.kt)("a",{parentName:"p",href:"/react-map-gl/docs/contributing"},"Developer Guide")),(0,o.kt)("h2",{id:"design-philosophy"},"Design Philosophy"),(0,o.kt)("p",null,"react-map-gl was first created by Uber's Visualization team, where Mapbox was used as a component to build powerful web tools such as ",(0,o.kt)("a",{parentName:"p",href:"https://kepler.gl"},"geospatial analytics")," and ",(0,o.kt)("a",{parentName:"p",href:"https://avs.auto/"},"self-driving data visualization"),". To manage the complexity of these applications, we fully embrace React and reactive programming."),(0,o.kt)("p",null,"The stock mapbox-gl APIs are ",(0,o.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Imperative_programming"},"imperative"),". That is, you instruct the map to do something (for example, ",(0,o.kt)("a",{parentName:"p",href:"https://docs.mapbox.com/mapbox-gl-js/api/#map#flyto"},"map.flyTo"),"), and it will execute the command at its own pace."),(0,o.kt)("p",null,"This does not scale when we have many components that need to synchronize with each other. We sometimes render two maps side by side, and when the user interacts with one, update both cameras. We draw React UI outside of the map container, that moves with the camera. We also render WebGL graphic overlays on top of the map, most notably with ",(0,o.kt)("a",{parentName:"p",href:"https://deck.gl"},"deck.gl"),". In these use cases, in order for all components to synchronize correctly, they must have their shared states managed by React. We might store the ",(0,o.kt)("strong",{parentName:"p"},"source of truth")," in a parent component state, or Redux store, or hooks, and let it propagate down to the map as well as its peers. "),(0,o.kt)("p",null,"Ultimately, in the spirit of the ",(0,o.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Reactive_programming"},"reactive programming paradigm"),", data always flows ",(0,o.kt)("strong",{parentName:"p"},"down"),". As long as the map manages its own state, as mapbox-gl is designed to do, we risk the components going out of sync."),(0,o.kt)("p",null,"react-map-gl creates a fully reactive wrapper for mapbox-gl. The ",(0,o.kt)("a",{parentName:"p",href:"/react-map-gl/docs/api-reference/map"},"Map")," component can be fully ",(0,o.kt)("a",{parentName:"p",href:"https://reactjs.org/docs/forms.html#controlled-components"},"controlled"),", that is, the map's camera would never deviate from the props that it's assigned. Read more about this core behavior in ",(0,o.kt)("a",{parentName:"p",href:"/react-map-gl/docs/get-started/state-management"},"state management"),"."),(0,o.kt)("h2",{id:"limitations"},"Limitations"),(0,o.kt)("p",null,"In v7.0, react-map-gl was fully rewritten to better align its API with the underlying Mapbox GL JS library. Wherever the reactive usage patterns permits, the wrapper's props and methods are 1:1 mappings to their native API equivelants."),(0,o.kt)("p",null,"It is possible to call the native methods directly from the ",(0,o.kt)("inlineCode",{parentName:"p"},"Map")," instance obtained via ",(0,o.kt)("a",{parentName:"p",href:"/react-map-gl/docs/api-reference/map#gemap"},"getMap"),". However, doing so may result in the map's state to deviate from its props. For example, calling ",(0,o.kt)("inlineCode",{parentName:"p"},"map.setMaxZoom")," directly will cause the map's constraint settings to differ from the value of the ",(0,o.kt)("inlineCode",{parentName:"p"},"maxZoom")," prop. Generally speaking, calling a native method is disencouraged if the same thing can be achieved through the React interface. If a third-party plugin does so, then it may lead to some unexpected behaviors."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/608d6ba6.4fd9f885.js b/assets/js/608d6ba6.4fd9f885.js new file mode 100644 index 00000000..d0576800 --- /dev/null +++ b/assets/js/608d6ba6.4fd9f885.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[7424],{9870:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>n,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"README","title":"Introduction","description":"These docs are for v8.0. For v7, see here.","source":"@site/../docs/README.md","sourceDirName":".","slug":"/","permalink":"/react-map-gl/docs/","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/README.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","next":{"title":"What\'s new","permalink":"/react-map-gl/docs/whats-new"}}');var r=a(4848),o=a(8453);const i={},n="Introduction",l={},c=[{value:"Design Philosophy",id:"design-philosophy",level:2},{value:"Limitations",id:"limitations",level:2}];function h(e){const t={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"introduction",children:"Introduction"})}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsxs)(t.p,{children:["These docs are for v8.0. For v7, see ",(0,r.jsx)(t.a,{href:"https://github.com/visgl/react-map-gl/tree/7.1-release/docs",children:"here"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["react-map-gl is a suite of ",(0,r.jsx)(t.a,{href:"http://facebook.github.io/react/",children:"React"})," components for\n",(0,r.jsx)(t.a,{href:"https://www.npmjs.com/package/mapbox-gl",children:"mapbox-gl"}),", ",(0,r.jsx)(t.a,{href:"https://www.npmjs.com/package/maplibre-gl",children:"maplibre-gl"})," or compatible libraries."]}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Library"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.a,{href:"https://maplibre.org/maplibre-gl-js/docs/",children:"MapLibre GL JS"})}),(0,r.jsx)(t.td,{children:"An Open-source TypeScript library for publishing web maps."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.a,{href:"https://www.mapbox.com/mapbox-gljs",children:"Mapbox GL JS"})}),(0,r.jsx)(t.td,{children:"A JavaScript library for interactive, customizable vector maps on the web."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.a,{href:"https://github.com/mapbox/mapbox-gl-js/tree/release-v1.13.3",children:"Mapbox GL JS v1"})}),(0,r.jsx)(t.td,{children:"The last free-open-source version of Mapbox GL JS. This version can be used without a Mapbox token if you do not use Mapbox hosted basemaps."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Other compatible forks"}),(0,r.jsx)(t.td,{children:"It may be possible to use react-map-gl with mapbox-gl/maplibre-gl forks, but this is not a supported use case. Minor PRs to enable other forks to be used may be accepted."})]})]})]}),"\n",(0,r.jsx)(t.p,{children:"If you need help choosing a base map library that is right for you:"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["Decide where to get your vector map data.","\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"mapbox-gl"})," is designed to work seamlessly with Mapbox's own data service. You will need a billable Mapbox token to use it."]}),"\n",(0,r.jsxs)(t.li,{children:["There are a number of ",(0,r.jsx)(t.a,{href:"/react-map-gl/docs/get-started/mapbox-tokens#display-maps-without-a-mapbox-token",children:"map data providers"})," who support ",(0,r.jsx)(t.code,{children:"maplibre-gl"}),", with a variaty of data quality and price options."]}),"\n",(0,r.jsxs)(t.li,{children:["You can create and host your own map tiles and use them with ",(0,r.jsx)(t.code,{children:"maplibre-gl"})," for (almost) free, if you are comfortable of using ",(0,r.jsx)(t.a,{href:"/react-map-gl/docs/get-started/mapbox-tokens#display-maps-without-a-mapbox-token",children:"open source tools"})," and setting up a cloud storage account."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(t.li,{children:"Visit Mapbox and MapLibre websites for examples and documentation. Each library offer unique features that may not exist in another."}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["New to react-map-gl? ",(0,r.jsx)(t.a,{href:"/react-map-gl/docs/get-started/",children:"Get Started"})]}),"\n",(0,r.jsxs)(t.p,{children:["Want to contribute? See our ",(0,r.jsx)(t.a,{href:"/react-map-gl/docs/contributing",children:"Developer Guide"})]}),"\n",(0,r.jsx)(t.h2,{id:"design-philosophy",children:"Design Philosophy"}),"\n",(0,r.jsxs)(t.p,{children:["react-map-gl was first created by Uber's Visualization team, where Mapbox was used as a component to build powerful web tools such as ",(0,r.jsx)(t.a,{href:"https://kepler.gl",children:"geospatial analytics"})," and ",(0,r.jsx)(t.a,{href:"https://avs.auto/",children:"self-driving data visualization"}),". To manage the complexity of these applications, we fully embrace React and reactive programming."]}),"\n",(0,r.jsxs)(t.p,{children:["The stock mapbox-gl APIs are ",(0,r.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Imperative_programming",children:"imperative"}),". That is, you instruct the map to do something (for example, ",(0,r.jsx)(t.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/#map#flyto",children:"map.flyTo"}),"), and it will execute the command at its own pace."]}),"\n",(0,r.jsxs)(t.p,{children:["This does not scale when we have many components that need to synchronize with each other. We sometimes render two maps side by side, and when the user interacts with one, update both cameras. We draw React UI outside of the map container, that moves with the camera. We also render WebGL graphic overlays on top of the map, most notably with ",(0,r.jsx)(t.a,{href:"https://deck.gl",children:"deck.gl"}),". In these use cases, in order for all components to synchronize correctly, they must have their shared states managed by React. We might store the ",(0,r.jsx)(t.strong,{children:"source of truth"})," in a parent component state, or Redux store, or hooks, and let it propagate down to the map as well as its peers."]}),"\n",(0,r.jsxs)(t.p,{children:["Ultimately, in the spirit of the ",(0,r.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Reactive_programming",children:"reactive programming paradigm"}),", data always flows ",(0,r.jsx)(t.strong,{children:"down"}),". As long as the map manages its own state, as mapbox-gl is designed to do, we risk the components going out of sync."]}),"\n",(0,r.jsxs)(t.p,{children:["react-map-gl creates a fully reactive wrapper for mapbox-gl/maplibre-gl. The ",(0,r.jsx)(t.a,{href:"/react-map-gl/docs/api-reference/maplibre/map",children:"Map"})," component can be fully ",(0,r.jsx)(t.a,{href:"https://reactjs.org/docs/forms.html#controlled-components",children:"controlled"}),", that is, the map's camera would never deviate from the props that it's assigned. Read more about this core behavior in ",(0,r.jsx)(t.a,{href:"/react-map-gl/docs/get-started/state-management",children:"state management"}),"."]}),"\n",(0,r.jsx)(t.h2,{id:"limitations",children:"Limitations"}),"\n",(0,r.jsx)(t.p,{children:"In v7.0, react-map-gl was fully rewritten to better align its API with the underlying Mapbox GL JS library. Wherever the reactive usage patterns permits, the wrapper's props and methods are 1:1 mappings to their native API equivelants."}),"\n",(0,r.jsxs)(t.p,{children:["It is possible to call the native methods directly from the ",(0,r.jsx)(t.code,{children:"Map"})," instance obtained via ",(0,r.jsx)(t.a,{href:"/react-map-gl/docs/api-reference/maplibre/map#gemap",children:"getMap"}),". However, doing so may result in the map's state to deviate from its props. For example, calling ",(0,r.jsx)(t.code,{children:"map.setMaxZoom"})," directly will cause the map's constraint settings to differ from the value of the ",(0,r.jsx)(t.code,{children:"maxZoom"})," prop. Generally speaking, calling a native method is disencouraged if the same thing can be achieved through the React interface. If a third-party plugin does so, then it may lead to some unexpected behaviors."]})]})}function d(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},8453:(e,t,a)=>{a.d(t,{R:()=>i,x:()=>n});var s=a(6540);const r={},o=s.createContext(r);function i(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function n(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/62f75a49.f5844737.js b/assets/js/62f75a49.f5844737.js new file mode 100644 index 00000000..95d8999b --- /dev/null +++ b/assets/js/62f75a49.f5844737.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[5253],{3152:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>a,contentTitle:()=>t,default:()=>h,frontMatter:()=>c,metadata:()=>l,toc:()=>o});const l=JSON.parse('{"id":"api-reference/maplibre/types","title":"Types","description":"The following types can be imported from react-map-gl/maplibre when using TypeScript.","source":"@site/../docs/api-reference/maplibre/types.md","sourceDirName":"api-reference/maplibre","slug":"/api-reference/maplibre/types","permalink":"/react-map-gl/docs/api-reference/maplibre/types","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/maplibre/types.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"useMap","permalink":"/react-map-gl/docs/api-reference/maplibre/use-map"}}');var r=n(4848),s=n(8453);const c={},t="Types",a={},o=[{value:"Components",id:"components",level:2},{value:"IControl",id:"icontrol",level:4},{value:"CustomLayerInterface",id:"customlayerinterface",level:4},{value:"MapRef",id:"mapref",level:4},{value:"Styling",id:"styling",level:2},{value:"StyleSpecification",id:"stylespecification",level:4},{value:"SkySpecification",id:"skyspecification",level:4},{value:"LightSpecification",id:"lightspecification",level:4},{value:"TerrainSpecification",id:"terrainspecification",level:4},{value:"ProjectionSpecification",id:"projectionspecification",level:4},{value:"BackgroundLayerSpecification",id:"backgroundlayerspecification",level:4},{value:"CircleLayerSpecification",id:"circlelayerspecification",level:4},{value:"FillExtrusionLayerSpecification",id:"fillextrusionlayerspecification",level:4},{value:"FillLayerSpecification",id:"filllayerspecification",level:4},{value:"HeatmapLayerSpecification",id:"heatmaplayerspecification",level:4},{value:"HillshadeLayerSpecification",id:"hillshadelayerspecification",level:4},{value:"LineLayerSpecification",id:"linelayerspecification",level:4},{value:"RasterLayerSpecification",id:"rasterlayerspecification",level:4},{value:"SymbolLayerSpecification",id:"symbollayerspecification",level:4},{value:"GeoJSONSourceSpecification",id:"geojsonsourcespecification",level:4},{value:"VideoSourceSpecification",id:"videosourcespecification",level:4},{value:"ImageSourceSpecification",id:"imagesourcespecification",level:4},{value:"VectorSourceSpecification",id:"vectorsourcespecification",level:4},{value:"RasterSourceSpecification",id:"rastersourcespecification",level:4},{value:"RasterDEMSourceSpecification",id:"rasterdemsourcespecification",level:4},{value:"CanvasSourceSpecification",id:"canvassourcespecification",level:4},{value:"Configurations",id:"configurations",level:2},{value:"ControlPosition",id:"controlposition",level:4},{value:"PaddingOptions",id:"paddingoptions",level:4},{value:"Data Types",id:"data-types",level:2},{value:"LngLat",id:"lnglat",level:4},{value:"LngLatLike",id:"lnglatlike",level:4},{value:"LngLatBounds",id:"lnglatbounds",level:4},{value:"LngLatBoundsLike",id:"lnglatboundslike",level:4},{value:"Point",id:"point",level:4},{value:"PointLike",id:"pointlike",level:4},{value:"MapGeoJSONFeature",id:"mapgeojsonfeature",level:4},{value:"ViewState",id:"viewstate",level:4},{value:"Events",id:"events",level:2},{value:"MapEvent",id:"mapevent",level:4},{value:"MapLayerMouseEvent",id:"maplayermouseevent",level:4},{value:"MapWheelEvent",id:"mapwheelevent",level:4},{value:"MapLayerTouchEvent",id:"maplayertouchevent",level:4},{value:"ViewStateChangeEvent",id:"viewstatechangeevent",level:4},{value:"MapBoxZoomEvent",id:"mapboxzoomevent",level:4},{value:"MapStyleDataEvent",id:"mapstyledataevent",level:4},{value:"MapSourceDataEvent",id:"mapsourcedataevent",level:4},{value:"ErrorEvent",id:"errorevent",level:4},{value:"GeolocateEvent",id:"geolocateevent",level:4},{value:"GeolocateResultEvent",id:"geolocateresultevent",level:4},{value:"GeolocateErrorEvent",id:"geolocateerrorevent",level:4},{value:"MarkerEvent",id:"markerevent",level:4},{value:"MarkerDragEvent",id:"markerdragevent",level:4},{value:"PopupEvent",id:"popupevent",level:4}];function d(e){const i={a:"a",code:"code",h1:"h1",h2:"h2",h4:"h4",header:"header",li:"li",p:"p",ul:"ul",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.header,{children:(0,r.jsx)(i.h1,{id:"types",children:"Types"})}),"\n",(0,r.jsxs)(i.p,{children:["The following types can be imported from ",(0,r.jsx)(i.code,{children:"react-map-gl/maplibre"})," when using TypeScript."]}),"\n",(0,r.jsx)(i.h2,{id:"components",children:"Components"}),"\n",(0,r.jsx)(i.h4,{id:"icontrol",children:"IControl"}),"\n",(0,r.jsxs)(i.p,{children:["A ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/interfaces/IControl/",children:"custom control implementation"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"customlayerinterface",children:"CustomLayerInterface"}),"\n",(0,r.jsxs)(i.p,{children:["A ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/interfaces/CustomLayerInterface/",children:"custom layer implementation"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"mapref",children:"MapRef"}),"\n",(0,r.jsxs)(i.p,{children:["Instance ",(0,r.jsx)(i.a,{href:"https://reactjs.org/docs/refs-and-the-dom.html#creating-refs",children:"ref"})," of a ",(0,r.jsx)(i.code,{children:"Map"})," component. See ",(0,r.jsx)(i.a,{href:"/react-map-gl/docs/api-reference/maplibre/map#methods",children:"Map documentation"})," for details."]}),"\n",(0,r.jsx)(i.h2,{id:"styling",children:"Styling"}),"\n",(0,r.jsx)(i.h4,{id:"stylespecification",children:"StyleSpecification"}),"\n",(0,r.jsxs)(i.p,{children:["An object conforming to the ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-style-spec/",children:"Maplibre Style Specification"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"skyspecification",children:"SkySpecification"}),"\n",(0,r.jsxs)(i.p,{children:["An object conforming to the ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-style-spec/sky/",children:"Sky Style Specification"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"lightspecification",children:"LightSpecification"}),"\n",(0,r.jsxs)(i.p,{children:["An object conforming to the ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-style-spec/light/",children:"Light Style Specification"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"terrainspecification",children:"TerrainSpecification"}),"\n",(0,r.jsxs)(i.p,{children:["An object conforming to the ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-style-spec/terrain/",children:"Terrain Style Specification"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"projectionspecification",children:"ProjectionSpecification"}),"\n",(0,r.jsxs)(i.p,{children:["An object conforming to the ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-style-spec/projection/",children:"Projection Style Specification"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"backgroundlayerspecification",children:"BackgroundLayerSpecification"}),"\n",(0,r.jsxs)(i.p,{children:["A JSON object that defines a ",(0,r.jsx)(i.code,{children:"background"})," layer according to the ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-style-spec/layers/#background",children:"Maplibre Style Specification"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"circlelayerspecification",children:"CircleLayerSpecification"}),"\n",(0,r.jsxs)(i.p,{children:["A JSON object that defines a ",(0,r.jsx)(i.code,{children:"circle"})," layer according to the ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-style-spec/layers//#circle",children:"Maplibre Style Specification"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"fillextrusionlayerspecification",children:"FillExtrusionLayerSpecification"}),"\n",(0,r.jsxs)(i.p,{children:["A JSON object that defines a ",(0,r.jsx)(i.code,{children:"fill-extrusion"})," layer according to the ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-style-spec/layers/#fill-extrusion",children:"Maplibre Style Specification"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"filllayerspecification",children:"FillLayerSpecification"}),"\n",(0,r.jsxs)(i.p,{children:["A JSON object that defines a ",(0,r.jsx)(i.code,{children:"fill"})," layer according to the ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-style-spec/layers/#fill",children:"Maplibre Style Specification"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"heatmaplayerspecification",children:"HeatmapLayerSpecification"}),"\n",(0,r.jsxs)(i.p,{children:["A JSON object that defines a ",(0,r.jsx)(i.code,{children:"heatmap"})," layer according to the ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-style-spec/layers/#heatmap",children:"Maplibre Style Specification"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"hillshadelayerspecification",children:"HillshadeLayerSpecification"}),"\n",(0,r.jsxs)(i.p,{children:["A JSON object that defines a ",(0,r.jsx)(i.code,{children:"hillshade"})," layer according to the ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-style-spec/layers/#hillshade",children:"Maplibre Style Specification"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"linelayerspecification",children:"LineLayerSpecification"}),"\n",(0,r.jsxs)(i.p,{children:["A JSON object that defines a ",(0,r.jsx)(i.code,{children:"line"})," layer according to the ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-style-spec/layers/#line",children:"Maplibre Style Specification"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"rasterlayerspecification",children:"RasterLayerSpecification"}),"\n",(0,r.jsxs)(i.p,{children:["A JSON object that defines a ",(0,r.jsx)(i.code,{children:"raster"})," layer according to the ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-style-spec/layers/#raster",children:"Maplibre Style Specification"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"symbollayerspecification",children:"SymbolLayerSpecification"}),"\n",(0,r.jsxs)(i.p,{children:["A JSON object that defines a ",(0,r.jsx)(i.code,{children:"symbol"})," layer according to the ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-style-spec/layers/#symbol",children:"Maplibre Style Specification"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"geojsonsourcespecification",children:"GeoJSONSourceSpecification"}),"\n",(0,r.jsxs)(i.p,{children:["A JSON object that defines a ",(0,r.jsx)(i.code,{children:"geojson"})," source according to the ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-style-spec/sources/#geojson",children:"Maplibre Style Specification"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"videosourcespecification",children:"VideoSourceSpecification"}),"\n",(0,r.jsxs)(i.p,{children:["A JSON object that defines a ",(0,r.jsx)(i.code,{children:"video"})," source according to the ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-style-spec/sources/#video",children:"Maplibre Style Specification"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"imagesourcespecification",children:"ImageSourceSpecification"}),"\n",(0,r.jsxs)(i.p,{children:["A JSON object that defines a ",(0,r.jsx)(i.code,{children:"image"})," source according to the ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-style-spec/sources/#image",children:"Maplibre Style Specification"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"vectorsourcespecification",children:"VectorSourceSpecification"}),"\n",(0,r.jsxs)(i.p,{children:["A JSON object that defines a ",(0,r.jsx)(i.code,{children:"vector"})," source according to the ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-style-spec/sources/#vector",children:"Maplibre Style Specification"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"rastersourcespecification",children:"RasterSourceSpecification"}),"\n",(0,r.jsxs)(i.p,{children:["A JSON object that defines a ",(0,r.jsx)(i.code,{children:"raster"})," source according to the ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-style-spec/sources/#raster",children:"Maplibre Style Specification"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"rasterdemsourcespecification",children:"RasterDEMSourceSpecification"}),"\n",(0,r.jsxs)(i.p,{children:["A JSON object that defines a ",(0,r.jsx)(i.code,{children:"raster-dem"})," source according to the ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-style-spec/sources/#raster-dem",children:"Maplibre Style Specification"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"canvassourcespecification",children:"CanvasSourceSpecification"}),"\n",(0,r.jsxs)(i.p,{children:["A JSON object that defines a ",(0,r.jsx)(i.code,{children:"canvas"})," source type. See ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/type-aliases/CanvasSourceSpecification/",children:"CanvasSourceSpecification"}),"."]}),"\n",(0,r.jsx)(i.h2,{id:"configurations",children:"Configurations"}),"\n",(0,r.jsx)(i.h4,{id:"controlposition",children:"ControlPosition"}),"\n",(0,r.jsxs)(i.p,{children:["One of ",(0,r.jsx)(i.code,{children:"'top-right'"}),", ",(0,r.jsx)(i.code,{children:"'top-left'"}),", ",(0,r.jsx)(i.code,{children:"'bottom-right'"})," and ",(0,r.jsx)(i.code,{children:"'bottom-left'"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"paddingoptions",children:"PaddingOptions"}),"\n",(0,r.jsx)(i.p,{children:"An object with the following fields:"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"left"}),": number - in pixels."]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"top"}),": number - in pixels."]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"right"}),": number - in pixels."]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"bottom"}),": number - in pixels."]}),"\n"]}),"\n",(0,r.jsx)(i.h2,{id:"data-types",children:"Data Types"}),"\n",(0,r.jsx)(i.h4,{id:"lnglat",children:"LngLat"}),"\n",(0,r.jsxs)(i.p,{children:["A Maplibre ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/LngLat/",children:"LngLat"})," object."]}),"\n",(0,r.jsx)(i.h4,{id:"lnglatlike",children:"LngLatLike"}),"\n",(0,r.jsxs)(i.p,{children:["A Maplibre ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/type-aliases/LngLatLike/",children:"LngLatLike"})," object."]}),"\n",(0,r.jsx)(i.h4,{id:"lnglatbounds",children:"LngLatBounds"}),"\n",(0,r.jsxs)(i.p,{children:["A Maplibre ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/LngLatBounds/",children:"LngLatBounds"})," object."]}),"\n",(0,r.jsx)(i.h4,{id:"lnglatboundslike",children:"LngLatBoundsLike"}),"\n",(0,r.jsxs)(i.p,{children:["A Maplibre ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/type-aliases/LngLatBoundsLike/",children:"LngLatBoundsLike"})," object."]}),"\n",(0,r.jsx)(i.h4,{id:"point",children:"Point"}),"\n",(0,r.jsxs)(i.p,{children:["A Maplibre ",(0,r.jsx)(i.a,{href:"https://github.com/mapbox/point-geometry",children:"Point"})," object."]}),"\n",(0,r.jsx)(i.h4,{id:"pointlike",children:"PointLike"}),"\n",(0,r.jsxs)(i.p,{children:["A Maplibre ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/type-aliases/PointLike/",children:"PointLike"})," object."]}),"\n",(0,r.jsx)(i.h4,{id:"mapgeojsonfeature",children:"MapGeoJSONFeature"}),"\n",(0,r.jsxs)(i.p,{children:["A ",(0,r.jsx)(i.a,{href:"http://geojson.org/",children:"GeoJSON"})," feature that also contains the following library-specific fields:"]}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"layer"}),": Layer"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"source"}),": string"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"sourceLayer"}),": string"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"state"}),": ",(0,r.jsx)(i.code,{children:"{ [key: string]: any }"})]}),"\n"]}),"\n",(0,r.jsx)(i.h4,{id:"viewstate",children:"ViewState"}),"\n",(0,r.jsx)(i.p,{children:"An object with the following fields:"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"longitude"}),": number - The longitude of the map center."]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"latitude"}),": number - The latitude of the map center."]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"zoom"}),": number - The zoom level."]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"pitch"}),": number - The pitch (tilt) of the map, in degrees."]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"bearing"}),": number - The bearing (rotation) of the map, in degrees."]}),"\n"]}),"\n",(0,r.jsx)(i.h2,{id:"events",children:"Events"}),"\n",(0,r.jsx)(i.h4,{id:"mapevent",children:"MapEvent"}),"\n",(0,r.jsx)(i.p,{children:"An object with the following fields:"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"type"}),": string - Event type"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"target"}),": ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/Map/",children:"Map"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"originalEvent?"}),": ",(0,r.jsx)(i.a,{href:"https://developer.mozilla.org/en-US/docs/Web/API/Event",children:"Event"})]}),"\n"]}),"\n",(0,r.jsx)(i.h4,{id:"maplayermouseevent",children:"MapLayerMouseEvent"}),"\n",(0,r.jsx)(i.p,{children:"An object with the following fields:"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"type"}),": string"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"target"}),": ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/Map/",children:"Map"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"originalEvent?"}),": ",(0,r.jsx)(i.a,{href:"https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent",children:"MouseEvent"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"point"}),": ",(0,r.jsx)(i.a,{href:"#point",children:"Point"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"lngLat"}),": ",(0,r.jsx)(i.a,{href:"#lnglat",children:"LngLat"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"preventDefault"}),": () => void"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"defaultPrevented"}),": boolean"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"features?"}),": ",(0,r.jsx)(i.a,{href:"#mapgeojsonfeature",children:"MapGeoJSONFeature"}),"[]"]}),"\n"]}),"\n",(0,r.jsx)(i.h4,{id:"mapwheelevent",children:"MapWheelEvent"}),"\n",(0,r.jsx)(i.p,{children:"An object with the following fields:"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"type"}),": string"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"target"}),": ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/Map/",children:"Map"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"originalEvent?"}),": ",(0,r.jsx)(i.a,{href:"https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent",children:"WheelEvent"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"preventDefault"}),": () => void"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"defaultPrevented"}),": boolean"]}),"\n"]}),"\n",(0,r.jsx)(i.h4,{id:"maplayertouchevent",children:"MapLayerTouchEvent"}),"\n",(0,r.jsx)(i.p,{children:"An object with the following fields:"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"type"}),": string"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"target"}),": ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/Map/",children:"Map"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"originalEvent?"}),": ",(0,r.jsx)(i.a,{href:"https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent",children:"TouchEvent"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"point"}),": ",(0,r.jsx)(i.a,{href:"#point",children:"Point"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"lngLat"}),": ",(0,r.jsx)(i.a,{href:"#lnglat",children:"LngLat"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"points"}),": ",(0,r.jsx)(i.a,{href:"#point",children:"Point"}),"[]"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"lngLats"}),": ",(0,r.jsx)(i.a,{href:"#lnglat",children:"LngLat"}),"[]"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"preventDefault"}),": () => void"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"defaultPrevented"}),": boolean"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"features?"}),": ",(0,r.jsx)(i.a,{href:"#mapgeojsonfeature",children:"MapGeoJSONFeature"}),"[]"]}),"\n"]}),"\n",(0,r.jsx)(i.h4,{id:"viewstatechangeevent",children:"ViewStateChangeEvent"}),"\n",(0,r.jsx)(i.p,{children:"An object with the following fields:"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"type"}),": string - Event type"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"target"}),": ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/Map/",children:"Map"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"viewState"}),": ",(0,r.jsx)(i.a,{href:"#viewstate",children:"ViewState"})," - the next view state that the camera wants to change to based on user input or transition."]}),"\n"]}),"\n",(0,r.jsx)(i.h4,{id:"mapboxzoomevent",children:"MapBoxZoomEvent"}),"\n",(0,r.jsx)(i.p,{children:"An object with the following fields:"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"type"}),": string"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"target"}),": ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/Map/",children:"Map"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"originalEvent?"}),": ",(0,r.jsx)(i.a,{href:"https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent",children:"MouseEvent"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"boxZoomBounds"}),": ",(0,r.jsx)(i.a,{href:"#lnglatbounds",children:"LngLatBounds"})]}),"\n"]}),"\n",(0,r.jsx)(i.h4,{id:"mapstyledataevent",children:"MapStyleDataEvent"}),"\n",(0,r.jsx)(i.p,{children:"An object with the following fields:"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"type"}),": string"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"target"}),": ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/Map/",children:"Map"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"dataType"}),": 'style'"]}),"\n"]}),"\n",(0,r.jsx)(i.h4,{id:"mapsourcedataevent",children:"MapSourceDataEvent"}),"\n",(0,r.jsx)(i.p,{children:"An object with the following fields:"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"type"}),": string"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"target"}),": ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/Map/",children:"Map"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"dataType"}),": 'source'"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"isSourceLoaded"}),": boolean"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"source"}),": string"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"sourceId"}),": string"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"sourceDataType"}),": 'metadata' | 'content'"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"tile"}),": any"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"coord"}),": Coordinate"]}),"\n"]}),"\n",(0,r.jsxs)(i.p,{children:["See ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/type-aliases/MapDataEvent/",children:"MapDataEvent"}),"."]}),"\n",(0,r.jsx)(i.h4,{id:"errorevent",children:"ErrorEvent"}),"\n",(0,r.jsx)(i.p,{children:"An object with the following fields:"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"type"}),": 'error'"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"target"}),": ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/Map/",children:"Map"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"error"}),": ",(0,r.jsx)(i.a,{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error",children:"Error"})]}),"\n"]}),"\n",(0,r.jsx)(i.h4,{id:"geolocateevent",children:"GeolocateEvent"}),"\n",(0,r.jsx)(i.p,{children:"An object with the following fields:"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"type"}),": string"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"target"}),": ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/GeolocateControl/",children:"GeolocateControl"})]}),"\n"]}),"\n",(0,r.jsx)(i.h4,{id:"geolocateresultevent",children:"GeolocateResultEvent"}),"\n",(0,r.jsx)(i.p,{children:"An object with the following fields:"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"type"}),": string"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"target"}),": ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/GeolocateControl/",children:"GeolocateControl"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"coords"}),": ",(0,r.jsx)(i.a,{href:"https://developer.mozilla.org/en-US/docs/Web/API/GeolocationCoordinates",children:"GeolocationCoordinates"})," - the current location."]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"timestamp"}),": number - the time at which the location was retrieved."]}),"\n"]}),"\n",(0,r.jsx)(i.h4,{id:"geolocateerrorevent",children:"GeolocateErrorEvent"}),"\n",(0,r.jsx)(i.p,{children:"An object with the following fields:"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"type"}),": string"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"target"}),": ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/GeolocateControl/",children:"GeolocateControl"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"code"}),": PERMISSION_DENIED | POSITION_UNAVAILABLE | TIMEOUT - see ",(0,r.jsx)(i.a,{href:"https://developer.mozilla.org/en-US/docs/Web/API/GeolocationPositionError",children:"GeolocationPositionError"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"message"}),": string - the details of the error. Specifications note that this is primarily intended for debugging use and not to be shown directly in a user interface."]}),"\n"]}),"\n",(0,r.jsx)(i.h4,{id:"markerevent",children:"MarkerEvent"}),"\n",(0,r.jsx)(i.p,{children:"An object with the following fields:"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"type"}),": string"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"target"}),": ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/Marker/",children:"Marker"})]}),"\n"]}),"\n",(0,r.jsx)(i.h4,{id:"markerdragevent",children:"MarkerDragEvent"}),"\n",(0,r.jsx)(i.p,{children:"An object with the following fields:"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"type"}),": string"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"target"}),": ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/Marker/",children:"Marker"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"lngLat"}),": ",(0,r.jsx)(i.a,{href:"#lnglat",children:"LngLat"})," - the new location of the marker"]}),"\n"]}),"\n",(0,r.jsx)(i.h4,{id:"popupevent",children:"PopupEvent"}),"\n",(0,r.jsx)(i.p,{children:"An object with the following fields:"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"type"}),": string"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.code,{children:"target"}),": ",(0,r.jsx)(i.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/Popup/",children:"Popup"})]}),"\n"]})]})}function h(e={}){const{wrapper:i}={...(0,s.R)(),...e.components};return i?(0,r.jsx)(i,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},8453:(e,i,n)=>{n.d(i,{R:()=>c,x:()=>t});var l=n(6540);const r={},s=l.createContext(r);function c(e){const i=l.useContext(s);return l.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function t(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),l.createElement(s.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/63.27b6da9c.js b/assets/js/63.27b6da9c.js deleted file mode 100644 index 5ad7a029..00000000 --- a/assets/js/63.27b6da9c.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 63.27b6da9c.js.LICENSE.txt */ -(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[63],{63:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>ut});var n=r(1746),a=r.n(n),o=r(1427),i=r.n(o),s=r(7294);const c={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};var l=r(9864);function u(e,t){if(e.length!==t.length)return!1;for(var r=0;r1?n-1:0),o=1;o0?" Additional arguments: "+a.join(", "):"")));return j(i)}return I(t,e),t}(Error),z=/^[^\S\n]*?\/\* sc-component-id:\s*(\S+)\s+\*\//gm,B=function(e){var t=""+(e||""),r=[];return t.replace(z,(function(e,t,n){return r.push({componentId:t,matchIndex:n}),e})),r.map((function(e,n){var a=e.componentId,o=e.matchIndex,i=r[n+1];return{componentId:a,cssFromDOM:i?t.slice(o,i.matchIndex):t.slice(o)}}))},G=/^\s*\/\/.*$/gm,W=new(a())({global:!1,cascade:!0,keyframe:!1,prefix:!1,compress:!1,semicolon:!0}),q=new(a())({global:!1,cascade:!0,keyframe:!1,prefix:!0,compress:!1,semicolon:!1}),U=[],Y=function(e){if(-2===e){var t=U;return U=[],t}},V=i()((function(e){U.push(e)})),X=void 0,Z=void 0,K=void 0,J=function(e,t,r){return t>0&&-1!==r.slice(0,t).indexOf(Z)&&r.slice(t-Z.length,t)!==Z?"."+X:e};q.use([function(e,t,r){2===e&&r.length&&r[0].lastIndexOf(Z)>0&&(r[0]=r[0].replace(K,J))},V,Y]),W.use([V,Y]);var Q=function(e){return W("",e)};function ee(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"&",a=e.join("").replace(G,""),o=t&&r?r+" "+t+" { "+a+" }":a;return X=n,Z=t,K=new RegExp("\\"+Z+"\\b","g"),q(r||!t?"":t,o)}var te=function(){return r.nc},re=function(e,t,r){r&&((e[t]||(e[t]=Object.create(null)))[r]=!0)},ne=function(e,t){e[t]=Object.create(null)},ae=function(e){return function(t,r){return void 0!==e[t]&&e[t][r]}},oe=function(e){var t="";for(var r in e)t+=Object.keys(e[r]).join(" ")+" ";return t.trim()},ie=function(e){if(e.sheet)return e.sheet;for(var t=e.ownerDocument.styleSheets.length,r=0;r"+e()+""}},de=function(e,t){return function(){var r,n=((r={})[D]=oe(t),r[$]="4.4.1",r),a=te();return a&&(n.nonce=a),s.createElement("style",O({},n,{dangerouslySetInnerHTML:{__html:e()}}))}},fe=function(e){return function(){return Object.keys(e)}},pe=function(e,t){return e.createTextNode(ce(t))},he=function e(t,r){var n=void 0===t?Object.create(null):t,a=void 0===r?Object.create(null):r,o=function(e){var t=a[e];return void 0!==t?t:a[e]=[""]},i=function(){var e="";for(var t in a){var r=a[t][0];r&&(e+=ce(t)+r)}return e},s={clone:function(){var t=function(e){var t=Object.create(null);for(var r in e)t[r]=O({},e[r]);return t}(n),r=Object.create(null);for(var o in a)r[o]=[a[o][0]];return e(t,r)},css:i,getIds:fe(a),hasNameForId:ae(n),insertMarker:o,insertRules:function(e,t,r){o(e)[0]+=t.join(" "),re(n,e,r)},removeRules:function(e){var t=a[e];void 0!==t&&(t[0]="",ne(n,e))},sealed:!1,styleTag:null,toElement:de(i,n),toHTML:ue(i,n)};return s},me=function(e,t,r,n,a){if(_&&!r){var o=function(e,t,r){var n=document;e?n=e.ownerDocument:t&&(n=t.ownerDocument);var a=n.createElement("style");a.setAttribute(D,""),a.setAttribute($,"4.4.1");var o=te();if(o&&a.setAttribute("nonce",o),a.appendChild(n.createTextNode("")),e&&!t)e.appendChild(a);else{if(!t||!e||!t.parentNode)throw new H(6);t.parentNode.insertBefore(a,r?t:t.nextSibling)}return a}(e,t,n);return F?function(e,t){var r=Object.create(null),n=Object.create(null),a=void 0!==t,o=!1,i=function(t){var a=n[t];return void 0!==a?a:(n[t]=pe(e.ownerDocument,t),e.appendChild(n[t]),r[t]=Object.create(null),n[t])},s=function(){var e="";for(var t in n)e+=n[t].data;return e};return{clone:function(){throw new H(5)},css:s,getIds:fe(n),hasNameForId:ae(r),insertMarker:i,insertRules:function(e,n,s){for(var c=i(e),l=[],u=n.length,d=0;d0&&(o=!0,t().insertRules(e+"-import",l))},removeRules:function(i){var s=n[i];if(void 0!==s){var c=pe(e.ownerDocument,i);e.replaceChild(c,s),n[i]=c,ne(r,i),a&&o&&t().removeRules(i+"-import")}},sealed:!1,styleTag:e,toElement:de(s,r),toHTML:ue(s,r)}}(o,a):function(e,t){var r=Object.create(null),n=Object.create(null),a=[],o=void 0!==t,i=!1,s=function(e){var t=n[e];return void 0!==t?t:(n[e]=a.length,a.push(0),ne(r,e),n[e])},c=function(){var t=ie(e).cssRules,r="";for(var o in n){r+=ce(o);for(var i=n[o],s=le(a,i),c=s-a[i];c0&&(i=!0,t().insertRules(n+"-import",h)),a[u]+=p,re(r,n,l)},removeRules:function(s){var c=n[s];if(void 0!==c&&!1!==e.isConnected){var l=a[c];!function(e,t,r){for(var n=t-r,a=t;a>n;a-=1)e.deleteRule(a)}(ie(e),le(a,c)-1,l),a[c]=0,ne(r,s),o&&i&&t().removeRules(s+"-import")}},sealed:!1,styleTag:e,toElement:de(c,r),toHTML:ue(c,r)}}(o,a)}return he()},ge=/\s+/,ve=void 0;ve=_?F?40:1e3:-1;var ye=0,be=void 0,ke=function(){function e(){var t=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_?document.head:null,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];x(this,e),this.getImportRuleTag=function(){var e=t.importRuleTag;if(void 0!==e)return e;var r=t.tags[0];return t.importRuleTag=me(t.target,r?r.styleTag:null,t.forceServer,!0)},ye+=1,this.id=ye,this.forceServer=n,this.target=n?null:r,this.tagMap={},this.deferred={},this.rehydratedNames={},this.ignoreRehydratedNames={},this.tags=[],this.capacity=1,this.clones=[]}return e.prototype.rehydrate=function(){if(!_||this.forceServer)return this;var e=[],t=[],r=!1,n=document.querySelectorAll("style["+D+"]["+$+'="4.4.1"]'),a=n.length;if(!a)return this;for(var o=0;o0&&void 0!==arguments[0]&&arguments[0]).rehydrate()},e.prototype.clone=function(){var t=new e(this.target,this.forceServer);return this.clones.push(t),t.tags=this.tags.map((function(e){for(var r=e.getIds(),n=e.clone(),a=0;a1?t-1:0),n=1;n2&&void 0!==arguments[2]?arguments[2]:E;if(!(0,l.isValidElementType)(t))throw new H(1,String(t));var n=function(){return e(t,r,je.apply(void 0,arguments))};return n.withConfig=function(n){return Te(e,t,O({},r,n))},n.attrs=function(n){return Te(e,t,O({},r,{attrs:Array.prototype.concat(r.attrs,n).filter(Boolean)}))},n}function Re(e){for(var t,r=0|e.length,n=0|r,a=0;r>=4;)t=1540483477*(65535&(t=255&e.charCodeAt(a)|(255&e.charCodeAt(++a))<<8|(255&e.charCodeAt(++a))<<16|(255&e.charCodeAt(++a))<<24))+((1540483477*(t>>>16)&65535)<<16),n=1540483477*(65535&n)+((1540483477*(n>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),r-=4,++a;switch(r){case 3:n^=(255&e.charCodeAt(a+2))<<16;case 2:n^=(255&e.charCodeAt(a+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(a)))+((1540483477*(n>>>16)&65535)<<16)}return((n=1540483477*(65535&(n^=n>>>13))+((1540483477*(n>>>16)&65535)<<16))^n>>>15)>>>0}var Ee=52,Pe=function(e){return String.fromCharCode(e+(e>25?39:97))};function Ne(e){var t="",r=void 0;for(r=e;r>Ee;r=Math.floor(r/Ee))t=Pe(r%Ee)+t;return Pe(r%Ee)+t}function Me(e,t){for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:E,n=!!r&&e.theme===r.theme;return e.theme&&!n?e.theme:t||r.theme},Fe=/[[\].#*$><+~=|^:(),"'`-]+/g,He=/(^-|-$)/g;function ze(e){return e.replace(Fe,"-").replace(He,"")}function Be(e){return"string"==typeof e&&!0}var Ge={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},We={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},qe=((De={})[l.ForwardRef]={$$typeof:!0,render:!0},De),Ue=Object.defineProperty,Ye=Object.getOwnPropertyNames,Ve=Object.getOwnPropertySymbols,Xe=void 0===Ve?function(){return[]}:Ve,Ze=Object.getOwnPropertyDescriptor,Ke=Object.getPrototypeOf,Je=Object.prototype,Qe=Array.prototype;function et(e,t,r){if("string"!=typeof t){var n=Ke(t);n&&n!==Je&&et(e,n,r);for(var a=Qe.concat(Ye(t),Xe(t)),o=qe[e.$$typeof]||Ge,i=qe[t.$$typeof]||Ge,s=a.length,c=void 0,l=void 0;s--;)if(l=a[s],!(We[l]||r&&r[l]||i&&i[l]||o&&o[l])&&(c=Ze(t,l)))try{Ue(e,l,c)}catch(u){}return e}return e}var tt=(0,s.createContext)(),rt=tt.Consumer,nt=(function(e){function t(r){x(this,t);var n=j(this,e.call(this,r));return n.getContext=d(n.getContext.bind(n)),n.renderInner=n.renderInner.bind(n),n}I(t,e),t.prototype.render=function(){return this.props.children?s.createElement(tt.Consumer,null,this.renderInner):null},t.prototype.renderInner=function(e){var t=this.getContext(this.props.theme,e);return s.createElement(tt.Provider,{value:t},this.props.children)},t.prototype.getTheme=function(e,t){if(P(e))return e(t);if(null===e||Array.isArray(e)||"object"!==(void 0===e?"undefined":A(e)))throw new H(8);return O({},t,e)},t.prototype.getContext=function(e,t){return this.getTheme(e,t)}}(s.Component),function(){function e(){x(this,e),this.masterSheet=ke.master,this.instance=this.masterSheet.clone(),this.sealed=!1}e.prototype.seal=function(){if(!this.sealed){var e=this.masterSheet.clones.indexOf(this.instance);this.masterSheet.clones.splice(e,1),this.sealed=!0}},e.prototype.collectStyles=function(e){if(this.sealed)throw new H(2);return s.createElement(ot,{sheet:this.instance},e)},e.prototype.getStyleTags=function(){return this.seal(),this.instance.toHTML()},e.prototype.getStyleElement=function(){return this.seal(),this.instance.toReactElements()},e.prototype.interleaveWithNodeStream=function(e){throw new H(3)}}(),(0,s.createContext)()),at=nt.Consumer,ot=function(e){function t(r){x(this,t);var n=j(this,e.call(this,r));return n.getContext=d(n.getContext),n}return I(t,e),t.prototype.getContext=function(e,t){if(e)return e;if(t)return new ke(t);throw new H(4)},t.prototype.render=function(){var e=this.props,t=e.children,r=e.sheet,n=e.target;return s.createElement(nt.Provider,{value:this.getContext(r,n)},t)},t}(s.Component),it={};var st=function(e){function t(){x(this,t);var r=j(this,e.call(this));return r.attrs={},r.renderOuter=r.renderOuter.bind(r),r.renderInner=r.renderInner.bind(r),r}return I(t,e),t.prototype.render=function(){return s.createElement(at,null,this.renderOuter)},t.prototype.renderOuter=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ke.master;return this.styleSheet=e,this.props.forwardedComponent.componentStyle.isStatic?this.renderInner():s.createElement(rt,null,this.renderInner)},t.prototype.renderInner=function(e){var t=this.props.forwardedComponent,r=t.componentStyle,n=t.defaultProps,a=(t.displayName,t.foldedComponentIds),o=t.styledComponentId,i=t.target,c=void 0;c=r.isStatic?this.generateAndInjectStyles(E,this.props):this.generateAndInjectStyles(_e(this.props,e,n)||E,this.props);var l=this.props.as||this.attrs.as||i,u=Be(l),d={},f=O({},this.props,this.attrs),h=void 0;for(h in f)"forwardedComponent"!==h&&"as"!==h&&("forwardedRef"===h?d.ref=f[h]:"forwardedAs"===h?d.as=f[h]:u&&!p(h)||(d[h]=f[h]));return this.props.style&&this.attrs.style&&(d.style=O({},this.attrs.style,this.props.style)),d.className=Array.prototype.concat(a,o,c!==o?c:null,this.props.className,this.attrs.className).filter(Boolean).join(" "),(0,s.createElement)(l,d)},t.prototype.buildExecutionContext=function(e,t,r){var n=this,a=O({},t,{theme:e});return r.length?(this.attrs={},r.forEach((function(e){var t,r=e,o=!1,i=void 0,s=void 0;for(s in P(r)&&(r=r(a),o=!0),r)i=r[s],o||!P(i)||(t=i)&&t.prototype&&t.prototype.isReactComponent||M(i)||(i=i(a)),n.attrs[s]=i,a[s]=i})),a):a},t.prototype.generateAndInjectStyles=function(e,t){var r=t.forwardedComponent,n=r.attrs,a=r.componentStyle;r.warnTooManyClasses;return a.isStatic&&!n.length?a.generateAndInjectStyles(E,this.styleSheet):a.generateAndInjectStyles(this.buildExecutionContext(e,t,n),this.styleSheet)},t}(s.Component);function ct(e,t,r){var n=M(e),a=!Be(e),o=t.displayName,i=void 0===o?function(e){return Be(e)?"styled."+e:"Styled("+N(e)+")"}(e):o,c=t.componentId,l=void 0===c?function(e,t,r){var n="string"!=typeof t?"sc":ze(t),a=(it[n]||0)+1;it[n]=a;var o=n+"-"+e.generateName(n+a);return r?r+"-"+o:o}(Le,t.displayName,t.parentComponentId):c,u=t.ParentComponent,d=void 0===u?st:u,f=t.attrs,p=void 0===f?R:f,h=t.displayName&&t.componentId?ze(t.displayName)+"-"+t.componentId:t.componentId||l,m=n&&e.attrs?Array.prototype.concat(e.attrs,p).filter(Boolean):p,g=new Le(n?e.componentStyle.rules.concat(r):r,m,h),v=void 0,y=function(e,t){return s.createElement(d,O({},e,{forwardedComponent:v,forwardedRef:t}))};return y.displayName=i,(v=s.forwardRef(y)).displayName=i,v.attrs=m,v.componentStyle=g,v.foldedComponentIds=n?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):R,v.styledComponentId=h,v.target=n?e.target:e,v.withComponent=function(e){var n=t.componentId,a=function(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}(t,["componentId"]),o=n&&n+"-"+(Be(e)?e:ze(N(e)));return ct(e,O({},a,{attrs:m,componentId:o,ParentComponent:d}),r)},Object.defineProperty(v,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=n?C(e.defaultProps,t):t}}),v.toString=function(){return"."+v.styledComponentId},a&&et(v,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,styledComponentId:!0,target:!0,withComponent:!0}),v}var lt=function(e){return Te(ct,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){lt[e]=lt(e)}));!function(){function e(t,r){x(this,e),this.rules=t,this.componentId=r,this.isStatic=Me(t,R),ke.master.hasId(r)||ke.master.deferredInject(r,[])}e.prototype.createStyles=function(e,t){var r=ee(Ie(this.rules,e,t),"");t.inject(this.componentId,r)},e.prototype.removeStyles=function(e){var t=this.componentId;e.hasId(t)&&e.remove(t)},e.prototype.renderStyles=function(e,t){this.removeStyles(t),this.createStyles(e,t)}}();_&&(window.scCGSHMRCache={});const ut=lt},1427:e=>{e.exports=function(){"use strict";return function(e){var t="/*|*/",r=t+"}";function n(t){if(t)try{e(t+"}")}catch(r){}}return function(a,o,i,s,c,l,u,d,f,p){switch(a){case 1:if(0===f&&64===o.charCodeAt(0))return e(o+";"),"";break;case 2:if(0===d)return o+t;break;case 3:switch(d){case 102:case 112:return e(i[0]+o),"";default:return o+(0===p?t:"")}case-2:o.split(r).forEach(n)}}}}()},1746:e=>{e.exports=function e(t){"use strict";var r=/^\0+/g,n=/[\0\r\f]/g,a=/: */g,o=/zoo|gra/,i=/([,: ])(transform)/g,s=/,+\s*(?![^(]*[)])/g,c=/ +\s*(?![^(]*[)])/g,l=/ *[\0] */g,u=/,\r+?/g,d=/([\t\r\n ])*\f?&/g,f=/:global\(((?:[^\(\)\[\]]*|\[.*\]|\([^\(\)]*\))*)\)/g,p=/\W+/g,h=/@(k\w+)\s*(\S*)\s*/,m=/::(place)/g,g=/:(read-only)/g,v=/\s+(?=[{\];=:>])/g,y=/([[}=:>])\s+/g,b=/(\{[^{]+?);(?=\})/g,k=/\s{2,}/g,C=/([^\(])(:+) */g,w=/[svh]\w+-[tblr]{2}/,A=/\(\s*(.*)\s*\)/g,x=/([\s\S]*?);/g,S=/-self|flex-/g,O=/[^]*?(:[rp][el]a[\w-]+)[^]*/,I=/stretch|:\s*\w+\-(?:conte|avail)/,j=/([^-])(image-set\()/,T="-webkit-",R="-moz-",E="-ms-",P=59,N=125,M=123,D=40,$=41,L=91,_=93,F=10,H=13,z=9,B=64,G=32,W=38,q=45,U=95,Y=42,V=44,X=58,Z=39,K=34,J=47,Q=62,ee=43,te=126,re=0,ne=12,ae=11,oe=107,ie=109,se=115,ce=112,le=111,ue=105,de=99,fe=100,pe=112,he=1,me=1,ge=0,ve=1,ye=1,be=1,ke=0,Ce=0,we=0,Ae=[],xe=[],Se=0,Oe=null,Ie=-2,je=-1,Te=0,Re=1,Ee=2,Pe=3,Ne=0,Me=1,De="",$e="",Le="";function _e(e,t,a,o,i){for(var s,c,u=0,d=0,f=0,p=0,v=0,y=0,b=0,k=0,w=0,x=0,S=0,O=0,I=0,j=0,U=0,ke=0,xe=0,Oe=0,Ie=0,je=a.length,He=je-1,Ue="",Ye="",Ve="",Xe="",Ze="",Ke="";U0&&(Ye=Ye.replace(n,"")),Ye.trim().length>0)){switch(b){case G:case z:case P:case H:case F:break;default:Ye+=a.charAt(U)}b=P}if(1===xe)switch(b){case M:case N:case P:case K:case Z:case D:case $:case V:xe=0;case z:case H:case F:case G:break;default:for(xe=0,Ie=U,v=b,U--,b=P;Ie0&&(++U,b=v);case M:Ie=je}}switch(b){case M:for(v=(Ye=Ye.trim()).charCodeAt(0),S=1,Ie=++U;U0&&(Ye=Ye.replace(n,"")),y=Ye.charCodeAt(1)){case fe:case ie:case se:case q:s=t;break;default:s=Ae}if(Ie=(Ve=_e(t,s,Ve,y,i+1)).length,we>0&&0===Ie&&(Ie=Ye.length),Se>0&&(s=Fe(Ae,Ye,Oe),c=We(Pe,Ve,s,t,me,he,Ie,y,i,o),Ye=s.join(""),void 0!==c&&0===(Ie=(Ve=c.trim()).length)&&(y=0,Ve="")),Ie>0)switch(y){case se:Ye=Ye.replace(A,Ge);case fe:case ie:case q:Ve=Ye+"{"+Ve+"}";break;case oe:Ve=(Ye=Ye.replace(h,"$1 $2"+(Me>0?De:"")))+"{"+Ve+"}",Ve=1===ye||2===ye&&Be("@"+Ve,3)?"@"+T+Ve+"@"+Ve:"@"+Ve;break;default:Ve=Ye+Ve,o===pe&&(Xe+=Ve,Ve="")}else Ve=""}else Ve=_e(t,Fe(t,Ye,Oe),Ve,o,i+1);Ze+=Ve,O=0,xe=0,j=0,ke=0,Oe=0,I=0,Ye="",Ve="",b=a.charCodeAt(++U);break;case N:case P:if((Ie=(Ye=(ke>0?Ye.replace(n,""):Ye).trim()).length)>1)switch(0===j&&((v=Ye.charCodeAt(0))===q||v>96&&v<123)&&(Ie=(Ye=Ye.replace(" ",":")).length),Se>0&&void 0!==(c=We(Re,Ye,t,e,me,he,Xe.length,o,i,o))&&0===(Ie=(Ye=c.trim()).length)&&(Ye="\0\0"),v=Ye.charCodeAt(0),y=Ye.charCodeAt(1),v){case re:break;case B:if(y===ue||y===de){Ke+=Ye+a.charAt(U);break}default:if(Ye.charCodeAt(Ie-1)===X)break;Xe+=ze(Ye,v,y,Ye.charCodeAt(2))}O=0,xe=0,j=0,ke=0,Oe=0,Ye="",b=a.charCodeAt(++U)}}switch(b){case H:case F:if(d+p+f+u+Ce===0)switch(x){case $:case Z:case K:case B:case te:case Q:case Y:case ee:case J:case q:case X:case V:case P:case M:case N:break;default:j>0&&(xe=1)}d===J?d=0:ve+O===0&&o!==oe&&Ye.length>0&&(ke=1,Ye+="\0"),Se*Ne>0&&We(Te,Ye,t,e,me,he,Xe.length,o,i,o),he=1,me++;break;case P:case N:if(d+p+f+u===0){he++;break}default:switch(he++,Ue=a.charAt(U),b){case z:case G:if(p+u+d===0)switch(k){case V:case X:case z:case G:Ue="";break;default:b!==G&&(Ue=" ")}break;case re:Ue="\\0";break;case ne:Ue="\\f";break;case ae:Ue="\\v";break;case W:p+d+u===0&&ve>0&&(Oe=1,ke=1,Ue="\f"+Ue);break;case 108:if(p+d+u+ge===0&&j>0)switch(U-j){case 2:k===ce&&a.charCodeAt(U-3)===X&&(ge=k);case 8:w===le&&(ge=w)}break;case X:p+d+u===0&&(j=U);break;case V:d+f+p+u===0&&(ke=1,Ue+="\r");break;case K:case Z:0===d&&(p=p===b?0:0===p?b:p);break;case L:p+d+f===0&&u++;break;case _:p+d+f===0&&u--;break;case $:p+d+u===0&&f--;break;case D:p+d+u===0&&(0===O&&(2*k+3*w==533||(S=0,O=1)),f++);break;case B:d+f+p+u+j+I===0&&(I=1);break;case Y:case J:if(p+u+f>0)break;switch(d){case 0:switch(2*b+3*a.charCodeAt(U+1)){case 235:d=J;break;case 220:Ie=U,d=Y}break;case Y:b===J&&k===Y&&Ie+2!==U&&(33===a.charCodeAt(Ie+2)&&(Xe+=a.substring(Ie,U+1)),Ue="",d=0)}}if(0===d){if(ve+p+u+I===0&&o!==oe&&b!==P)switch(b){case V:case te:case Q:case ee:case $:case D:if(0===O){switch(k){case z:case G:case F:case H:Ue+="\0";break;default:Ue="\0"+Ue+(b===V?"":"\0")}ke=1}else switch(b){case D:j+7===U&&108===k&&(j=0),O=++S;break;case $:0==(O=--S)&&(ke=1,Ue+="\0")}break;case z:case G:switch(k){case re:case M:case N:case P:case V:case ne:case z:case G:case F:case H:break;default:0===O&&(ke=1,Ue+="\0")}}Ye+=Ue,b!==G&&b!==z&&(x=b)}}w=k,k=b,U++}if(Ie=Xe.length,we>0&&0===Ie&&0===Ze.length&&0===t[0].length==0&&(o!==ie||1===t.length&&(ve>0?$e:Le)===t[0])&&(Ie=t.join(",").length+2),Ie>0){if(s=0===ve&&o!==oe?function(e){for(var t,r,a=0,o=e.length,i=Array(o);a1)){if(f=c.charCodeAt(c.length-1),p=r.charCodeAt(0),t="",0!==u)switch(f){case Y:case te:case Q:case ee:case G:case D:break;default:t=" "}switch(p){case W:r=t+$e;case te:case Q:case ee:case G:case $:case D:break;case L:r=t+r+$e;break;case X:switch(2*r.charCodeAt(1)+3*r.charCodeAt(2)){case 530:if(be>0){r=t+r.substring(8,d-1);break}default:(u<1||s[u-1].length<1)&&(r=t+$e+r)}break;case V:t="";default:r=d>1&&r.indexOf(":")>0?t+r.replace(C,"$1"+$e+"$2"):t+r+$e}c+=r}i[a]=c.replace(n,"").trim()}return i}(t):t,Se>0&&void 0!==(c=We(Ee,Xe,s,e,me,he,Ie,o,i,o))&&0===(Xe=c).length)return Ke+Xe+Ze;if(Xe=s.join(",")+"{"+Xe+"}",ye*ge!=0){switch(2!==ye||Be(Xe,2)||(ge=0),ge){case le:Xe=Xe.replace(g,":"+R+"$1")+Xe;break;case ce:Xe=Xe.replace(m,"::"+T+"input-$1")+Xe.replace(m,"::"+R+"$1")+Xe.replace(m,":"+E+"input-$1")+Xe}ge=0}}return Ke+Xe+Ze}function Fe(e,t,r){var n=t.trim().split(u),a=n,o=n.length,i=e.length;switch(i){case 0:case 1:for(var s=0,c=0===i?"":e[0]+" ";s0&&ve>0)return a.replace(f,"$1").replace(d,"$1"+Le);default:if(r*ve>0&&a.indexOf("\f")>0)return a.replace(d,(e.charCodeAt(0)===X?"":"$1")+e.trim())}return e+a}function ze(e,t,r,n){var l,u=0,d=e+";",f=2*t+3*r+4*n;if(944===f)return function(e){var t=e.length,r=e.indexOf(":",9)+1,n=e.substring(0,r).trim(),a=e.substring(r,t-1).trim();switch(e.charCodeAt(9)*Me){case 0:break;case q:if(110!==e.charCodeAt(10))break;default:var o=a.split((a="",s)),i=0;for(r=0,t=o.length;iB&&d<90||d>96&&d<123||d===U||d===q&&l.charCodeAt(1)!==q)&&isNaN(parseFloat(l))+(-1!==l.indexOf("("))===1)switch(l){case"infinite":case"alternate":case"backwards":case"running":case"normal":case"forwards":case"both":case"none":case"linear":case"ease":case"ease-in":case"ease-out":case"ease-in-out":case"paused":case"reverse":case"alternate-reverse":case"inherit":case"initial":case"unset":case"step-start":case"step-end":break;default:l+=De}u[r++]=l}a+=(0===i?"":",")+u.join(" ")}}return a=n+a+";",1===ye||2===ye&&Be(a,1)?T+a+a:a}(d);if(0===ye||2===ye&&!Be(d,1))return d;switch(f){case 1015:return 97===d.charCodeAt(10)?T+d+d:d;case 951:return 116===d.charCodeAt(3)?T+d+d:d;case 963:return 110===d.charCodeAt(5)?T+d+d:d;case 1009:if(100!==d.charCodeAt(4))break;case 969:case 942:return T+d+d;case 978:return T+d+R+d+d;case 1019:case 983:return T+d+R+d+E+d+d;case 883:return d.charCodeAt(8)===q?T+d+d:d.indexOf("image-set(",11)>0?d.replace(j,"$1"+T+"$2")+d:d;case 932:if(d.charCodeAt(4)===q)switch(d.charCodeAt(5)){case 103:return T+"box-"+d.replace("-grow","")+T+d+E+d.replace("grow","positive")+d;case 115:return T+d+E+d.replace("shrink","negative")+d;case 98:return T+d+E+d.replace("basis","preferred-size")+d}return T+d+E+d+d;case 964:return T+d+E+"flex-"+d+d;case 1023:if(99!==d.charCodeAt(8))break;return l=d.substring(d.indexOf(":",15)).replace("flex-","").replace("space-between","justify"),T+"box-pack"+l+T+d+E+"flex-pack"+l+d;case 1005:return o.test(d)?d.replace(a,":"+T)+d.replace(a,":"+R)+d:d;case 1e3:switch(u=(l=d.substring(13).trim()).indexOf("-")+1,l.charCodeAt(0)+l.charCodeAt(u)){case 226:l=d.replace(w,"tb");break;case 232:l=d.replace(w,"tb-rl");break;case 220:l=d.replace(w,"lr");break;default:return d}return T+d+E+l+d;case 1017:if(-1===d.indexOf("sticky",9))return d;case 975:switch(u=(d=e).length-10,f=(l=(33===d.charCodeAt(u)?d.substring(0,u):d).substring(e.indexOf(":",7)+1).trim()).charCodeAt(0)+(0|l.charCodeAt(7))){case 203:if(l.charCodeAt(8)<111)break;case 115:d=d.replace(l,T+l)+";"+d;break;case 207:case 102:d=d.replace(l,T+(f>102?"inline-":"")+"box")+";"+d.replace(l,T+l)+";"+d.replace(l,E+l+"box")+";"+d}return d+";";case 938:if(d.charCodeAt(5)===q)switch(d.charCodeAt(6)){case 105:return l=d.replace("-items",""),T+d+T+"box-"+l+E+"flex-"+l+d;case 115:return T+d+E+"flex-item-"+d.replace(S,"")+d;default:return T+d+E+"flex-line-pack"+d.replace("align-content","").replace(S,"")+d}break;case 973:case 989:if(d.charCodeAt(3)!==q||122===d.charCodeAt(4))break;case 931:case 953:if(!0===I.test(e))return 115===(l=e.substring(e.indexOf(":")+1)).charCodeAt(0)?ze(e.replace("stretch","fill-available"),t,r,n).replace(":fill-available",":stretch"):d.replace(l,T+l)+d.replace(l,R+l.replace("fill-",""))+d;break;case 962:if(d=T+d+(102===d.charCodeAt(5)?E+d:"")+d,r+n===211&&105===d.charCodeAt(13)&&d.indexOf("transform",10)>0)return d.substring(0,d.indexOf(";",27)+1).replace(i,"$1"+T+"$2")+d}return d}function Be(e,t){var r=e.indexOf(1===t?":":"{"),n=e.substring(0,3!==t?r:10),a=e.substring(r+1,e.length-1);return Oe(2!==t?n:n.replace(O,"$1"),a,t)}function Ge(e,t){var r=ze(t,t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2));return r!==t+";"?r.replace(x," or ($1)").substring(4):"("+t+")"}function We(e,t,r,n,a,o,i,s,c,l){for(var u,d=0,f=t;d0&&(De=a.replace(p,o===L?"":"-")),o=1,1===ve?Le=a:$e=a;var i,s=[Le];Se>0&&void 0!==(i=We(je,r,s,s,me,he,0,0,0,0))&&"string"==typeof i&&(r=i);var c=_e(Ae,s,r,0,0);return Se>0&&void 0!==(i=We(Ie,c,s,s,me,he,c.length,0,0,0))&&"string"!=typeof(c=i)&&(o=0),De="",Le="",$e="",ge=0,me=1,he=1,ke*o==0?c:c.replace(n,"").replace(v,"").replace(y,"$1").replace(b,"$1").replace(k," ")}return Ye.use=function e(t){switch(t){case void 0:case null:Se=xe.length=0;break;default:if("function"==typeof t)xe[Se++]=t;else if("object"==typeof t)for(var r=0,n=t.length;r1)return 1;for(var i=t,r=0;r<8;r++){var n=this.sampleCurveX(i)-t;if(Math.abs(n)n?o=i:a=i,i=.5*(a-o)+o;return i},solve:function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))}},o}(),h=i(c);let u,d;function p(){return null==u&&(u="undefined"!=typeof OffscreenCanvas&&new OffscreenCanvas(1,1).getContext("2d")&&"function"==typeof createImageBitmap),u}function f(){if(null==d&&(d=!1,p())){const t=5,e=new OffscreenCanvas(t,t).getContext("2d",{willReadFrequently:!0});if(e){for(let r=0;r=1)return 1;const e=t*t,i=e*t;return 4*(t<.5?i:3*(t-e)+i-.75)}function z(t,e,i,r){const n=new h(t,e,i,r);return t=>n.solve(t)}const k=z(.25,.1,.25,1);function D(t,e,i){return Math.min(i,Math.max(e,t))}function R(t,e,i){const r=i-e,n=((t-e)%r+r)%r+e;return n===e?i:n}function L(t,...e){for(const i of e)for(const e in i)t[e]=i[e];return t}let F=1;function B(t,e,i){const r={};for(const n in t)r[n]=e.call(this,t[n],n,t);return r}function O(t,e,i){const r={};for(const n in t)e.call(this,t[n],n,t)&&(r[n]=t[n]);return r}function j(t){return Array.isArray(t)?t.map(j):"object"==typeof t&&t?B(t,j):t}const V={};function N(t){V[t]||("undefined"!=typeof console&&console.warn(t),V[t]=!0)}function U(t,e,i){return(i.y-t.y)*(e.x-t.x)>(e.y-t.y)*(i.x-t.x)}function Z(t){return"undefined"!=typeof WorkerGlobalScope&&void 0!==t&&t instanceof WorkerGlobalScope}let G=null;function $(t){return"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap}const q="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";function H(t,i,r,n,s){return e(this,void 0,void 0,(function*(){if("undefined"==typeof VideoFrame)throw new Error("VideoFrame not supported");const e=new VideoFrame(t,{timestamp:0});try{const o=null==e?void 0:e.format;if(!o||!o.startsWith("BGR")&&!o.startsWith("RGB"))throw new Error(`Unrecognized format ${o}`);const a=o.startsWith("BGR"),l=new Uint8ClampedArray(n*s*4);if(yield e.copyTo(l,function(t,e,i,r,n){const s=4*Math.max(1,0),o=(Math.max(0,i)-i)*r*4+s,a=4*r,l=Math.max(0,e),c=Math.max(0,i);return{rect:{x:l,y:c,width:Math.min(t.width,e+r)-l,height:Math.min(t.height,i+n)-c},layout:[{offset:o,stride:a}]}}(t,i,r,n,s)),a)for(let t=0;tZ(self)?self.worker&&self.worker.referrer:("blob:"===window.location.protocol?window.parent:window).location.href,nt=function(t,i){if(/:\/\//.test(t.url)&&!/^https?:|^file:/.test(t.url)){const e=tt(t.url);if(e)return e(t,i);if(Z(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:"GR",data:t,targetMapId:et},i)}if(!(/^file:/.test(r=t.url)||/^file:/.test(rt())&&!/^\w+:/.test(r))){if(fetch&&Request&&AbortController&&Object.prototype.hasOwnProperty.call(Request.prototype,"signal"))return function(t,i){return e(this,void 0,void 0,(function*(){const e=new Request(t.url,{method:t.method||"GET",body:t.body,credentials:t.credentials,headers:t.headers,cache:t.cache,referrer:rt(),signal:i.signal});let r,n;"json"!==t.type||e.headers.has("Accept")||e.headers.set("Accept","application/json");try{r=yield fetch(e)}catch(e){throw new it(0,e.message,t.url,new Blob)}if(!r.ok){const e=yield r.blob();throw new it(r.status,r.statusText,t.url,e)}n="arrayBuffer"===t.type||"image"===t.type?r.arrayBuffer():"json"===t.type?r.json():r.text();const s=yield n;if(i.signal.aborted)throw J();return{data:s,cacheControl:r.headers.get("Cache-Control"),expires:r.headers.get("Expires")}}))}(t,i);if(Z(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:"GR",data:t,mustQueue:!0,targetMapId:et},i)}var r;return function(t,e){return new Promise(((i,r)=>{var n;const s=new XMLHttpRequest;s.open(t.method||"GET",t.url,!0),"arrayBuffer"!==t.type&&"image"!==t.type||(s.responseType="arraybuffer");for(const e in t.headers)s.setRequestHeader(e,t.headers[e]);"json"===t.type&&(s.responseType="text",(null===(n=t.headers)||void 0===n?void 0:n.Accept)||s.setRequestHeader("Accept","application/json")),s.withCredentials="include"===t.credentials,s.onerror=()=>{r(new Error(s.statusText))},s.onload=()=>{if(!e.signal.aborted)if((s.status>=200&&s.status<300||0===s.status)&&null!==s.response){let e=s.response;if("json"===t.type)try{e=JSON.parse(s.response)}catch(t){return void r(t)}i({data:e,cacheControl:s.getResponseHeader("Cache-Control"),expires:s.getResponseHeader("Expires")})}else{const e=new Blob([s.response],{type:s.getResponseHeader("Content-Type")});r(new it(s.status,s.statusText,t.url,e))}},e.signal.addEventListener("abort",(()=>{s.abort(),r(J())})),s.send(t.body)}))}(t,i)};function st(t){if(!t||t.indexOf("://")<=0||0===t.indexOf("data:image/")||0===t.indexOf("blob:"))return!0;const e=new URL(t),i=window.location;return e.protocol===i.protocol&&e.host===i.host}function ot(t,e,i){i[t]&&-1!==i[t].indexOf(e)||(i[t]=i[t]||[],i[t].push(e))}function at(t,e,i){if(i&&i[t]){const r=i[t].indexOf(e);-1!==r&&i[t].splice(r,1)}}class lt{constructor(t,e={}){L(this,e),this.type=t}}class ct extends lt{constructor(t,e={}){super("error",L({error:t},e))}}class ht{on(t,e){return this._listeners=this._listeners||{},ot(t,e,this._listeners),{unsubscribe:()=>{this.off(t,e)}}}off(t,e){return at(t,e,this._listeners),at(t,e,this._oneTimeListeners),this}once(t,e){return e?(this._oneTimeListeners=this._oneTimeListeners||{},ot(t,e,this._oneTimeListeners),this):new Promise((e=>this.once(t,e)))}fire(t,e){"string"==typeof t&&(t=new lt(t,e||{}));const i=t.type;if(this.listens(i)){t.target=this;const e=this._listeners&&this._listeners[i]?this._listeners[i].slice():[];for(const i of e)i.call(this,t);const r=this._oneTimeListeners&&this._oneTimeListeners[i]?this._oneTimeListeners[i].slice():[];for(const s of r)at(i,s,this._oneTimeListeners),s.call(this,t);const n=this._eventedParent;n&&(L(t,"function"==typeof this._eventedParentData?this._eventedParentData():this._eventedParentData),n.fire(t))}else t instanceof ct&&console.error(t.error);return this}listens(t){return this._listeners&&this._listeners[t]&&this._listeners[t].length>0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t)}setEventedParent(t,e){return this._eventedParent=t,this._eventedParentData=e,this}}var ut={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},centerAltitude:{type:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},roll:{type:"number",default:0,units:"degrees"},light:{type:"light"},sky:{type:"sky"},projection:{type:"projection"},terrain:{type:"terrain"},sources:{required:!0,type:"sources"},sprite:{type:"sprite"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],source_vector:{type:{required:!0,type:"enum",values:{vector:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},attribution:{type:"string"},promoteId:{type:"promoteId"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster:{type:{required:!0,type:"enum",values:{raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},attribution:{type:"string"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},attribution:{type:"string"},encoding:{type:"enum",values:{terrarium:{},mapbox:{},custom:{}},default:"mapbox"},redFactor:{type:"number",default:1},blueFactor:{type:"number",default:1},greenFactor:{type:"number",default:1},baseShift:{type:"number",default:0},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{required:!0,type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},filter:{type:"*"},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterMinPoints:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_fill:{"fill-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_circle:{"circle-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_line:{"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{},line:{},"line-center":{}},default:"point",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image",{"!":"icon-overlap"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-overlap":{type:"enum",values:{never:{},always:{},cooperative:{}},requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{type:"enum",values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"padding",default:[2],units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},"viewport-glyph":{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-variable-anchor-offset":{type:"variableAnchorOffsetCollection",requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field",{"!":"text-variable-anchor"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",requires:["text-field",{"symbol-placement":["line","line-center"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field",{"!":"text-overlap"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-overlap":{type:"enum",values:{never:{},always:{},cooperative:{}},requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},filter:{type:"array",value:"*"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"*",minimum:1},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},sky:{"sky-color":{type:"color","property-type":"data-constant",default:"#88C6FC",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-ground-blend":{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-fog-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"sky-horizon-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"atmosphere-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},terrain:{source:{type:"string",required:!0},exaggeration:{type:"number",minimum:0,default:1}},projection:{type:{type:"projectionDefinition",default:"mercator","property-type":"data-constant",transition:!1,expression:{interpolated:!0,parameters:["zoom"]}}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}}};const dt=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function pt(t,e){const i={};for(const r in t)"ref"!==r&&(i[r]=t[r]);return dt.forEach((t=>{t in e&&(i[t]=e[t])})),i}function ft(t,e){if(Array.isArray(t)){if(!Array.isArray(e)||t.length!==e.length)return!1;for(let i=0;i`:"value"===t.itemType.kind?"array":`array<${e}>`}return t.kind}const Ut=[It,Ct,Et,At,zt,kt,Ft,Dt,Vt(Rt),Bt,Ot,jt];function Zt(t,e){if("error"===e.kind)return null;if("array"===t.kind){if("array"===e.kind&&(0===e.N&&"value"===e.itemType.kind||!Zt(t.itemType,e.itemType))&&("number"!=typeof t.N||t.N===e.N))return null}else{if(t.kind===e.kind)return null;if("value"===t.kind)for(const t of Ut)if(!Zt(t,e))return null}return`Expected ${Nt(t)} but found ${Nt(e)} instead.`}function Gt(t,e){return e.some((e=>e.kind===t.kind))}function $t(t,e){return e.some((e=>"null"===e?null===t:"array"===e?Array.isArray(t):"object"===e?t&&!Array.isArray(t)&&"object"==typeof t:e===typeof t))}function qt(t,e){return"array"===t.kind&&"array"===e.kind?t.itemType.kind===e.itemType.kind&&"number"==typeof t.N:t.kind===e.kind}const Ht=.96422,Xt=.82521,Wt=4/29,Kt=6/29,Yt=3*Kt*Kt,Jt=Kt*Kt*Kt,Qt=Math.PI/180,te=180/Math.PI;function ee(t){return(t%=360)<0&&(t+=360),t}function ie([t,e,i,r]){let n,s;const o=ne((.2225045*(t=re(t))+.7168786*(e=re(e))+.0606169*(i=re(i)))/1);t===e&&e===i?n=s=o:(n=ne((.4360747*t+.3850649*e+.1430804*i)/Ht),s=ne((.0139322*t+.0971045*e+.7141733*i)/Xt));const a=116*o-16;return[a<0?0:a,500*(n-o),200*(o-s),r]}function re(t){return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function ne(t){return t>Jt?Math.pow(t,1/3):t/Yt+Wt}function se([t,e,i,r]){let n=(t+16)/116,s=isNaN(e)?n:n+e/500,o=isNaN(i)?n:n-i/200;return n=1*ae(n),s=Ht*ae(s),o=Xt*ae(o),[oe(3.1338561*s-1.6168667*n-.4906146*o),oe(-.9787684*s+1.9161415*n+.033454*o),oe(.0719453*s-.2289914*n+1.4052427*o),r]}function oe(t){return(t=t<=.00304?12.92*t:1.055*Math.pow(t,1/2.4)-.055)<0?0:t>1?1:t}function ae(t){return t>Kt?t*t*t:Yt*(t-Wt)}function le(t){return parseInt(t.padEnd(2,t),16)/255}function ce(t,e){return he(e?t/100:t,0,1)}function he(t,e,i){return Math.min(Math.max(e,t),i)}function ue(t){return!t.some(Number.isNaN)}const de={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};function pe(t,e,i){return t+i*(e-t)}function fe(t,e,i){return t.map(((t,r)=>pe(t,e[r],i)))}class me{constructor(t,e,i,r=1,n=!0){this.r=t,this.g=e,this.b=i,this.a=r,n||(this.r*=r,this.g*=r,this.b*=r,r||this.overwriteGetter("rgb",[t,e,i,r]))}static parse(t){if(t instanceof me)return t;if("string"!=typeof t)return;const e=function(t){if("transparent"===(t=t.toLowerCase().trim()))return[0,0,0,0];const e=de[t];if(e){const[t,i,r]=e;return[t/255,i/255,r/255,1]}if(t.startsWith("#")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(t)){const e=t.length<6?1:2;let i=1;return[le(t.slice(i,i+=e)),le(t.slice(i,i+=e)),le(t.slice(i,i+=e)),le(t.slice(i,i+e)||"ff")]}if(t.startsWith("rgb")){const e=t.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(e){const[t,i,r,n,s,o,a,l,c,h,u,d]=e,p=[n||" ",a||" ",h].join("");if(" "===p||" /"===p||",,"===p||",,,"===p){const t=[r,o,c].join(""),e="%%%"===t?100:""===t?255:0;if(e){const t=[he(+i/e,0,1),he(+s/e,0,1),he(+l/e,0,1),u?ce(+u,d):1];if(ue(t))return t}}return}}const i=t.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(i){const[t,e,r,n,s,o,a,l,c]=i,h=[r||" ",s||" ",a].join("");if(" "===h||" /"===h||",,"===h||",,,"===h){const t=[+e,he(+n,0,100),he(+o,0,100),l?ce(+l,c):1];if(ue(t))return function([t,e,i,r]){function n(r){const n=(r+t/30)%12,s=e*Math.min(i,1-i);return i-s*Math.max(-1,Math.min(n-3,9-n,1))}return t=ee(t),e/=100,i/=100,[n(0),n(8),n(4),r]}(t)}}}(t);return e?new me(...e,!1):void 0}get rgb(){const{r:t,g:e,b:i,a:r}=this,n=r||1/0;return this.overwriteGetter("rgb",[t/n,e/n,i/n,r])}get hcl(){return this.overwriteGetter("hcl",function(t){const[e,i,r,n]=ie(t),s=Math.sqrt(i*i+r*r);return[Math.round(1e4*s)?ee(Math.atan2(r,i)*te):NaN,s,e,n]}(this.rgb))}get lab(){return this.overwriteGetter("lab",ie(this.rgb))}overwriteGetter(t,e){return Object.defineProperty(this,t,{value:e}),e}toString(){const[t,e,i,r]=this.rgb;return`rgba(${[t,e,i].map((t=>Math.round(255*t))).join(",")},${r})`}static interpolate(t,e,i,r="rgb"){switch(r){case"rgb":{const[r,n,s,o]=fe(t.rgb,e.rgb,i);return new me(r,n,s,o,!1)}case"hcl":{const[r,n,s,o]=t.hcl,[a,l,c,h]=e.hcl;let u,d;if(isNaN(r)||isNaN(a))isNaN(r)?isNaN(a)?u=NaN:(u=a,1!==s&&0!==s||(d=l)):(u=r,1!==c&&0!==c||(d=n));else{let t=a-r;a>r&&t>180?t-=360:a180&&(t+=360),u=r+i*t}const[p,f,m,_]=function([t,e,i,r]){return t=isNaN(t)?0:t*Qt,se([i,Math.cos(t)*e,Math.sin(t)*e,r])}([u,null!=d?d:pe(n,l,i),pe(s,c,i),pe(o,h,i)]);return new me(p,f,m,_,!1)}case"lab":{const[r,n,s,o]=se(fe(t.lab,e.lab,i));return new me(r,n,s,o,!1)}}}}me.black=new me(0,0,0,1),me.white=new me(1,1,1,1),me.transparent=new me(0,0,0,0),me.red=new me(1,0,0,1);class _e{constructor(t,e,i){this.sensitivity=t?e?"variant":"case":e?"accent":"base",this.locale=i,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(t,e){return this.collator.compare(t,e)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class ge{constructor(t,e,i,r,n){this.text=t,this.image=e,this.scale=i,this.fontStack=r,this.textColor=n}}class ye{constructor(t){this.sections=t}static fromString(t){return new ye([new ge(t,null,null,null,null)])}isEmpty(){return 0===this.sections.length||!this.sections.some((t=>0!==t.text.length||t.image&&0!==t.image.name.length))}static factory(t){return t instanceof ye?t:ye.fromString(t)}toString(){return 0===this.sections.length?"":this.sections.map((t=>t.text)).join("")}}class xe{constructor(t){this.values=t.slice()}static parse(t){if(t instanceof xe)return t;if("number"==typeof t)return new xe([t,t,t,t]);if(Array.isArray(t)&&!(t.length<1||t.length>4)){for(const e of t)if("number"!=typeof e)return;switch(t.length){case 1:t=[t[0],t[0],t[0],t[0]];break;case 2:t=[t[0],t[1],t[0],t[1]];break;case 3:t=[t[0],t[1],t[2],t[1]]}return new xe(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,e,i){return new xe(fe(t.values,e.values,i))}}class ve{constructor(t){this.name="ExpressionEvaluationError",this.message=t}toJSON(){return this.message}}const be=new Set(["center","left","right","top","bottom","top-left","top-right","bottom-left","bottom-right"]);class we{constructor(t){this.values=t.slice()}static parse(t){if(t instanceof we)return t;if(Array.isArray(t)&&!(t.length<1)&&t.length%2==0){for(let e=0;e=0&&t<=255&&"number"==typeof e&&e>=0&&e<=255&&"number"==typeof i&&i>=0&&i<=255?void 0===r||"number"==typeof r&&r>=0&&r<=1?null:`Invalid rgba value [${[t,e,i,r].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${("number"==typeof r?[t,e,i,r]:[t,e,i]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function Se(t){if(null===t||"string"==typeof t||"boolean"==typeof t||"number"==typeof t||t instanceof Pe||t instanceof me||t instanceof _e||t instanceof ye||t instanceof xe||t instanceof we||t instanceof Te)return!0;if(Array.isArray(t)){for(const e of t)if(!Se(e))return!1;return!0}if("object"==typeof t){for(const e in t)if(!Se(t[e]))return!1;return!0}return!1}function Ie(t){if(null===t)return It;if("string"==typeof t)return Et;if("boolean"==typeof t)return At;if("number"==typeof t)return Ct;if(t instanceof me)return zt;if(t instanceof Pe)return kt;if(t instanceof _e)return Lt;if(t instanceof ye)return Ft;if(t instanceof xe)return Bt;if(t instanceof we)return jt;if(t instanceof Te)return Ot;if(Array.isArray(t)){const e=t.length;let i;for(const r of t){const t=Ie(r);if(i){if(i===t)continue;i=Rt;break}i=t}return Vt(i||Rt,e)}return Dt}function Ce(t){const e=typeof t;return null===t?"":"string"===e||"number"===e||"boolean"===e?String(t):t instanceof me||t instanceof Pe||t instanceof ye||t instanceof xe||t instanceof we||t instanceof Te?t.toString():JSON.stringify(t)}class Ee{constructor(t,e){this.type=t,this.value=e}static parse(t,e){if(2!==t.length)return e.error(`'literal' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!Se(t[1]))return e.error("invalid value");const i=t[1];let r=Ie(i);const n=e.expectedType;return"array"!==r.kind||0!==r.N||!n||"array"!==n.kind||"number"==typeof n.N&&0!==n.N||(r=n),new Ee(r,i)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}}const Ae={string:Et,number:Ct,boolean:At,object:Dt};class ze{constructor(t,e){this.type=t,this.args=e}static parse(t,e){if(t.length<2)return e.error("Expected at least one argument.");let i,r=1;const n=t[0];if("array"===n){let n,s;if(t.length>2){const i=t[1];if("string"!=typeof i||!(i in Ae)||"object"===i)return e.error('The item type argument of "array" must be one of string, number, boolean',1);n=Ae[i],r++}else n=Rt;if(t.length>3){if(null!==t[2]&&("number"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return e.error('The length argument to "array" must be a positive integer literal',2);s=t[2],r++}i=Vt(n,s)}else{if(!Ae[n])throw new Error(`Types doesn't contain name = ${n}`);i=Ae[n]}const s=[];for(;rt.outputDefined()))}}const ke={"to-boolean":At,"to-color":zt,"to-number":Ct,"to-string":Et};class De{constructor(t,e){this.type=t,this.args=e}static parse(t,e){if(t.length<2)return e.error("Expected at least one argument.");const i=t[0];if(!ke[i])throw new Error(`Can't parse ${i} as it is not part of the known types`);if(("to-boolean"===i||"to-string"===i)&&2!==t.length)return e.error("Expected one argument.");const r=ke[i],n=[];for(let s=1;s4?`Invalid rgba value ${JSON.stringify(e)}: expected an array containing either three or four numeric values.`:Me(e[0],e[1],e[2],e[3]),!i))return new me(e[0]/255,e[1]/255,e[2]/255,e[3])}throw new ve(i||`Could not parse color from value '${"string"==typeof e?e:JSON.stringify(e)}'`)}case"padding":{let e;for(const i of this.args){e=i.evaluate(t);const r=xe.parse(e);if(r)return r}throw new ve(`Could not parse padding from value '${"string"==typeof e?e:JSON.stringify(e)}'`)}case"variableAnchorOffsetCollection":{let e;for(const i of this.args){e=i.evaluate(t);const r=we.parse(e);if(r)return r}throw new ve(`Could not parse variableAnchorOffsetCollection from value '${"string"==typeof e?e:JSON.stringify(e)}'`)}case"number":{let e=null;for(const i of this.args){if(e=i.evaluate(t),null===e)return 0;const r=Number(e);if(!isNaN(r))return r}throw new ve(`Could not convert ${JSON.stringify(e)} to number.`)}case"formatted":return ye.fromString(Ce(this.args[0].evaluate(t)));case"resolvedImage":return Te.fromString(Ce(this.args[0].evaluate(t)));case"projectionDefinition":return this.args[0].evaluate(t);default:return Ce(this.args[0].evaluate(t))}}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every((t=>t.outputDefined()))}}const Re=["Unknown","Point","LineString","Polygon"];class Le{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null}id(){return this.feature&&"id"in this.feature?this.feature.id:null}geometryType(){return this.feature?"number"==typeof this.feature.type?Re[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}parseColor(t){let e=this._parseColorCache[t];return e||(e=this._parseColorCache[t]=me.parse(t)),e}}class Fe{constructor(t,e,i=[],r,n=new St,s=[]){this.registry=t,this.path=i,this.key=i.map((t=>`[${t}]`)).join(""),this.scope=n,this.errors=s,this.expectedType=r,this._isConstant=e}parse(t,e,i,r,n={}){return e?this.concat(e,i,r)._parse(t,n):this._parse(t,n)}_parse(t,e){function i(t,e,i){return"assert"===i?new ze(e,[t]):"coerce"===i?new De(e,[t]):t}if(null!==t&&"string"!=typeof t&&"boolean"!=typeof t&&"number"!=typeof t||(t=["literal",t]),Array.isArray(t)){if(0===t.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const r=t[0];if("string"!=typeof r)return this.error(`Expression name must be a string, but found ${typeof r} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const n=this.registry[r];if(n){let r=n.parse(t,this);if(!r)return null;if(this.expectedType){const t=this.expectedType,n=r.type;if("string"!==t.kind&&"number"!==t.kind&&"boolean"!==t.kind&&"object"!==t.kind&&"array"!==t.kind||"value"!==n.kind)if("projectionDefinition"!==t.kind||"string"!==n.kind&&"array"!==n.kind)if("color"!==t.kind&&"formatted"!==t.kind&&"resolvedImage"!==t.kind||"value"!==n.kind&&"string"!==n.kind)if("padding"!==t.kind||"value"!==n.kind&&"number"!==n.kind&&"array"!==n.kind)if("variableAnchorOffsetCollection"!==t.kind||"value"!==n.kind&&"array"!==n.kind){if(this.checkSubtype(t,n))return null}else r=i(r,t,e.typeAnnotation||"coerce");else r=i(r,t,e.typeAnnotation||"coerce");else r=i(r,t,e.typeAnnotation||"coerce");else r=i(r,t,e.typeAnnotation||"coerce");else r=i(r,t,e.typeAnnotation||"assert")}if(!(r instanceof Ee)&&"resolvedImage"!==r.type.kind&&this._isConstant(r)){const e=new Le;try{r=new Ee(r.type,r.evaluate(e))}catch(t){return this.error(t.message),null}}return r}return this.error(`Unknown expression "${r}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(void 0===t?"'undefined' value invalid. Use null instead.":"object"==typeof t?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof t} instead.`)}concat(t,e,i){const r="number"==typeof t?this.path.concat(t):this.path,n=i?this.scope.concat(i):this.scope;return new Fe(this.registry,this._isConstant,r,e||null,n,this.errors)}error(t,...e){const i=`${this.key}${e.map((t=>`[${t}]`)).join("")}`;this.errors.push(new Mt(i,t))}checkSubtype(t,e){const i=Zt(t,e);return i&&this.error(i),i}}class Be{constructor(t,e){this.type=e.type,this.bindings=[].concat(t),this.result=e}evaluate(t){return this.result.evaluate(t)}eachChild(t){for(const e of this.bindings)t(e[1]);t(this.result)}static parse(t,e){if(t.length<4)return e.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`);const i=[];for(let n=1;n=i.length)throw new ve(`Array index out of bounds: ${e} > ${i.length-1}.`);if(e!==Math.floor(e))throw new ve(`Array index must be an integer, but found ${e} instead.`);return i[e]}eachChild(t){t(this.index),t(this.input)}outputDefined(){return!1}}class Ve{constructor(t,e){this.type=At,this.needle=t,this.haystack=e}static parse(t,e){if(3!==t.length)return e.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const i=e.parse(t[1],1,Rt),r=e.parse(t[2],2,Rt);return i&&r?Gt(i.type,[At,Et,Ct,It,Rt])?new Ve(i,r):e.error(`Expected first argument to be of type boolean, string, number or null, but found ${Nt(i.type)} instead`):null}evaluate(t){const e=this.needle.evaluate(t),i=this.haystack.evaluate(t);if(!i)return!1;if(!$t(e,["boolean","string","number","null"]))throw new ve(`Expected first argument to be of type boolean, string, number or null, but found ${Nt(Ie(e))} instead.`);if(!$t(i,["string","array"]))throw new ve(`Expected second argument to be of type array or string, but found ${Nt(Ie(i))} instead.`);return i.indexOf(e)>=0}eachChild(t){t(this.needle),t(this.haystack)}outputDefined(){return!0}}class Ne{constructor(t,e,i){this.type=Ct,this.needle=t,this.haystack=e,this.fromIndex=i}static parse(t,e){if(t.length<=2||t.length>=5)return e.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const i=e.parse(t[1],1,Rt),r=e.parse(t[2],2,Rt);if(!i||!r)return null;if(!Gt(i.type,[At,Et,Ct,It,Rt]))return e.error(`Expected first argument to be of type boolean, string, number or null, but found ${Nt(i.type)} instead`);if(4===t.length){const n=e.parse(t[3],3,Ct);return n?new Ne(i,r,n):null}return new Ne(i,r)}evaluate(t){const e=this.needle.evaluate(t),i=this.haystack.evaluate(t);if(!$t(e,["boolean","string","number","null"]))throw new ve(`Expected first argument to be of type boolean, string, number or null, but found ${Nt(Ie(e))} instead.`);let r;if(this.fromIndex&&(r=this.fromIndex.evaluate(t)),$t(i,["string"])){const t=i.indexOf(e,r);return-1===t?-1:[...i.slice(0,t)].length}if($t(i,["array"]))return i.indexOf(e,r);throw new ve(`Expected second argument to be of type array or string, but found ${Nt(Ie(i))} instead.`)}eachChild(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex)}outputDefined(){return!1}}class Ue{constructor(t,e,i,r,n,s){this.inputType=t,this.type=e,this.input=i,this.cases=r,this.outputs=n,this.otherwise=s}static parse(t,e){if(t.length<5)return e.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if(t.length%2!=1)return e.error("Expected an even number of arguments.");let i,r;e.expectedType&&"value"!==e.expectedType.kind&&(r=e.expectedType);const n={},s=[];for(let l=2;lNumber.MAX_SAFE_INTEGER)return c.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if("number"==typeof t&&Math.floor(t)!==t)return c.error("Numeric branch labels must be integer values.");if(i){if(c.checkSubtype(i,Ie(t)))return null}else i=Ie(t);if(void 0!==n[String(t)])return c.error("Branch labels must be unique.");n[String(t)]=s.length}const h=e.parse(a,l,r);if(!h)return null;r=r||h.type,s.push(h)}const o=e.parse(t[1],1,Rt);if(!o)return null;const a=e.parse(t[t.length-1],t.length-1,r);return a?"value"!==o.type.kind&&e.concat(1).checkSubtype(i,o.type)?null:new Ue(i,r,o,n,s,a):null}evaluate(t){const e=this.input.evaluate(t);return(Ie(e)===this.inputType&&this.outputs[this.cases[e]]||this.otherwise).evaluate(t)}eachChild(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)}outputDefined(){return this.outputs.every((t=>t.outputDefined()))&&this.otherwise.outputDefined()}}class Ze{constructor(t,e,i){this.type=t,this.branches=e,this.otherwise=i}static parse(t,e){if(t.length<4)return e.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length%2!=0)return e.error("Expected an odd number of arguments.");let i;e.expectedType&&"value"!==e.expectedType.kind&&(i=e.expectedType);const r=[];for(let s=1;se.outputDefined()))&&this.otherwise.outputDefined()}}class Ge{constructor(t,e,i,r){this.type=t,this.input=e,this.beginIndex=i,this.endIndex=r}static parse(t,e){if(t.length<=2||t.length>=5)return e.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const i=e.parse(t[1],1,Rt),r=e.parse(t[2],2,Ct);if(!i||!r)return null;if(!Gt(i.type,[Vt(Rt),Et,Rt]))return e.error(`Expected first argument to be of type array or string, but found ${Nt(i.type)} instead`);if(4===t.length){const n=e.parse(t[3],3,Ct);return n?new Ge(i.type,i,r,n):null}return new Ge(i.type,i,r)}evaluate(t){const e=this.input.evaluate(t),i=this.beginIndex.evaluate(t);let r;if(this.endIndex&&(r=this.endIndex.evaluate(t)),$t(e,["string"]))return[...e].slice(i,r).join("");if($t(e,["array"]))return e.slice(i,r);throw new ve(`Expected first argument to be of type array or string, but found ${Nt(Ie(e))} instead.`)}eachChild(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex)}outputDefined(){return!1}}function $e(t,e){const i=t.length-1;let r,n,s=0,o=i,a=0;for(;s<=o;)if(a=Math.floor((s+o)/2),r=t[a],n=t[a+1],r<=e){if(a===i||ee))throw new ve("Input is not a number.");o=a-1}return 0}class qe{constructor(t,e,i){this.type=t,this.input=e,this.labels=[],this.outputs=[];for(const[r,n]of i)this.labels.push(r),this.outputs.push(n)}static parse(t,e){if(t.length-1<4)return e.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return e.error("Expected an even number of arguments.");const i=e.parse(t[1],1,Ct);if(!i)return null;const r=[];let n=null;e.expectedType&&"value"!==e.expectedType.kind&&(n=e.expectedType);for(let s=1;s=i)return e.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',a);const c=e.parse(o,l,n);if(!c)return null;n=n||c.type,r.push([i,c])}return new qe(n,i,r)}evaluate(t){const e=this.labels,i=this.outputs;if(1===e.length)return i[0].evaluate(t);const r=this.input.evaluate(t);if(r<=e[0])return i[0].evaluate(t);const n=e.length;return r>=e[n-1]?i[n-1].evaluate(t):i[$e(e,r)].evaluate(t)}eachChild(t){t(this.input);for(const e of this.outputs)t(e)}outputDefined(){return this.outputs.every((t=>t.outputDefined()))}}function He(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Xe,We,Ke=function(){if(We)return Xe;function t(t,e,i,r){this.cx=3*t,this.bx=3*(i-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(r-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=e,this.p2x=i,this.p2y=r}return We=1,Xe=t,t.prototype={sampleCurveX:function(t){return((this.ax*t+this.bx)*t+this.cx)*t},sampleCurveY:function(t){return((this.ay*t+this.by)*t+this.cy)*t},sampleCurveDerivativeX:function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},solveCurveX:function(t,e){if(void 0===e&&(e=1e-6),t<0)return 0;if(t>1)return 1;for(var i=t,r=0;r<8;r++){var n=this.sampleCurveX(i)-t;if(Math.abs(n)n?o=i:a=i,i=.5*(a-o)+o;return i},solve:function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))}},Xe}(),Ye=He(Ke);class Je{constructor(t,e,i,r,n){this.type=t,this.operator=e,this.interpolation=i,this.input=r,this.labels=[],this.outputs=[];for(const[s,o]of n)this.labels.push(s),this.outputs.push(o)}static interpolationFactor(t,e,i,r){let n=0;if("exponential"===t.name)n=Qe(e,t.base,i,r);else if("linear"===t.name)n=Qe(e,1,i,r);else if("cubic-bezier"===t.name){const s=t.controlPoints;n=new Ye(s[0],s[1],s[2],s[3]).solve(Qe(e,1,i,r))}return n}static parse(t,e){let[i,r,n,...s]=t;if(!Array.isArray(r)||0===r.length)return e.error("Expected an interpolation type expression.",1);if("linear"===r[0])r={name:"linear"};else if("exponential"===r[0]){const t=r[1];if("number"!=typeof t)return e.error("Exponential interpolation requires a numeric base.",1,1);r={name:"exponential",base:t}}else{if("cubic-bezier"!==r[0])return e.error(`Unknown interpolation type ${String(r[0])}`,1,0);{const t=r.slice(1);if(4!==t.length||t.some((t=>"number"!=typeof t||t<0||t>1)))return e.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);r={name:"cubic-bezier",controlPoints:t}}}if(t.length-1<4)return e.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return e.error("Expected an even number of arguments.");if(n=e.parse(n,2,Ct),!n)return null;const o=[];let a=null;"interpolate-hcl"===i||"interpolate-lab"===i?a=zt:e.expectedType&&"value"!==e.expectedType.kind&&(a=e.expectedType);for(let l=0;l=t)return e.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',r);const c=e.parse(i,n,a);if(!c)return null;a=a||c.type,o.push([t,c])}return qt(a,Ct)||qt(a,kt)||qt(a,zt)||qt(a,Bt)||qt(a,jt)||qt(a,Vt(Ct))?new Je(a,i,r,n,o):e.error(`Type ${Nt(a)} is not interpolatable.`)}evaluate(t){const e=this.labels,i=this.outputs;if(1===e.length)return i[0].evaluate(t);const r=this.input.evaluate(t);if(r<=e[0])return i[0].evaluate(t);const n=e.length;if(r>=e[n-1])return i[n-1].evaluate(t);const s=$e(e,r),o=Je.interpolationFactor(this.interpolation,r,e[s],e[s+1]),a=i[s].evaluate(t),l=i[s+1].evaluate(t);switch(this.operator){case"interpolate":switch(this.type.kind){case"number":return pe(a,l,o);case"color":return me.interpolate(a,l,o);case"padding":return xe.interpolate(a,l,o);case"variableAnchorOffsetCollection":return we.interpolate(a,l,o);case"array":return fe(a,l,o);case"projectionDefinition":return Pe.interpolate(a,l,o)}case"interpolate-hcl":return me.interpolate(a,l,o,"hcl");case"interpolate-lab":return me.interpolate(a,l,o,"lab")}}eachChild(t){t(this.input);for(const e of this.outputs)t(e)}outputDefined(){return this.outputs.every((t=>t.outputDefined()))}}function Qe(t,e,i,r){const n=r-i,s=t-i;return 0===n?0:1===e?s/n:(Math.pow(e,s)-1)/(Math.pow(e,n)-1)}const ti={color:me.interpolate,number:pe,padding:xe.interpolate,variableAnchorOffsetCollection:we.interpolate,array:fe};class ei{constructor(t,e){this.type=t,this.args=e}static parse(t,e){if(t.length<2)return e.error("Expected at least one argument.");let i=null;const r=e.expectedType;r&&"value"!==r.kind&&(i=r);const n=[];for(const o of t.slice(1)){const t=e.parse(o,1+n.length,i,void 0,{typeAnnotation:"omit"});if(!t)return null;i=i||t.type,n.push(t)}if(!i)throw new Error("No output type");const s=r&&n.some((t=>Zt(r,t.type)));return new ei(s?Rt:i,n)}evaluate(t){let e,i=null,r=0;for(const n of this.args)if(r++,i=n.evaluate(t),i&&i instanceof Te&&!i.available&&(e||(e=i.name),i=null,r===this.args.length&&(i=e)),null!==i)break;return i}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every((t=>t.outputDefined()))}}function ii(t,e){return"=="===t||"!="===t?"boolean"===e.kind||"string"===e.kind||"number"===e.kind||"null"===e.kind||"value"===e.kind:"string"===e.kind||"number"===e.kind||"value"===e.kind}function ri(t,e,i,r){return 0===r.compare(e,i)}function ni(t,e,i){const r="=="!==t&&"!="!==t;return class n{constructor(t,e,i){this.type=At,this.lhs=t,this.rhs=e,this.collator=i,this.hasUntypedArgument="value"===t.type.kind||"value"===e.type.kind}static parse(t,e){if(3!==t.length&&4!==t.length)return e.error("Expected two or three arguments.");const i=t[0];let s=e.parse(t[1],1,Rt);if(!s)return null;if(!ii(i,s.type))return e.concat(1).error(`"${i}" comparisons are not supported for type '${Nt(s.type)}'.`);let o=e.parse(t[2],2,Rt);if(!o)return null;if(!ii(i,o.type))return e.concat(2).error(`"${i}" comparisons are not supported for type '${Nt(o.type)}'.`);if(s.type.kind!==o.type.kind&&"value"!==s.type.kind&&"value"!==o.type.kind)return e.error(`Cannot compare types '${Nt(s.type)}' and '${Nt(o.type)}'.`);r&&("value"===s.type.kind&&"value"!==o.type.kind?s=new ze(o.type,[s]):"value"!==s.type.kind&&"value"===o.type.kind&&(o=new ze(s.type,[o])));let a=null;if(4===t.length){if("string"!==s.type.kind&&"string"!==o.type.kind&&"value"!==s.type.kind&&"value"!==o.type.kind)return e.error("Cannot use collator to compare non-string types.");if(a=e.parse(t[3],3,Lt),!a)return null}return new n(s,o,a)}evaluate(n){const s=this.lhs.evaluate(n),o=this.rhs.evaluate(n);if(r&&this.hasUntypedArgument){const e=Ie(s),i=Ie(o);if(e.kind!==i.kind||"string"!==e.kind&&"number"!==e.kind)throw new ve(`Expected arguments for "${t}" to be (string, string) or (number, number), but found (${e.kind}, ${i.kind}) instead.`)}if(this.collator&&!r&&this.hasUntypedArgument){const t=Ie(s),i=Ie(o);if("string"!==t.kind||"string"!==i.kind)return e(n,s,o)}return this.collator?i(n,s,o,this.collator.evaluate(n)):e(n,s,o)}eachChild(t){t(this.lhs),t(this.rhs),this.collator&&t(this.collator)}outputDefined(){return!0}}}const si=ni("==",(function(t,e,i){return e===i}),ri),oi=ni("!=",(function(t,e,i){return e!==i}),(function(t,e,i,r){return!ri(0,e,i,r)})),ai=ni("<",(function(t,e,i){return e",(function(t,e,i){return e>i}),(function(t,e,i,r){return r.compare(e,i)>0})),ci=ni("<=",(function(t,e,i){return e<=i}),(function(t,e,i,r){return r.compare(e,i)<=0})),hi=ni(">=",(function(t,e,i){return e>=i}),(function(t,e,i,r){return r.compare(e,i)>=0}));class ui{constructor(t,e,i){this.type=Lt,this.locale=i,this.caseSensitive=t,this.diacriticSensitive=e}static parse(t,e){if(2!==t.length)return e.error("Expected one argument.");const i=t[1];if("object"!=typeof i||Array.isArray(i))return e.error("Collator options argument must be an object.");const r=e.parse(void 0!==i["case-sensitive"]&&i["case-sensitive"],1,At);if(!r)return null;const n=e.parse(void 0!==i["diacritic-sensitive"]&&i["diacritic-sensitive"],1,At);if(!n)return null;let s=null;return i.locale&&(s=e.parse(i.locale,1,Et),!s)?null:new ui(r,n,s)}evaluate(t){return new _e(this.caseSensitive.evaluate(t),this.diacriticSensitive.evaluate(t),this.locale?this.locale.evaluate(t):null)}eachChild(t){t(this.caseSensitive),t(this.diacriticSensitive),this.locale&&t(this.locale)}outputDefined(){return!1}}class di{constructor(t,e,i,r,n){this.type=Et,this.number=t,this.locale=e,this.currency=i,this.minFractionDigits=r,this.maxFractionDigits=n}static parse(t,e){if(3!==t.length)return e.error("Expected two arguments.");const i=e.parse(t[1],1,Ct);if(!i)return null;const r=t[2];if("object"!=typeof r||Array.isArray(r))return e.error("NumberFormat options argument must be an object.");let n=null;if(r.locale&&(n=e.parse(r.locale,1,Et),!n))return null;let s=null;if(r.currency&&(s=e.parse(r.currency,1,Et),!s))return null;let o=null;if(r["min-fraction-digits"]&&(o=e.parse(r["min-fraction-digits"],1,Ct),!o))return null;let a=null;return r["max-fraction-digits"]&&(a=e.parse(r["max-fraction-digits"],1,Ct),!a)?null:new di(i,n,s,o,a)}evaluate(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))}eachChild(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits)}outputDefined(){return!1}}class pi{constructor(t){this.type=Ft,this.sections=t}static parse(t,e){if(t.length<2)return e.error("Expected at least one argument.");const i=t[1];if(!Array.isArray(i)&&"object"==typeof i)return e.error("First argument must be an image or text section.");const r=[];let n=!1;for(let s=1;s<=t.length-1;++s){const i=t[s];if(n&&"object"==typeof i&&!Array.isArray(i)){n=!1;let t=null;if(i["font-scale"]&&(t=e.parse(i["font-scale"],1,Ct),!t))return null;let s=null;if(i["text-font"]&&(s=e.parse(i["text-font"],1,Vt(Et)),!s))return null;let o=null;if(i["text-color"]&&(o=e.parse(i["text-color"],1,zt),!o))return null;const a=r[r.length-1];a.scale=t,a.font=s,a.textColor=o}else{const i=e.parse(t[s],1,Rt);if(!i)return null;const o=i.type.kind;if("string"!==o&&"value"!==o&&"null"!==o&&"resolvedImage"!==o)return e.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");n=!0,r.push({content:i,scale:null,font:null,textColor:null})}}return new pi(r)}evaluate(t){return new ye(this.sections.map((e=>{const i=e.content.evaluate(t);return Ie(i)===Ot?new ge("",i,null,null,null):new ge(Ce(i),null,e.scale?e.scale.evaluate(t):null,e.font?e.font.evaluate(t).join(","):null,e.textColor?e.textColor.evaluate(t):null)})))}eachChild(t){for(const e of this.sections)t(e.content),e.scale&&t(e.scale),e.font&&t(e.font),e.textColor&&t(e.textColor)}outputDefined(){return!1}}class fi{constructor(t){this.type=Ot,this.input=t}static parse(t,e){if(2!==t.length)return e.error("Expected two arguments.");const i=e.parse(t[1],1,Et);return i?new fi(i):e.error("No image name provided.")}evaluate(t){const e=this.input.evaluate(t),i=Te.fromString(e);return i&&t.availableImages&&(i.available=t.availableImages.indexOf(e)>-1),i}eachChild(t){t(this.input)}outputDefined(){return!1}}class mi{constructor(t){this.type=Ct,this.input=t}static parse(t,e){if(2!==t.length)return e.error(`Expected 1 argument, but found ${t.length-1} instead.`);const i=e.parse(t[1],1);return i?"array"!==i.type.kind&&"string"!==i.type.kind&&"value"!==i.type.kind?e.error(`Expected argument of type string or array, but found ${Nt(i.type)} instead.`):new mi(i):null}evaluate(t){const e=this.input.evaluate(t);if("string"==typeof e)return[...e].length;if(Array.isArray(e))return e.length;throw new ve(`Expected value to be of type string or array, but found ${Nt(Ie(e))} instead.`)}eachChild(t){t(this.input)}outputDefined(){return!1}}const _i=8192;function gi(t,e){const i=(180+t[0])/360,r=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t[1]*Math.PI/360)))/360,n=Math.pow(2,e.z);return[Math.round(i*n*_i),Math.round(r*n*_i)]}function yi(t,e){const i=Math.pow(2,e.z);return[(n=(t[0]/_i+e.x)/i,360*n-180),(r=(t[1]/_i+e.y)/i,360/Math.PI*Math.atan(Math.exp((180-360*r)*Math.PI/180))-90)];var r,n}function xi(t,e){t[0]=Math.min(t[0],e[0]),t[1]=Math.min(t[1],e[1]),t[2]=Math.max(t[2],e[0]),t[3]=Math.max(t[3],e[1])}function vi(t,e){return!(t[0]<=e[0]||t[2]>=e[2]||t[1]<=e[1]||t[3]>=e[3])}function bi(t,e,i){const r=t[0]-e[0],n=t[1]-e[1],s=t[0]-i[0],o=t[1]-i[1];return r*o-s*n==0&&r*s<=0&&n*o<=0}function wi(t,e,i,r){return 0!=(n=[r[0]-i[0],r[1]-i[1]])[0]*(s=[e[0]-t[0],e[1]-t[1]])[1]-n[1]*s[0]&&!(!Ci(t,e,i,r)||!Ci(i,r,t,e));var n,s}function Ti(t,e,i){for(const r of i)for(let i=0;i(n=t)[1]!=(o=a[e+1])[1]>n[1]&&n[0]<(o[0]-s[0])*(n[1]-s[1])/(o[1]-s[1])+s[0]&&(r=!r)}var n,s,o;return r}function Mi(t,e){for(const i of e)if(Pi(t,i))return!0;return!1}function Si(t,e){for(const i of t)if(!Pi(i,e))return!1;for(let i=0;i0&&a<0||o<0&&a>0}function Ei(t,e,i){const r=[];for(let n=0;ni[2]){const e=.5*r;let n=t[0]-i[0]>e?-r:i[0]-t[0]>e?r:0;0===n&&(n=t[0]-i[2]>e?-r:i[2]-t[0]>e?r:0),t[0]+=n}xi(e,t)}function ki(t,e,i,r){const n=Math.pow(2,r.z)*_i,s=[r.x*_i,r.y*_i],o=[];for(const a of t)for(const t of a){const r=[t.x+s[0],t.y+s[1]];zi(r,e,i,n),o.push(r)}return o}function Di(t,e,i,r){const n=Math.pow(2,r.z)*_i,s=[r.x*_i,r.y*_i],o=[];for(const l of t){const t=[];for(const i of l){const r=[i.x+s[0],i.y+s[1]];xi(e,r),t.push(r)}o.push(t)}if(e[2]-e[0]<=n/2){(a=e)[0]=a[1]=1/0,a[2]=a[3]=-1/0;for(const t of o)for(const r of t)zi(r,e,i,n)}var a;return o}class Ri{constructor(t,e){this.type=At,this.geojson=t,this.geometries=e}static parse(t,e){if(2!==t.length)return e.error(`'within' expression requires exactly one argument, but found ${t.length-1} instead.`);if(Se(t[1])){const e=t[1];if("FeatureCollection"===e.type){const t=[];for(const i of e.features){const{type:e,coordinates:r}=i.geometry;"Polygon"===e&&t.push(r),"MultiPolygon"===e&&t.push(...r)}if(t.length)return new Ri(e,{type:"MultiPolygon",coordinates:t})}else if("Feature"===e.type){const t=e.geometry.type;if("Polygon"===t||"MultiPolygon"===t)return new Ri(e,e.geometry)}else if("Polygon"===e.type||"MultiPolygon"===e.type)return new Ri(e,e)}return e.error("'within' expression requires valid geojson object that contains polygon geometry type.")}evaluate(t){if(null!=t.geometry()&&null!=t.canonicalID()){if("Point"===t.geometryType())return function(t,e){const i=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],n=t.canonicalID();if("Polygon"===e.type){const s=Ei(e.coordinates,r,n),o=ki(t.geometry(),i,r,n);if(!vi(i,r))return!1;for(const t of o)if(!Pi(t,s))return!1}if("MultiPolygon"===e.type){const s=Ai(e.coordinates,r,n),o=ki(t.geometry(),i,r,n);if(!vi(i,r))return!1;for(const t of o)if(!Mi(t,s))return!1}return!0}(t,this.geometries);if("LineString"===t.geometryType())return function(t,e){const i=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],n=t.canonicalID();if("Polygon"===e.type){const s=Ei(e.coordinates,r,n),o=Di(t.geometry(),i,r,n);if(!vi(i,r))return!1;for(const t of o)if(!Si(t,s))return!1}if("MultiPolygon"===e.type){const s=Ai(e.coordinates,r,n),o=Di(t.geometry(),i,r,n);if(!vi(i,r))return!1;for(const t of o)if(!Ii(t,s))return!1}return!0}(t,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}}let Li=class{constructor(t=[],e=(t,e)=>te?1:0){if(this.data=t,this.length=this.data.length,this.compare=e,this.length>0)for(let i=(this.length>>1)-1;i>=0;i--)this._down(i)}push(t){this.data.push(t),this._up(this.length++)}pop(){if(0===this.length)return;const t=this.data[0],e=this.data.pop();return--this.length>0&&(this.data[0]=e,this._down(0)),t}peek(){return this.data[0]}_up(t){const{data:e,compare:i}=this,r=e[t];for(;t>0;){const n=t-1>>1,s=e[n];if(i(r,s)>=0)break;e[t]=s,t=n}e[t]=r}_down(t){const{data:e,compare:i}=this,r=this.length>>1,n=e[t];for(;t=0)break;e[t]=e[r],t=r}e[t]=n}};function Fi(t,e,i=0,r=t.length-1,n=Oi){for(;r>i;){if(r-i>600){const s=r-i+1,o=e-i+1,a=Math.log(s),l=.5*Math.exp(2*a/3),c=.5*Math.sqrt(a*l*(s-l)/s)*(o-s/2<0?-1:1);Fi(t,e,Math.max(i,Math.floor(e-o*l/s+c)),Math.min(r,Math.floor(e+(s-o)*l/s+c)),n)}const s=t[e];let o=i,a=r;for(Bi(t,i,e),n(t[r],s)>0&&Bi(t,i,r);o0;)a--}0===n(t[i],s)?Bi(t,i,a):(a++,Bi(t,a,r)),a<=e&&(i=a+1),e<=a&&(r=a-1)}}function Bi(t,e,i){const r=t[e];t[e]=t[i],t[i]=r}function Oi(t,e){return te?1:0}function ji(t,e){if(t.length<=1)return[t];const i=[];let r,n;for(const s of t){const t=Ni(s);0!==t&&(s.area=Math.abs(t),void 0===n&&(n=t<0),n===t<0?(r&&i.push(r),r=[s]):r.push(s))}if(r&&i.push(r),e>1)for(let s=0;s1?(l=t[a+1][0],c=t[a+1][1]):d>0&&(l+=h/this.kx*d,c+=u/this.ky*d)),h=this.wrap(e[0]-l)*this.kx,u=(e[1]-c)*this.ky;const p=h*h+u*u;p180;)t-=360;return t}}function qi(t,e){return e[0]-t[0]}function Hi(t){return t[1]-t[0]+1}function Xi(t,e){return t[1]>=t[0]&&t[1]t[1])return[null,null];const i=Hi(t);if(e){if(2===i)return[t,null];const e=Math.floor(i/2);return[[t[0],t[0]+e],[t[0]+e,t[1]]]}if(1===i)return[t,null];const r=Math.floor(i/2)-1;return[[t[0],t[0]+r],[t[0]+r+1,t[1]]]}function Ki(t,e){if(!Xi(e,t.length))return[1/0,1/0,-1/0,-1/0];const i=[1/0,1/0,-1/0,-1/0];for(let r=e[0];r<=e[1];++r)xi(i,t[r]);return i}function Yi(t){const e=[1/0,1/0,-1/0,-1/0];for(const i of t)for(const t of i)xi(e,t);return e}function Ji(t){return t[0]!==-1/0&&t[1]!==-1/0&&t[2]!==1/0&&t[3]!==1/0}function Qi(t,e,i){if(!Ji(t)||!Ji(e))return NaN;let r=0,n=0;return t[2]e[2]&&(r=t[0]-e[2]),t[1]>e[3]&&(n=t[1]-e[3]),t[3]=r)return r;if(vi(n,s)){if(or(t,e))return 0}else if(or(e,t))return 0;let o=1/0;for(const a of t)for(let t=0,r=a.length,n=r-1;t0;){const n=o.pop();if(n[0]>=s)continue;const l=n[1],c=e?50:100;if(Hi(l)<=c){if(!Xi(l,t.length))return NaN;if(e){const e=sr(t,l,i,r);if(isNaN(e)||0===e)return e;s=Math.min(s,e)}else for(let e=l[0];e<=l[1];++e){const n=nr(t[e],i,r);if(s=Math.min(s,n),0===s)return 0}}else{const i=Wi(l,e);lr(o,s,r,t,a,i[0]),lr(o,s,r,t,a,i[1])}}return s}function ur(t,e,i,r,n,s=1/0){let o=Math.min(s,n.distance(t[0],i[0]));if(0===o)return o;const a=new Li([[0,[0,t.length-1],[0,i.length-1]]],qi);for(;a.length>0;){const s=a.pop();if(s[0]>=o)continue;const l=s[1],c=s[2],h=e?50:100,u=r?50:100;if(Hi(l)<=h&&Hi(c)<=u){if(!Xi(l,t.length)&&Xi(c,i.length))return NaN;let s;if(e&&r)s=ir(t,l,i,c,n),o=Math.min(o,s);else if(e&&!r){const e=t.slice(l[0],l[1]+1);for(let t=c[0];t<=c[1];++t)if(s=tr(i[t],e,n),o=Math.min(o,s),0===o)return o}else if(!e&&r){const e=i.slice(c[0],c[1]+1);for(let i=l[0];i<=l[1];++i)if(s=tr(t[i],e,n),o=Math.min(o,s),0===o)return o}else s=rr(t,l,i,c,n),o=Math.min(o,s)}else{const s=Wi(l,e),h=Wi(c,r);cr(a,o,n,t,i,s[0],h[0]),cr(a,o,n,t,i,s[0],h[1]),cr(a,o,n,t,i,s[1],h[0]),cr(a,o,n,t,i,s[1],h[1])}}return o}function dr(t){return"MultiPolygon"===t.type?t.coordinates.map((t=>({type:"Polygon",coordinates:t}))):"MultiLineString"===t.type?t.coordinates.map((t=>({type:"LineString",coordinates:t}))):"MultiPoint"===t.type?t.coordinates.map((t=>({type:"Point",coordinates:t}))):[t]}class pr{constructor(t,e){this.type=Ct,this.geojson=t,this.geometries=e}static parse(t,e){if(2!==t.length)return e.error(`'distance' expression requires exactly one argument, but found ${t.length-1} instead.`);if(Se(t[1])){const e=t[1];if("FeatureCollection"===e.type)return new pr(e,e.features.map((t=>dr(t.geometry))).flat());if("Feature"===e.type)return new pr(e,dr(e.geometry));if("type"in e&&"coordinates"in e)return new pr(e,dr(e))}return e.error("'distance' expression requires valid geojson object that contains polygon geometry type.")}evaluate(t){if(null!=t.geometry()&&null!=t.canonicalID()){if("Point"===t.geometryType())return function(t,e){const i=t.geometry(),r=i.flat().map((e=>yi([e.x,e.y],t.canonical)));if(0===i.length)return NaN;const n=new $i(r[0][1]);let s=1/0;for(const o of e){switch(o.type){case"Point":s=Math.min(s,ur(r,!1,[o.coordinates],!1,n,s));break;case"LineString":s=Math.min(s,ur(r,!1,o.coordinates,!0,n,s));break;case"Polygon":s=Math.min(s,hr(r,!1,o.coordinates,n,s))}if(0===s)return s}return s}(t,this.geometries);if("LineString"===t.geometryType())return function(t,e){const i=t.geometry(),r=i.flat().map((e=>yi([e.x,e.y],t.canonical)));if(0===i.length)return NaN;const n=new $i(r[0][1]);let s=1/0;for(const o of e){switch(o.type){case"Point":s=Math.min(s,ur(r,!0,[o.coordinates],!1,n,s));break;case"LineString":s=Math.min(s,ur(r,!0,o.coordinates,!0,n,s));break;case"Polygon":s=Math.min(s,hr(r,!0,o.coordinates,n,s))}if(0===s)return s}return s}(t,this.geometries);if("Polygon"===t.geometryType())return function(t,e){const i=t.geometry();if(0===i.length||0===i[0].length)return NaN;const r=ji(i,0).map((e=>e.map((e=>e.map((e=>yi([e.x,e.y],t.canonical))))))),n=new $i(r[0][0][0][1]);let s=1/0;for(const o of e)for(const t of r){switch(o.type){case"Point":s=Math.min(s,hr([o.coordinates],!1,t,n,s));break;case"LineString":s=Math.min(s,hr(o.coordinates,!0,t,n,s));break;case"Polygon":s=Math.min(s,ar(t,o.coordinates,n,s))}if(0===s)return s}return s}(t,this.geometries)}return NaN}eachChild(){}outputDefined(){return!0}}const fr={"==":si,"!=":oi,">":li,"<":ai,">=":hi,"<=":ci,array:ze,at:je,boolean:ze,case:Ze,coalesce:ei,collator:ui,format:pi,image:fi,in:Ve,"index-of":Ne,interpolate:Je,"interpolate-hcl":Je,"interpolate-lab":Je,length:mi,let:Be,literal:Ee,match:Ue,number:ze,"number-format":di,object:ze,slice:Ge,step:qe,string:ze,"to-boolean":De,"to-color":De,"to-number":De,"to-string":De,var:Oe,within:Ri,distance:pr};class mr{constructor(t,e,i,r){this.name=t,this.type=e,this._evaluate=i,this.args=r}evaluate(t){return this._evaluate(t,this.args)}eachChild(t){this.args.forEach(t)}outputDefined(){return!1}static parse(t,e){const i=t[0],r=mr.definitions[i];if(!r)return e.error(`Unknown expression "${i}". If you wanted a literal array, use ["literal", [...]].`,0);const n=Array.isArray(r)?r[0]:r.type,s=Array.isArray(r)?[[r[1],r[2]]]:r.overloads,o=s.filter((([e])=>!Array.isArray(e)||e.length===t.length-1));let a=null;for(const[l,c]of o){a=new Fe(e.registry,vr,e.path,null,e.scope);const r=[];let s=!1;for(let e=1;e{return e=t,Array.isArray(e)?`(${e.map(Nt).join(", ")})`:`(${Nt(e.type)}...)`;var e})).join(" | "),r=[];for(let n=1;n{i=e?i&&vr(t):i&&t instanceof Ee})),!!i&&br(t)&&Tr(t,["zoom","heatmap-density","line-progress","accumulated","is-supported-script"])}function br(t){if(t instanceof mr){if("get"===t.name&&1===t.args.length)return!1;if("feature-state"===t.name)return!1;if("has"===t.name&&1===t.args.length)return!1;if("properties"===t.name||"geometry-type"===t.name||"id"===t.name)return!1;if(/^filter-/.test(t.name))return!1}if(t instanceof Ri)return!1;if(t instanceof pr)return!1;let e=!0;return t.eachChild((t=>{e&&!br(t)&&(e=!1)})),e}function wr(t){if(t instanceof mr&&"feature-state"===t.name)return!1;let e=!0;return t.eachChild((t=>{e&&!wr(t)&&(e=!1)})),e}function Tr(t,e){if(t instanceof mr&&e.indexOf(t.name)>=0)return!1;let i=!0;return t.eachChild((t=>{i&&!Tr(t,e)&&(i=!1)})),i}function Pr(t){return{result:"success",value:t}}function Mr(t){return{result:"error",value:t}}function Sr(t){return"data-driven"===t["property-type"]||"cross-faded-data-driven"===t["property-type"]}function Ir(t){return!!t.expression&&t.expression.parameters.indexOf("zoom")>-1}function Cr(t){return!!t.expression&&t.expression.interpolated}function Er(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function Ar(t){return"object"==typeof t&&null!==t&&!Array.isArray(t)}function zr(t){return t}function kr(t,e){const i="color"===e.type,r=t.stops&&"object"==typeof t.stops[0][0],n=r||!(r||void 0!==t.property),s=t.type||(Cr(e)?"exponential":"interval");if(i||"padding"===e.type){const r=i?me.parse:xe.parse;(t=Pt({},t)).stops&&(t.stops=t.stops.map((t=>[t[0],r(t[1])]))),t.default=r(t.default?t.default:e.default)}if(t.colorSpace&&"rgb"!==(o=t.colorSpace)&&"hcl"!==o&&"lab"!==o)throw new Error(`Unknown color space: "${t.colorSpace}"`);var o;let a,l,c;if("exponential"===s)a=Fr;else if("interval"===s)a=Lr;else if("categorical"===s){a=Rr,l=Object.create(null);for(const e of t.stops)l[e[0]]=e[1];c=typeof t.stops[0][0]}else{if("identity"!==s)throw new Error(`Unknown function type "${s}"`);a=Br}if(r){const i={},r=[];for(let e=0;et[0])),evaluate:({zoom:i},r)=>Fr({stops:n,base:t.base},e,i).evaluate(i,r)}}if(n){const i="exponential"===s?{name:"exponential",base:void 0!==t.base?t.base:1}:null;return{kind:"camera",interpolationType:i,interpolationFactor:Je.interpolationFactor.bind(void 0,i),zoomStops:t.stops.map((t=>t[0])),evaluate:({zoom:i})=>a(t,e,i,l,c)}}return{kind:"source",evaluate(i,r){const n=r&&r.properties?r.properties[t.property]:void 0;return void 0===n?Dr(t.default,e.default):a(t,e,n,l,c)}}}function Dr(t,e,i){return void 0!==t?t:void 0!==e?e:void 0!==i?i:void 0}function Rr(t,e,i,r,n){return Dr(typeof i===n?r[i]:void 0,t.default,e.default)}function Lr(t,e,i){if("number"!==Er(i))return Dr(t.default,e.default);const r=t.stops.length;if(1===r)return t.stops[0][1];if(i<=t.stops[0][0])return t.stops[0][1];if(i>=t.stops[r-1][0])return t.stops[r-1][1];const n=$e(t.stops.map((t=>t[0])),i);return t.stops[n][1]}function Fr(t,e,i){const r=void 0!==t.base?t.base:1;if("number"!==Er(i))return Dr(t.default,e.default);const n=t.stops.length;if(1===n)return t.stops[0][1];if(i<=t.stops[0][0])return t.stops[0][1];if(i>=t.stops[n-1][0])return t.stops[n-1][1];const s=$e(t.stops.map((t=>t[0])),i),o=function(t,e,i,r){const n=r-i,s=t-i;return 0===n?0:1===e?s/n:(Math.pow(e,s)-1)/(Math.pow(e,n)-1)}(i,r,t.stops[s][0],t.stops[s+1][0]),a=t.stops[s][1],l=t.stops[s+1][1],c=ti[e.type]||zr;return"function"==typeof a.evaluate?{evaluate(...e){const i=a.evaluate.apply(void 0,e),r=l.evaluate.apply(void 0,e);if(void 0!==i&&void 0!==r)return c(i,r,o,t.colorSpace)}}:c(a,l,o,t.colorSpace)}function Br(t,e,i){switch(e.type){case"color":i=me.parse(i);break;case"formatted":i=ye.fromString(i.toString());break;case"resolvedImage":i=Te.fromString(i.toString());break;case"padding":i=xe.parse(i);break;default:Er(i)===e.type||"enum"===e.type&&e.values[i]||(i=void 0)}return Dr(i,t.default,e.default)}mr.register(fr,{error:[{kind:"error"},[Et],(t,[e])=>{throw new ve(e.evaluate(t))}],typeof:[Et,[Rt],(t,[e])=>Nt(Ie(e.evaluate(t)))],"to-rgba":[Vt(Ct,4),[zt],(t,[e])=>{const[i,r,n,s]=e.evaluate(t).rgb;return[255*i,255*r,255*n,s]}],rgb:[zt,[Ct,Ct,Ct],_r],rgba:[zt,[Ct,Ct,Ct,Ct],_r],has:{type:At,overloads:[[[Et],(t,[e])=>gr(e.evaluate(t),t.properties())],[[Et,Dt],(t,[e,i])=>gr(e.evaluate(t),i.evaluate(t))]]},get:{type:Rt,overloads:[[[Et],(t,[e])=>yr(e.evaluate(t),t.properties())],[[Et,Dt],(t,[e,i])=>yr(e.evaluate(t),i.evaluate(t))]]},"feature-state":[Rt,[Et],(t,[e])=>yr(e.evaluate(t),t.featureState||{})],properties:[Dt,[],t=>t.properties()],"geometry-type":[Et,[],t=>t.geometryType()],id:[Rt,[],t=>t.id()],zoom:[Ct,[],t=>t.globals.zoom],"heatmap-density":[Ct,[],t=>t.globals.heatmapDensity||0],"line-progress":[Ct,[],t=>t.globals.lineProgress||0],accumulated:[Rt,[],t=>void 0===t.globals.accumulated?null:t.globals.accumulated],"+":[Ct,xr(Ct),(t,e)=>{let i=0;for(const r of e)i+=r.evaluate(t);return i}],"*":[Ct,xr(Ct),(t,e)=>{let i=1;for(const r of e)i*=r.evaluate(t);return i}],"-":{type:Ct,overloads:[[[Ct,Ct],(t,[e,i])=>e.evaluate(t)-i.evaluate(t)],[[Ct],(t,[e])=>-e.evaluate(t)]]},"/":[Ct,[Ct,Ct],(t,[e,i])=>e.evaluate(t)/i.evaluate(t)],"%":[Ct,[Ct,Ct],(t,[e,i])=>e.evaluate(t)%i.evaluate(t)],ln2:[Ct,[],()=>Math.LN2],pi:[Ct,[],()=>Math.PI],e:[Ct,[],()=>Math.E],"^":[Ct,[Ct,Ct],(t,[e,i])=>Math.pow(e.evaluate(t),i.evaluate(t))],sqrt:[Ct,[Ct],(t,[e])=>Math.sqrt(e.evaluate(t))],log10:[Ct,[Ct],(t,[e])=>Math.log(e.evaluate(t))/Math.LN10],ln:[Ct,[Ct],(t,[e])=>Math.log(e.evaluate(t))],log2:[Ct,[Ct],(t,[e])=>Math.log(e.evaluate(t))/Math.LN2],sin:[Ct,[Ct],(t,[e])=>Math.sin(e.evaluate(t))],cos:[Ct,[Ct],(t,[e])=>Math.cos(e.evaluate(t))],tan:[Ct,[Ct],(t,[e])=>Math.tan(e.evaluate(t))],asin:[Ct,[Ct],(t,[e])=>Math.asin(e.evaluate(t))],acos:[Ct,[Ct],(t,[e])=>Math.acos(e.evaluate(t))],atan:[Ct,[Ct],(t,[e])=>Math.atan(e.evaluate(t))],min:[Ct,xr(Ct),(t,e)=>Math.min(...e.map((e=>e.evaluate(t))))],max:[Ct,xr(Ct),(t,e)=>Math.max(...e.map((e=>e.evaluate(t))))],abs:[Ct,[Ct],(t,[e])=>Math.abs(e.evaluate(t))],round:[Ct,[Ct],(t,[e])=>{const i=e.evaluate(t);return i<0?-Math.round(-i):Math.round(i)}],floor:[Ct,[Ct],(t,[e])=>Math.floor(e.evaluate(t))],ceil:[Ct,[Ct],(t,[e])=>Math.ceil(e.evaluate(t))],"filter-==":[At,[Et,Rt],(t,[e,i])=>t.properties()[e.value]===i.value],"filter-id-==":[At,[Rt],(t,[e])=>t.id()===e.value],"filter-type-==":[At,[Et],(t,[e])=>t.geometryType()===e.value],"filter-<":[At,[Et,Rt],(t,[e,i])=>{const r=t.properties()[e.value],n=i.value;return typeof r==typeof n&&r{const i=t.id(),r=e.value;return typeof i==typeof r&&i":[At,[Et,Rt],(t,[e,i])=>{const r=t.properties()[e.value],n=i.value;return typeof r==typeof n&&r>n}],"filter-id->":[At,[Rt],(t,[e])=>{const i=t.id(),r=e.value;return typeof i==typeof r&&i>r}],"filter-<=":[At,[Et,Rt],(t,[e,i])=>{const r=t.properties()[e.value],n=i.value;return typeof r==typeof n&&r<=n}],"filter-id-<=":[At,[Rt],(t,[e])=>{const i=t.id(),r=e.value;return typeof i==typeof r&&i<=r}],"filter->=":[At,[Et,Rt],(t,[e,i])=>{const r=t.properties()[e.value],n=i.value;return typeof r==typeof n&&r>=n}],"filter-id->=":[At,[Rt],(t,[e])=>{const i=t.id(),r=e.value;return typeof i==typeof r&&i>=r}],"filter-has":[At,[Rt],(t,[e])=>e.value in t.properties()],"filter-has-id":[At,[],t=>null!==t.id()&&void 0!==t.id()],"filter-type-in":[At,[Vt(Et)],(t,[e])=>e.value.indexOf(t.geometryType())>=0],"filter-id-in":[At,[Vt(Rt)],(t,[e])=>e.value.indexOf(t.id())>=0],"filter-in-small":[At,[Et,Vt(Rt)],(t,[e,i])=>i.value.indexOf(t.properties()[e.value])>=0],"filter-in-large":[At,[Et,Vt(Rt)],(t,[e,i])=>function(t,e,i,r){for(;i<=r;){const n=i+r>>1;if(e[n]===t)return!0;e[n]>t?r=n-1:i=n+1}return!1}(t.properties()[e.value],i.value,0,i.value.length-1)],all:{type:At,overloads:[[[At,At],(t,[e,i])=>e.evaluate(t)&&i.evaluate(t)],[xr(At),(t,e)=>{for(const i of e)if(!i.evaluate(t))return!1;return!0}]]},any:{type:At,overloads:[[[At,At],(t,[e,i])=>e.evaluate(t)||i.evaluate(t)],[xr(At),(t,e)=>{for(const i of e)if(i.evaluate(t))return!0;return!1}]]},"!":[At,[At],(t,[e])=>!e.evaluate(t)],"is-supported-script":[At,[Et],(t,[e])=>{const i=t.globals&&t.globals.isSupportedScript;return!i||i(e.evaluate(t))}],upcase:[Et,[Et],(t,[e])=>e.evaluate(t).toUpperCase()],downcase:[Et,[Et],(t,[e])=>e.evaluate(t).toLowerCase()],concat:[Et,xr(Rt),(t,e)=>e.map((e=>Ce(e.evaluate(t)))).join("")],"resolved-locale":[Et,[Lt],(t,[e])=>e.evaluate(t).resolvedLocale()]});class Or{constructor(t,e){var i;this.expression=t,this._warningHistory={},this._evaluator=new Le,this._defaultValue=e?"color"===(i=e).type&&Ar(i.default)?new me(0,0,0,0):"color"===i.type?me.parse(i.default)||null:"padding"===i.type?xe.parse(i.default)||null:"variableAnchorOffsetCollection"===i.type?we.parse(i.default)||null:"projectionDefinition"===i.type?Pe.parse(i.default)||null:void 0===i.default?null:i.default:null,this._enumValues=e&&"enum"===e.type?e.values:null}evaluateWithoutErrorHandling(t,e,i,r,n,s){return this._evaluator.globals=t,this._evaluator.feature=e,this._evaluator.featureState=i,this._evaluator.canonical=r,this._evaluator.availableImages=n||null,this._evaluator.formattedSection=s,this.expression.evaluate(this._evaluator)}evaluate(t,e,i,r,n,s){this._evaluator.globals=t,this._evaluator.feature=e||null,this._evaluator.featureState=i||null,this._evaluator.canonical=r,this._evaluator.availableImages=n||null,this._evaluator.formattedSection=s||null;try{const t=this.expression.evaluate(this._evaluator);if(null==t||"number"==typeof t&&t!=t)return this._defaultValue;if(this._enumValues&&!(t in this._enumValues))throw new ve(`Expected value to be one of ${Object.keys(this._enumValues).map((t=>JSON.stringify(t))).join(", ")}, but found ${JSON.stringify(t)} instead.`);return t}catch(t){return this._warningHistory[t.message]||(this._warningHistory[t.message]=!0,"undefined"!=typeof console&&console.warn(t.message)),this._defaultValue}}}function jr(t){return Array.isArray(t)&&t.length>0&&"string"==typeof t[0]&&t[0]in fr}function Vr(t,e){const i=new Fe(fr,vr,[],e?function(t){const e={color:zt,string:Et,number:Ct,enum:Et,boolean:At,formatted:Ft,padding:Bt,projectionDefinition:kt,resolvedImage:Ot,variableAnchorOffsetCollection:jt};return"array"===t.type?Vt(e[t.value]||Rt,t.length):e[t.type]}(e):void 0),r=i.parse(t,void 0,void 0,void 0,e&&"string"===e.type?{typeAnnotation:"coerce"}:void 0);return r?Pr(new Or(r,e)):Mr(i.errors)}class Nr{constructor(t,e){this.kind=t,this._styleExpression=e,this.isStateDependent="constant"!==t&&!wr(e.expression)}evaluateWithoutErrorHandling(t,e,i,r,n,s){return this._styleExpression.evaluateWithoutErrorHandling(t,e,i,r,n,s)}evaluate(t,e,i,r,n,s){return this._styleExpression.evaluate(t,e,i,r,n,s)}}class Ur{constructor(t,e,i,r){this.kind=t,this.zoomStops=i,this._styleExpression=e,this.isStateDependent="camera"!==t&&!wr(e.expression),this.interpolationType=r}evaluateWithoutErrorHandling(t,e,i,r,n,s){return this._styleExpression.evaluateWithoutErrorHandling(t,e,i,r,n,s)}evaluate(t,e,i,r,n,s){return this._styleExpression.evaluate(t,e,i,r,n,s)}interpolationFactor(t,e,i){return this.interpolationType?Je.interpolationFactor(this.interpolationType,t,e,i):0}}function Zr(t,e){const i=Vr(t,e);if("error"===i.result)return i;const r=i.value.expression,n=br(r);if(!n&&!Sr(e))return Mr([new Mt("","data expressions not supported")]);const s=Tr(r,["zoom"]);if(!s&&!Ir(e))return Mr([new Mt("","zoom expressions not supported")]);const o=$r(r);return o||s?o instanceof Mt?Mr([o]):o instanceof Je&&!Cr(e)?Mr([new Mt("",'"interpolate" expressions cannot be used with this property')]):Pr(o?new Ur(n?"camera":"composite",i.value,o.labels,o instanceof Je?o.interpolation:void 0):new Nr(n?"constant":"source",i.value)):Mr([new Mt("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class Gr{constructor(t,e){this._parameters=t,this._specification=e,Pt(this,kr(this._parameters,this._specification))}static deserialize(t){return new Gr(t._parameters,t._specification)}static serialize(t){return{_parameters:t._parameters,_specification:t._specification}}}function $r(t){let e=null;if(t instanceof Be)e=$r(t.result);else if(t instanceof ei){for(const i of t.args)if(e=$r(i),e)break}else(t instanceof qe||t instanceof Je)&&t.input instanceof mr&&"zoom"===t.input.name&&(e=t);return e instanceof Mt||t.eachChild((t=>{const i=$r(t);i instanceof Mt?e=i:!e&&i?e=new Mt("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):e&&i&&e!==i&&(e=new Mt("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))})),e}function qr(t){if(!0===t||!1===t)return!0;if(!Array.isArray(t)||0===t.length)return!1;switch(t[0]){case"has":return t.length>=2&&"$id"!==t[1]&&"$type"!==t[1];case"in":return t.length>=3&&("string"!=typeof t[1]||Array.isArray(t[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==t.length||Array.isArray(t[1])||Array.isArray(t[2]);case"any":case"all":for(const e of t.slice(1))if(!qr(e)&&"boolean"!=typeof e)return!1;return!0;default:return!0}}const Hr={type:"boolean",default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}};function Xr(t){if(null==t)return{filter:()=>!0,needGeometry:!1};qr(t)||(t=Yr(t));const e=Vr(t,Hr);if("error"===e.result)throw new Error(e.value.map((t=>`${t.key}: ${t.message}`)).join(", "));return{filter:(t,i,r)=>e.value.evaluate(t,i,{},r),needGeometry:Kr(t)}}function Wr(t,e){return te?1:0}function Kr(t){if(!Array.isArray(t))return!1;if("within"===t[0]||"distance"===t[0])return!0;for(let e=1;e"===e||"<="===e||">="===e?Jr(t[1],t[2],e):"any"===e?(i=t.slice(1),["any"].concat(i.map(Yr))):"all"===e?["all"].concat(t.slice(1).map(Yr)):"none"===e?["all"].concat(t.slice(1).map(Yr).map(en)):"in"===e?Qr(t[1],t.slice(2)):"!in"===e?en(Qr(t[1],t.slice(2))):"has"===e?tn(t[1]):"!has"!==e||en(tn(t[1]));var i}function Jr(t,e,i){switch(t){case"$type":return[`filter-type-${i}`,e];case"$id":return[`filter-id-${i}`,e];default:return[`filter-${i}`,t,e]}}function Qr(t,e){if(0===e.length)return!1;switch(t){case"$type":return["filter-type-in",["literal",e]];case"$id":return["filter-id-in",["literal",e]];default:return e.length>200&&!e.some((t=>typeof t!=typeof e[0]))?["filter-in-large",t,["literal",e.sort(Wr)]]:["filter-in-small",t,["literal",e]]}}function tn(t){switch(t){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",t]}}function en(t){return["!",t]}function rn(t){const e=typeof t;if("number"===e||"boolean"===e||"string"===e||null==t)return JSON.stringify(t);if(Array.isArray(t)){let e="[";for(const i of t)e+=`${rn(i)},`;return`${e}]`}const i=Object.keys(t).sort();let r="{";for(let n=0;nr.maximum?[new Tt(e,i,`${i} is greater than the maximum value ${r.maximum}`)]:[]}function un(t){const e=t.valueSpec,i=on(t.value.type);let r,n,s,o={};const a="categorical"!==i&&void 0===t.value.property,l=!a,c="array"===Er(t.value.stops)&&"array"===Er(t.value.stops[0])&&"object"===Er(t.value.stops[0][0]),h=ln({key:t.key,value:t.value,valueSpec:t.styleSpec.function,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{stops:function(t){if("identity"===i)return[new Tt(t.key,t.value,'identity function may not have a "stops" property')];let e=[];const r=t.value;return e=e.concat(cn({key:t.key,value:r,valueSpec:t.valueSpec,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:u})),"array"===Er(r)&&0===r.length&&e.push(new Tt(t.key,r,"array must have at least one stop")),e},default:function(t){return t.validateSpec({key:t.key,value:t.value,valueSpec:e,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec})}}});return"identity"===i&&a&&h.push(new Tt(t.key,t.value,'missing required property "property"')),"identity"===i||t.value.stops||h.push(new Tt(t.key,t.value,'missing required property "stops"')),"exponential"===i&&t.valueSpec.expression&&!Cr(t.valueSpec)&&h.push(new Tt(t.key,t.value,"exponential functions not supported")),t.styleSpec.$version>=8&&(l&&!Sr(t.valueSpec)?h.push(new Tt(t.key,t.value,"property functions not supported")):a&&!Ir(t.valueSpec)&&h.push(new Tt(t.key,t.value,"zoom functions not supported"))),"categorical"!==i&&!c||void 0!==t.value.property||h.push(new Tt(t.key,t.value,'"property" property is required')),h;function u(t){let i=[];const r=t.value,a=t.key;if("array"!==Er(r))return[new Tt(a,r,`array expected, ${Er(r)} found`)];if(2!==r.length)return[new Tt(a,r,`array length 2 expected, length ${r.length} found`)];if(c){if("object"!==Er(r[0]))return[new Tt(a,r,`object expected, ${Er(r[0])} found`)];if(void 0===r[0].zoom)return[new Tt(a,r,"object stop key must have zoom")];if(void 0===r[0].value)return[new Tt(a,r,"object stop key must have value")];if(s&&s>on(r[0].zoom))return[new Tt(a,r[0].zoom,"stop zoom values must appear in ascending order")];on(r[0].zoom)!==s&&(s=on(r[0].zoom),n=void 0,o={}),i=i.concat(ln({key:`${a}[0]`,value:r[0],valueSpec:{zoom:{}},validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:hn,value:d}}))}else i=i.concat(d({key:`${a}[0]`,value:r[0],valueSpec:{},validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec},r));return jr(an(r[1]))?i.concat([new Tt(`${a}[1]`,r[1],"expressions are not allowed in function stops.")]):i.concat(t.validateSpec({key:`${a}[1]`,value:r[1],valueSpec:e,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec}))}function d(t,s){const a=Er(t.value),l=on(t.value),c=null!==t.value?t.value:s;if(r){if(a!==r)return[new Tt(t.key,c,`${a} stop domain type must match previous stop domain type ${r}`)]}else r=a;if("number"!==a&&"string"!==a&&"boolean"!==a)return[new Tt(t.key,c,"stop domain value must be a number, string, or boolean")];if("number"!==a&&"categorical"!==i){let r=`number expected, ${a} found`;return Sr(e)&&void 0===i&&(r+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new Tt(t.key,c,r)]}return"categorical"!==i||"number"!==a||isFinite(l)&&Math.floor(l)===l?"categorical"!==i&&"number"===a&&void 0!==n&&lnew Tt(`${t.key}${e.key}`,t.value,e.message)));const i=e.value.expression||e.value._styleExpression.expression;if("property"===t.expressionContext&&"text-font"===t.propertyKey&&!i.outputDefined())return[new Tt(t.key,t.value,`Invalid data expression for "${t.propertyKey}". Output values must be contained as literals within the expression.`)];if("property"===t.expressionContext&&"layout"===t.propertyType&&!wr(i))return[new Tt(t.key,t.value,'"feature-state" data expressions are not supported with layout properties.')];if("filter"===t.expressionContext&&!wr(i))return[new Tt(t.key,t.value,'"feature-state" data expressions are not supported with filters.')];if(t.expressionContext&&0===t.expressionContext.indexOf("cluster")){if(!Tr(i,["zoom","feature-state"]))return[new Tt(t.key,t.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if("cluster-initial"===t.expressionContext&&!br(i))return[new Tt(t.key,t.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function pn(t){const e=t.key,i=t.value,r=t.valueSpec,n=[];return Array.isArray(r.values)?-1===r.values.indexOf(on(i))&&n.push(new Tt(e,i,`expected one of [${r.values.join(", ")}], ${JSON.stringify(i)} found`)):-1===Object.keys(r.values).indexOf(on(i))&&n.push(new Tt(e,i,`expected one of [${Object.keys(r.values).join(", ")}], ${JSON.stringify(i)} found`)),n}function fn(t){return qr(an(t.value))?dn(Pt({},t,{expressionContext:"filter",valueSpec:{value:"boolean"}})):mn(t)}function mn(t){const e=t.value,i=t.key;if("array"!==Er(e))return[new Tt(i,e,`array expected, ${Er(e)} found`)];const r=t.styleSpec;let n,s=[];if(e.length<1)return[new Tt(i,e,"filter array must have at least 1 element")];switch(s=s.concat(pn({key:`${i}[0]`,value:e[0],valueSpec:r.filter_operator,style:t.style,styleSpec:t.styleSpec})),on(e[0])){case"<":case"<=":case">":case">=":e.length>=2&&"$type"===on(e[1])&&s.push(new Tt(i,e,`"$type" cannot be use with operator "${e[0]}"`));case"==":case"!=":3!==e.length&&s.push(new Tt(i,e,`filter array for operator "${e[0]}" must have 3 elements`));case"in":case"!in":e.length>=2&&(n=Er(e[1]),"string"!==n&&s.push(new Tt(`${i}[1]`,e[1],`string expected, ${n} found`)));for(let o=2;o{t in i&&e.push(new Tt(r,i[t],`"${t}" is prohibited for ref layers`))})),n.layers.forEach((e=>{on(e.id)===a&&(t=e)})),t?t.ref?e.push(new Tt(r,i.ref,"ref cannot reference another ref layer")):o=on(t.type):e.push(new Tt(r,i.ref,`ref layer "${a}" not found`))}else if("background"!==o)if(i.source){const t=n.sources&&n.sources[i.source],s=t&&on(t.type);t?"vector"===s&&"raster"===o?e.push(new Tt(r,i.source,`layer "${i.id}" requires a raster source`)):"raster-dem"!==s&&"hillshade"===o?e.push(new Tt(r,i.source,`layer "${i.id}" requires a raster-dem source`)):"raster"===s&&"raster"!==o?e.push(new Tt(r,i.source,`layer "${i.id}" requires a vector source`)):"vector"!==s||i["source-layer"]?"raster-dem"===s&&"hillshade"!==o?e.push(new Tt(r,i.source,"raster-dem source can only be used with layer type 'hillshade'.")):"line"!==o||!i.paint||!i.paint["line-gradient"]||"geojson"===s&&t.lineMetrics||e.push(new Tt(r,i,`layer "${i.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):e.push(new Tt(r,i,`layer "${i.id}" must specify a "source-layer"`)):e.push(new Tt(r,i.source,`source "${i.source}" not found`))}else e.push(new Tt(r,i,'missing required property "source"'));return e=e.concat(ln({key:r,value:i,valueSpec:s.layer,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,objectElementValidators:{"*":()=>[],type:()=>t.validateSpec({key:`${r}.type`,value:i.type,valueSpec:s.layer.type,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,object:i,objectKey:"type"}),filter:fn,layout:t=>ln({layer:i,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,objectElementValidators:{"*":t=>yn(Pt({layerType:o},t))}}),paint:t=>ln({layer:i,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,objectElementValidators:{"*":t=>gn(Pt({layerType:o},t))}})}})),e}function vn(t){const e=t.value,i=t.key,r=Er(e);return"string"!==r?[new Tt(i,e,`string expected, ${r} found`)]:[]}const bn={promoteId:function({key:t,value:e}){if("string"===Er(e))return vn({key:t,value:e});{const i=[];for(const r in e)i.push(...vn({key:`${t}.${r}`,value:e[r]}));return i}}};function wn(t){const e=t.value,i=t.key,r=t.styleSpec,n=t.style,s=t.validateSpec;if(!e.type)return[new Tt(i,e,'"type" is required')];const o=on(e.type);let a;switch(o){case"vector":case"raster":return a=ln({key:i,value:e,valueSpec:r[`source_${o.replace("-","_")}`],style:t.style,styleSpec:r,objectElementValidators:bn,validateSpec:s}),a;case"raster-dem":return a=function(t){var e;const i=null!==(e=t.sourceName)&&void 0!==e?e:"",r=t.value,n=t.styleSpec,s=n.source_raster_dem,o=t.style;let a=[];const l=Er(r);if(void 0===r)return a;if("object"!==l)return a.push(new Tt("source_raster_dem",r,`object expected, ${l} found`)),a;const c="custom"===on(r.encoding),h=["redFactor","greenFactor","blueFactor","baseShift"],u=t.value.encoding?`"${t.value.encoding}"`:"Default";for(const d in r)!c&&h.includes(d)?a.push(new Tt(d,r[d],`In "${i}": "${d}" is only valid when "encoding" is set to "custom". ${u} encoding found`)):s[d]?a=a.concat(t.validateSpec({key:d,value:r[d],valueSpec:s[d],validateSpec:t.validateSpec,style:o,styleSpec:n})):a.push(new Tt(d,r[d],`unknown property "${d}"`));return a}({sourceName:i,value:e,style:t.style,styleSpec:r,validateSpec:s}),a;case"geojson":if(a=ln({key:i,value:e,valueSpec:r.source_geojson,style:n,styleSpec:r,validateSpec:s,objectElementValidators:bn}),e.cluster)for(const t in e.clusterProperties){const[r,n]=e.clusterProperties[t],o="string"==typeof r?[r,["accumulated"],["get",t]]:r;a.push(...dn({key:`${i}.${t}.map`,value:n,validateSpec:s,expressionContext:"cluster-map"})),a.push(...dn({key:`${i}.${t}.reduce`,value:o,validateSpec:s,expressionContext:"cluster-reduce"}))}return a;case"video":return ln({key:i,value:e,valueSpec:r.source_video,style:n,validateSpec:s,styleSpec:r});case"image":return ln({key:i,value:e,valueSpec:r.source_image,style:n,validateSpec:s,styleSpec:r});case"canvas":return[new Tt(i,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return pn({key:`${i}.type`,value:e.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]},style:n,validateSpec:s,styleSpec:r})}}function Tn(t){const e=t.value,i=t.styleSpec,r=i.light,n=t.style;let s=[];const o=Er(e);if(void 0===e)return s;if("object"!==o)return s=s.concat([new Tt("light",e,`object expected, ${o} found`)]),s;for(const a in e){const o=a.match(/^(.*)-transition$/);s=s.concat(o&&r[o[1]]&&r[o[1]].transition?t.validateSpec({key:a,value:e[a],valueSpec:i.transition,validateSpec:t.validateSpec,style:n,styleSpec:i}):r[a]?t.validateSpec({key:a,value:e[a],valueSpec:r[a],validateSpec:t.validateSpec,style:n,styleSpec:i}):[new Tt(a,e[a],`unknown property "${a}"`)])}return s}function Pn(t){const e=t.value,i=t.styleSpec,r=i.sky,n=t.style,s=Er(e);if(void 0===e)return[];if("object"!==s)return[new Tt("sky",e,`object expected, ${s} found`)];let o=[];for(const a in e)o=o.concat(r[a]?t.validateSpec({key:a,value:e[a],valueSpec:r[a],style:n,styleSpec:i}):[new Tt(a,e[a],`unknown property "${a}"`)]);return o}function Mn(t){const e=t.value,i=t.styleSpec,r=i.terrain,n=t.style;let s=[];const o=Er(e);if(void 0===e)return s;if("object"!==o)return s=s.concat([new Tt("terrain",e,`object expected, ${o} found`)]),s;for(const a in e)s=s.concat(r[a]?t.validateSpec({key:a,value:e[a],valueSpec:r[a],validateSpec:t.validateSpec,style:n,styleSpec:i}):[new Tt(a,e[a],`unknown property "${a}"`)]);return s}function Sn(t){let e=[];const i=t.value,r=t.key;if(Array.isArray(i)){const n=[],s=[];for(const o in i)i[o].id&&n.includes(i[o].id)&&e.push(new Tt(r,i,`all the sprites' ids must be unique, but ${i[o].id} is duplicated`)),n.push(i[o].id),i[o].url&&s.includes(i[o].url)&&e.push(new Tt(r,i,`all the sprites' URLs must be unique, but ${i[o].url} is duplicated`)),s.push(i[o].url),e=e.concat(ln({key:`${r}[${o}]`,value:i[o],valueSpec:{id:{type:"string",required:!0},url:{type:"string",required:!0}},validateSpec:t.validateSpec}));return e}return vn({key:r,value:i})}const In={"*":()=>[],array:cn,boolean:function(t){const e=t.value,i=t.key,r=Er(e);return"boolean"!==r?[new Tt(i,e,`boolean expected, ${r} found`)]:[]},number:hn,color:function(t){const e=t.key,i=t.value,r=Er(i);return"string"!==r?[new Tt(e,i,`color expected, ${r} found`)]:me.parse(String(i))?[]:[new Tt(e,i,`color expected, "${i}" found`)]},constants:sn,enum:pn,filter:fn,function:un,layer:xn,object:ln,source:wn,light:Tn,sky:Pn,terrain:Mn,projection:function(t){const e=t.value,i=t.styleSpec,r=i.projection,n=t.style,s=Er(e);if(void 0===e)return[];if("object"!==s)return[new Tt("projection",e,`object expected, ${s} found`)];let o=[];for(const a in e)o=o.concat(r[a]?t.validateSpec({key:a,value:e[a],valueSpec:r[a],style:n,styleSpec:i}):[new Tt(a,e[a],`unknown property "${a}"`)]);return o},projectionDefinition:function(t){const e=t.key;let i=t.value;i=i instanceof String?i.valueOf():i;const r=Er(i);return"array"!==r||function(t){return Array.isArray(t)&&3===t.length&&"string"==typeof t[0]&&"string"==typeof t[1]&&"number"==typeof t[2]}(i)||function(t){return!!["interpolate","step","literal"].includes(t[0])}(i)?["array","string"].includes(r)?[]:[new Tt(e,i,`projection expected, invalid type "${r}" found`)]:[new Tt(e,i,`projection expected, invalid array ${JSON.stringify(i)} found`)]},string:vn,formatted:function(t){return 0===vn(t).length?[]:dn(t)},resolvedImage:function(t){return 0===vn(t).length?[]:dn(t)},padding:function(t){const e=t.key,i=t.value;if("array"===Er(i)){if(i.length<1||i.length>4)return[new Tt(e,i,`padding requires 1 to 4 values; ${i.length} values found`)];const r={type:"number"};let n=[];for(let s=0;s[]}})),t.constants&&(i=i.concat(sn({key:"constants",value:t.constants,style:t,styleSpec:e,validateSpec:Cn}))),kn(i)}function zn(t){return function(e){return t({...e,validateSpec:Cn})}}function kn(t){return[].concat(t).sort(((t,e)=>t.line-e.line))}function Dn(t){return function(...e){return kn(t.apply(this,e))}}An.source=Dn(zn(wn)),An.sprite=Dn(zn(Sn)),An.glyphs=Dn(zn(En)),An.light=Dn(zn(Tn)),An.sky=Dn(zn(Pn)),An.terrain=Dn(zn(Mn)),An.layer=Dn(zn(xn)),An.filter=Dn(zn(fn)),An.paintProperty=Dn(zn(gn)),An.layoutProperty=Dn(zn(yn));const Rn=An,Ln=Rn.light,Fn=Rn.sky,Bn=Rn.paintProperty,On=Rn.layoutProperty;function jn(t,e){let i=!1;if(e&&e.length)for(const r of e)t.fire(new ct(new Error(r.message))),i=!0;return i}class Vn{constructor(t,e,i){const r=this.cells=[];if(t instanceof ArrayBuffer){this.arrayBuffer=t;const n=new Int32Array(this.arrayBuffer);t=n[0],this.d=(e=n[1])+2*(i=n[2]);for(let t=0;t=c[l+0]&&r>=c[l+1])?(o[u]=!0,s.push(n[u])):o[u]=!1}}}}_forEachCell(t,e,i,r,n,s,o,a){const l=this._convertToCellCoord(t),c=this._convertToCellCoord(e),h=this._convertToCellCoord(i),u=this._convertToCellCoord(r);for(let d=l;d<=h;d++)for(let l=c;l<=u;l++){const c=this.d*l+d;if((!a||a(this._convertFromCellCoord(d),this._convertFromCellCoord(l),this._convertFromCellCoord(d+1),this._convertFromCellCoord(l+1)))&&n.call(this,t,e,i,r,c,s,o,a))return}}_convertFromCellCoord(t){return(t-this.padding)/this.scale}_convertToCellCoord(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))}toArrayBuffer(){if(this.arrayBuffer)return this.arrayBuffer;const t=this.cells,e=3+this.cells.length+1+1;let i=0;for(let s=0;s=0)continue;const s=t[r];n[r]=Nn[i].shallow.indexOf(r)>=0?s:qn(s,e)}t instanceof Error&&(n.message=t.message)}if(n.$name)throw new Error("$name property is reserved for worker serialization logic.");return"Object"!==i&&(n.$name=i),n}function Hn(t){if($n(t))return t;if(Array.isArray(t))return t.map(Hn);if("object"!=typeof t)throw new Error("can't deserialize object of type "+typeof t);const e=Gn(t)||"Object";if(!Nn[e])throw new Error(`can't deserialize unregistered class ${e}`);const{klass:i}=Nn[e];if(!i)throw new Error(`can't deserialize unregistered class ${e}`);if(i.deserialize)return i.deserialize(t);const r=Object.create(i.prototype);for(const n of Object.keys(t)){if("$name"===n)continue;const i=t[n];r[n]=Nn[e].shallow.indexOf(n)>=0?i:Hn(i)}return r}class Xn{constructor(){this.first=!0}update(t,e){const i=Math.floor(t);return this.first?(this.first=!1,this.lastIntegerZoom=i,this.lastIntegerZoomTime=0,this.lastZoom=t,this.lastFloorZoom=i,!0):(this.lastFloorZoom>i?(this.lastIntegerZoom=i+1,this.lastIntegerZoomTime=e):this.lastFloorZoomt>=128&&t<=255,"Hangul Jamo":t=>t>=4352&&t<=4607,Khmer:t=>t>=6016&&t<=6143,"General Punctuation":t=>t>=8192&&t<=8303,"Letterlike Symbols":t=>t>=8448&&t<=8527,"Number Forms":t=>t>=8528&&t<=8591,"Miscellaneous Technical":t=>t>=8960&&t<=9215,"Control Pictures":t=>t>=9216&&t<=9279,"Optical Character Recognition":t=>t>=9280&&t<=9311,"Enclosed Alphanumerics":t=>t>=9312&&t<=9471,"Geometric Shapes":t=>t>=9632&&t<=9727,"Miscellaneous Symbols":t=>t>=9728&&t<=9983,"Miscellaneous Symbols and Arrows":t=>t>=11008&&t<=11263,"Ideographic Description Characters":t=>t>=12272&&t<=12287,"CJK Symbols and Punctuation":t=>t>=12288&&t<=12351,Katakana:t=>t>=12448&&t<=12543,Kanbun:t=>t>=12688&&t<=12703,"CJK Strokes":t=>t>=12736&&t<=12783,"Enclosed CJK Letters and Months":t=>t>=12800&&t<=13055,"CJK Compatibility":t=>t>=13056&&t<=13311,"Yijing Hexagram Symbols":t=>t>=19904&&t<=19967,"Private Use Area":t=>t>=57344&&t<=63743,"Vertical Forms":t=>t>=65040&&t<=65055,"CJK Compatibility Forms":t=>t>=65072&&t<=65103,"Small Form Variants":t=>t>=65104&&t<=65135,"Halfwidth and Fullwidth Forms":t=>t>=65280&&t<=65519};function Kn(t){for(const e of t)if(is(e.charCodeAt(0)))return!0;return!1}function Yn(t){for(const e of t)if(!ts(e.charCodeAt(0)))return!1;return!0}function Jn(t){const e=t.map((t=>{try{return new RegExp(`\\p{sc=${t}}`,"u").source}catch(t){return null}})).filter((t=>t));return new RegExp(e.join("|"),"u")}const Qn=Jn(["Arab","Dupl","Mong","Ougr","Syrc"]);function ts(t){return!Qn.test(String.fromCodePoint(t))}const es=Jn(["Bopo","Hani","Hira","Kana","Kits","Nshu","Tang","Yiii"]);function is(t){return!(746!==t&&747!==t&&(t<4352||!(Wn["CJK Compatibility Forms"](t)&&!(t>=65097&&t<=65103)||Wn["CJK Compatibility"](t)||Wn["CJK Strokes"](t)||!(!Wn["CJK Symbols and Punctuation"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||Wn["Enclosed CJK Letters and Months"](t)||Wn["Ideographic Description Characters"](t)||Wn.Kanbun(t)||Wn.Katakana(t)&&12540!==t||!(!Wn["Halfwidth and Fullwidth Forms"](t)||65288===t||65289===t||65293===t||t>=65306&&t<=65310||65339===t||65341===t||65343===t||t>=65371&&t<=65503||65507===t||t>=65512&&t<=65519)||!(!Wn["Small Form Variants"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||Wn["Vertical Forms"](t)||Wn["Yijing Hexagram Symbols"](t)||/\p{sc=Cans}/u.test(String.fromCodePoint(t))||/\p{sc=Hang}/u.test(String.fromCodePoint(t))||es.test(String.fromCodePoint(t)))))}function rs(t){return!(is(t)||function(t){return!!(Wn["Latin-1 Supplement"](t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||Wn["General Punctuation"](t)&&(8214===t||8224===t||8225===t||8240===t||8241===t||8251===t||8252===t||8258===t||8263===t||8264===t||8265===t||8273===t)||Wn["Letterlike Symbols"](t)||Wn["Number Forms"](t)||Wn["Miscellaneous Technical"](t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||9003===t||t>=9085&&t<=9114||t>=9150&&t<=9165||9167===t||t>=9169&&t<=9179||t>=9186&&t<=9215)||Wn["Control Pictures"](t)&&9251!==t||Wn["Optical Character Recognition"](t)||Wn["Enclosed Alphanumerics"](t)||Wn["Geometric Shapes"](t)||Wn["Miscellaneous Symbols"](t)&&!(t>=9754&&t<=9759)||Wn["Miscellaneous Symbols and Arrows"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||Wn["CJK Symbols and Punctuation"](t)||Wn.Katakana(t)||Wn["Private Use Area"](t)||Wn["CJK Compatibility Forms"](t)||Wn["Small Form Variants"](t)||Wn["Halfwidth and Fullwidth Forms"](t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)}(t))}const ns=Jn(["Adlm","Arab","Armi","Avst","Chrs","Cprt","Egyp","Elym","Gara","Hatr","Hebr","Hung","Khar","Lydi","Mand","Mani","Mend","Merc","Mero","Narb","Nbat","Nkoo","Orkh","Palm","Phli","Phlp","Phnx","Prti","Rohg","Samr","Sarb","Sogo","Syrc","Thaa","Todr","Yezi"]);function ss(t){return ns.test(String.fromCodePoint(t))}function os(t,e){return!(!e&&ss(t)||t>=2304&&t<=3583||t>=3840&&t<=4255||Wn.Khmer(t))}function as(t){for(const e of t)if(ss(e.charCodeAt(0)))return!0;return!1}const ls=new class{constructor(){this.TIMEOUT=5e3,this.applyArabicShaping=null,this.processBidirectionalText=null,this.processStyledBidirectionalText=null,this.pluginStatus="unavailable",this.pluginURL=null,this.loadScriptResolve=()=>{}}setState(t){this.pluginStatus=t.pluginStatus,this.pluginURL=t.pluginURL}getState(){return{pluginStatus:this.pluginStatus,pluginURL:this.pluginURL}}setMethods(t){if(ls.isParsed())throw new Error("RTL text plugin already registered.");this.applyArabicShaping=t.applyArabicShaping,this.processBidirectionalText=t.processBidirectionalText,this.processStyledBidirectionalText=t.processStyledBidirectionalText,this.loadScriptResolve()}isParsed(){return null!=this.applyArabicShaping&&null!=this.processBidirectionalText&&null!=this.processStyledBidirectionalText}getRTLTextPluginStatus(){return this.pluginStatus}syncState(t,i){return e(this,void 0,void 0,(function*(){if(this.isParsed())return this.getState();if("loading"!==t.pluginStatus)return this.setState(t),t;const e=t.pluginURL,r=new Promise((t=>{this.loadScriptResolve=t}));i(e);const n=new Promise((t=>setTimeout((()=>t()),this.TIMEOUT)));if(yield Promise.race([r,n]),this.isParsed()){const t={pluginStatus:"loaded",pluginURL:e};return this.setState(t),t}throw this.setState({pluginStatus:"error",pluginURL:""}),new Error(`RTL Text Plugin failed to import scripts from ${e}`)}))}};class cs{constructor(t,e){this.zoom=t,e?(this.now=e.now,this.fadeDuration=e.fadeDuration,this.zoomHistory=e.zoomHistory,this.transition=e.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new Xn,this.transition={})}isSupportedScript(t){return function(t,e){for(const i of t)if(!os(i.charCodeAt(0),e))return!1;return!0}(t,"loaded"===ls.getRTLTextPluginStatus())}crossFadingFactor(){return 0===this.fadeDuration?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){const t=this.zoom,e=t-Math.floor(t),i=this.crossFadingFactor();return t>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:e+(1-e)*i}:{fromScale:.5,toScale:1,t:1-(1-i)*e}}}class hs{constructor(t,e){this.property=t,this.value=e,this.expression=function(t,e){if(Ar(t))return new Gr(t,e);if(jr(t)){const i=Zr(t,e);if("error"===i.result)throw new Error(i.value.map((t=>`${t.key}: ${t.message}`)).join(", "));return i.value}{let i=t;return"color"===e.type&&"string"==typeof t?i=me.parse(t):"padding"!==e.type||"number"!=typeof t&&!Array.isArray(t)?"variableAnchorOffsetCollection"===e.type&&Array.isArray(t)?i=we.parse(t):"projectionDefinition"===e.type&&"string"==typeof t&&(i=Pe.parse(t)):i=xe.parse(t),{kind:"constant",evaluate:()=>i}}}(void 0===e?t.specification.default:e,t.specification)}isDataDriven(){return"source"===this.expression.kind||"composite"===this.expression.kind}possiblyEvaluate(t,e,i){return this.property.possiblyEvaluate(this,t,e,i)}}class us{constructor(t){this.property=t,this.value=new hs(t,void 0)}transitioned(t,e){return new ps(this.property,this.value,e,L({},t.transition,this.transition),t.now)}untransitioned(){return new ps(this.property,this.value,null,{},0)}}class ds{constructor(t){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues)}getValue(t){return j(this._values[t].value.value)}setValue(t,e){Object.prototype.hasOwnProperty.call(this._values,t)||(this._values[t]=new us(this._values[t].property)),this._values[t].value=new hs(this._values[t].property,null===e?void 0:j(e))}getTransition(t){return j(this._values[t].transition)}setTransition(t,e){Object.prototype.hasOwnProperty.call(this._values,t)||(this._values[t]=new us(this._values[t].property)),this._values[t].transition=j(e)||void 0}serialize(){const t={};for(const e of Object.keys(this._values)){const i=this.getValue(e);void 0!==i&&(t[e]=i);const r=this.getTransition(e);void 0!==r&&(t[`${e}-transition`]=r)}return t}transitioned(t,e){const i=new fs(this._properties);for(const r of Object.keys(this._values))i._values[r]=this._values[r].transitioned(t,e._values[r]);return i}untransitioned(){const t=new fs(this._properties);for(const e of Object.keys(this._values))t._values[e]=this._values[e].untransitioned();return t}}class ps{constructor(t,e,i,r,n){this.property=t,this.value=e,this.begin=n+r.delay||0,this.end=this.begin+r.duration||0,t.specification.transition&&(r.delay||r.duration)&&(this.prior=i)}possiblyEvaluate(t,e,i){const r=t.now||0,n=this.value.possiblyEvaluate(t,e,i),s=this.prior;if(s){if(r>this.end)return this.prior=null,n;if(this.value.isDataDriven())return this.prior=null,n;if(rr.zoomHistory.lastIntegerZoom?{from:t,to:e}:{from:i,to:e}}interpolate(t){return t}}class bs{constructor(t){this.specification=t}possiblyEvaluate(t,e,i,r){if(void 0!==t.value){if("constant"===t.expression.kind){const n=t.expression.evaluate(e,null,{},i,r);return this._calculate(n,n,n,e)}return this._calculate(t.expression.evaluate(new cs(Math.floor(e.zoom-1),e)),t.expression.evaluate(new cs(Math.floor(e.zoom),e)),t.expression.evaluate(new cs(Math.floor(e.zoom+1),e)),e)}}_calculate(t,e,i,r){return r.zoom>r.zoomHistory.lastIntegerZoom?{from:t,to:e}:{from:i,to:e}}interpolate(t){return t}}class ws{constructor(t){this.specification=t}possiblyEvaluate(t,e,i,r){return!!t.expression.evaluate(e,null,{},i,r)}interpolate(){return!1}}class Ts{constructor(t){this.properties=t,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];for(const e in t){const i=t[e];i.specification.overridable&&this.overridableProperties.push(e);const r=this.defaultPropertyValues[e]=new hs(i,void 0),n=this.defaultTransitionablePropertyValues[e]=new us(i);this.defaultTransitioningPropertyValues[e]=n.untransitioned(),this.defaultPossiblyEvaluatedValues[e]=r.possiblyEvaluate({})}}}Un("DataDrivenProperty",xs),Un("DataConstantProperty",ys),Un("CrossFadedDataDrivenProperty",vs),Un("CrossFadedProperty",bs),Un("ColorRampProperty",ws);const Ps="-transition";class Ms extends ht{constructor(t,e){if(super(),this.id=t.id,this.type=t.type,this._featureFilter={filter:()=>!0,needGeometry:!1},"custom"!==t.type&&(this.metadata=t.metadata,this.minzoom=t.minzoom,this.maxzoom=t.maxzoom,"background"!==t.type&&(this.source=t.source,this.sourceLayer=t["source-layer"],this.filter=t.filter),e.layout&&(this._unevaluatedLayout=new ms(e.layout)),e.paint)){this._transitionablePaint=new ds(e.paint);for(const e in t.paint)this.setPaintProperty(e,t.paint[e],{validate:!1});for(const e in t.layout)this.setLayoutProperty(e,t.layout[e],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new gs(e.paint)}}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(t){return"visibility"===t?this.visibility:this._unevaluatedLayout.getValue(t)}setLayoutProperty(t,e,i={}){null!=e&&this._validate(On,`layers.${this.id}.layout.${t}`,t,e,i)||("visibility"!==t?this._unevaluatedLayout.setValue(t,e):this.visibility=e)}getPaintProperty(t){return t.endsWith(Ps)?this._transitionablePaint.getTransition(t.slice(0,-11)):this._transitionablePaint.getValue(t)}setPaintProperty(t,e,i={}){if(null!=e&&this._validate(Bn,`layers.${this.id}.paint.${t}`,t,e,i))return!1;if(t.endsWith(Ps))return this._transitionablePaint.setTransition(t.slice(0,-11),e||void 0),!1;{const i=this._transitionablePaint._values[t],r="cross-faded-data-driven"===i.property.specification["property-type"],n=i.value.isDataDriven(),s=i.value;this._transitionablePaint.setValue(t,e),this._handleSpecialPaintPropertyUpdate(t);const o=this._transitionablePaint._values[t].value;return o.isDataDriven()||n||r||this._handleOverridablePaintPropertyUpdate(t,s,o)}}_handleSpecialPaintPropertyUpdate(t){}_handleOverridablePaintPropertyUpdate(t,e,i){return!1}isHidden(t){return!!(this.minzoom&&t=this.maxzoom)||"none"===this.visibility}updateTransitions(t){this._transitioningPaint=this._transitionablePaint.transitioned(t,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(t,e){t.getCrossfadeParameters&&(this._crossfadeParameters=t.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(t,void 0,e)),this.paint=this._transitioningPaint.possiblyEvaluate(t,void 0,e)}serialize(){const t={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(t.layout=t.layout||{},t.layout.visibility=this.visibility),O(t,((t,e)=>!(void 0===t||"layout"===e&&!Object.keys(t).length||"paint"===e&&!Object.keys(t).length)))}_validate(t,e,i,r,n={}){return(!n||!1!==n.validate)&&jn(this,t.call(Rn,{key:e,layerType:this.type,objectKey:i,value:r,styleSpec:ut,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(const t in this.paint._values){const e=this.paint.get(t);if(e instanceof _s&&Sr(e.property.specification)&&("source"===e.value.kind||"composite"===e.value.kind)&&e.value.isStateDependent)return!0}return!1}}const Ss={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class Is{constructor(t,e){this._structArray=t,this._pos1=e*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}}class Cs{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(t,e){return t._trim(),e&&(t.isTransferred=!0,e.push(t.arrayBuffer)),{length:t.length,arrayBuffer:t.arrayBuffer}}static deserialize(t){const e=Object.create(this.prototype);return e.arrayBuffer=t.arrayBuffer,e.length=t.length,e.capacity=t.arrayBuffer.byteLength/e.bytesPerElement,e._refreshViews(),e}_trim(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())}clear(){this.length=0}resize(t){this.reserve(t),this.length=t}reserve(t){if(t>this.capacity){this.capacity=Math.max(t,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const e=this.uint8;this._refreshViews(),e&&this.uint8.set(e)}}_refreshViews(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")}}function Es(t,e=1){let i=0,r=0;return{members:t.map((t=>{const n=Ss[t.type].BYTES_PER_ELEMENT,s=i=As(i,Math.max(e,n)),o=t.components||1;return r=Math.max(r,n),i+=n*o,{name:t.name,type:t.type,components:o,offset:s}})),size:As(i,Math.max(r,e)),alignment:e}}function As(t,e){return Math.ceil(t/e)*e}class zs extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,e){const i=this.length;return this.resize(i+1),this.emplace(i,t,e)}emplace(t,e,i){const r=2*t;return this.int16[r+0]=e,this.int16[r+1]=i,t}}zs.prototype.bytesPerElement=4,Un("StructArrayLayout2i4",zs);class ks extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,e,i){const r=this.length;return this.resize(r+1),this.emplace(r,t,e,i)}emplace(t,e,i,r){const n=3*t;return this.int16[n+0]=e,this.int16[n+1]=i,this.int16[n+2]=r,t}}ks.prototype.bytesPerElement=6,Un("StructArrayLayout3i6",ks);class Ds extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,e,i,r){const n=this.length;return this.resize(n+1),this.emplace(n,t,e,i,r)}emplace(t,e,i,r,n){const s=4*t;return this.int16[s+0]=e,this.int16[s+1]=i,this.int16[s+2]=r,this.int16[s+3]=n,t}}Ds.prototype.bytesPerElement=8,Un("StructArrayLayout4i8",Ds);class Rs extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,e,i,r,n,s){const o=this.length;return this.resize(o+1),this.emplace(o,t,e,i,r,n,s)}emplace(t,e,i,r,n,s,o){const a=6*t;return this.int16[a+0]=e,this.int16[a+1]=i,this.int16[a+2]=r,this.int16[a+3]=n,this.int16[a+4]=s,this.int16[a+5]=o,t}}Rs.prototype.bytesPerElement=12,Un("StructArrayLayout2i4i12",Rs);class Ls extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,e,i,r,n,s){const o=this.length;return this.resize(o+1),this.emplace(o,t,e,i,r,n,s)}emplace(t,e,i,r,n,s,o){const a=4*t,l=8*t;return this.int16[a+0]=e,this.int16[a+1]=i,this.uint8[l+4]=r,this.uint8[l+5]=n,this.uint8[l+6]=s,this.uint8[l+7]=o,t}}Ls.prototype.bytesPerElement=8,Un("StructArrayLayout2i4ub8",Ls);class Fs extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,e){const i=this.length;return this.resize(i+1),this.emplace(i,t,e)}emplace(t,e,i){const r=2*t;return this.float32[r+0]=e,this.float32[r+1]=i,t}}Fs.prototype.bytesPerElement=8,Un("StructArrayLayout2f8",Fs);class Bs extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,e,i,r,n,s,o,a,l,c){const h=this.length;return this.resize(h+1),this.emplace(h,t,e,i,r,n,s,o,a,l,c)}emplace(t,e,i,r,n,s,o,a,l,c,h){const u=10*t;return this.uint16[u+0]=e,this.uint16[u+1]=i,this.uint16[u+2]=r,this.uint16[u+3]=n,this.uint16[u+4]=s,this.uint16[u+5]=o,this.uint16[u+6]=a,this.uint16[u+7]=l,this.uint16[u+8]=c,this.uint16[u+9]=h,t}}Bs.prototype.bytesPerElement=20,Un("StructArrayLayout10ui20",Bs);class Os extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,e,i,r,n,s,o,a,l,c,h,u){const d=this.length;return this.resize(d+1),this.emplace(d,t,e,i,r,n,s,o,a,l,c,h,u)}emplace(t,e,i,r,n,s,o,a,l,c,h,u,d){const p=12*t;return this.int16[p+0]=e,this.int16[p+1]=i,this.int16[p+2]=r,this.int16[p+3]=n,this.uint16[p+4]=s,this.uint16[p+5]=o,this.uint16[p+6]=a,this.uint16[p+7]=l,this.int16[p+8]=c,this.int16[p+9]=h,this.int16[p+10]=u,this.int16[p+11]=d,t}}Os.prototype.bytesPerElement=24,Un("StructArrayLayout4i4ui4i24",Os);class js extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,e,i){const r=this.length;return this.resize(r+1),this.emplace(r,t,e,i)}emplace(t,e,i,r){const n=3*t;return this.float32[n+0]=e,this.float32[n+1]=i,this.float32[n+2]=r,t}}js.prototype.bytesPerElement=12,Un("StructArrayLayout3f12",js);class Vs extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(t){const e=this.length;return this.resize(e+1),this.emplace(e,t)}emplace(t,e){return this.uint32[1*t+0]=e,t}}Vs.prototype.bytesPerElement=4,Un("StructArrayLayout1ul4",Vs);class Ns extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,e,i,r,n,s,o,a,l){const c=this.length;return this.resize(c+1),this.emplace(c,t,e,i,r,n,s,o,a,l)}emplace(t,e,i,r,n,s,o,a,l,c){const h=10*t,u=5*t;return this.int16[h+0]=e,this.int16[h+1]=i,this.int16[h+2]=r,this.int16[h+3]=n,this.int16[h+4]=s,this.int16[h+5]=o,this.uint32[u+3]=a,this.uint16[h+8]=l,this.uint16[h+9]=c,t}}Ns.prototype.bytesPerElement=20,Un("StructArrayLayout6i1ul2ui20",Ns);class Us extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,e,i,r,n,s){const o=this.length;return this.resize(o+1),this.emplace(o,t,e,i,r,n,s)}emplace(t,e,i,r,n,s,o){const a=6*t;return this.int16[a+0]=e,this.int16[a+1]=i,this.int16[a+2]=r,this.int16[a+3]=n,this.int16[a+4]=s,this.int16[a+5]=o,t}}Us.prototype.bytesPerElement=12,Un("StructArrayLayout2i2i2i12",Us);class Zs extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,e,i,r,n){const s=this.length;return this.resize(s+1),this.emplace(s,t,e,i,r,n)}emplace(t,e,i,r,n,s){const o=4*t,a=8*t;return this.float32[o+0]=e,this.float32[o+1]=i,this.float32[o+2]=r,this.int16[a+6]=n,this.int16[a+7]=s,t}}Zs.prototype.bytesPerElement=16,Un("StructArrayLayout2f1f2i16",Zs);class Gs extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,e,i,r,n,s){const o=this.length;return this.resize(o+1),this.emplace(o,t,e,i,r,n,s)}emplace(t,e,i,r,n,s,o){const a=16*t,l=4*t,c=8*t;return this.uint8[a+0]=e,this.uint8[a+1]=i,this.float32[l+1]=r,this.float32[l+2]=n,this.int16[c+6]=s,this.int16[c+7]=o,t}}Gs.prototype.bytesPerElement=16,Un("StructArrayLayout2ub2f2i16",Gs);class $s extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,e,i){const r=this.length;return this.resize(r+1),this.emplace(r,t,e,i)}emplace(t,e,i,r){const n=3*t;return this.uint16[n+0]=e,this.uint16[n+1]=i,this.uint16[n+2]=r,t}}$s.prototype.bytesPerElement=6,Un("StructArrayLayout3ui6",$s);class qs extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,e,i,r,n,s,o,a,l,c,h,u,d,p,f,m,_){const g=this.length;return this.resize(g+1),this.emplace(g,t,e,i,r,n,s,o,a,l,c,h,u,d,p,f,m,_)}emplace(t,e,i,r,n,s,o,a,l,c,h,u,d,p,f,m,_,g){const y=24*t,x=12*t,v=48*t;return this.int16[y+0]=e,this.int16[y+1]=i,this.uint16[y+2]=r,this.uint16[y+3]=n,this.uint32[x+2]=s,this.uint32[x+3]=o,this.uint32[x+4]=a,this.uint16[y+10]=l,this.uint16[y+11]=c,this.uint16[y+12]=h,this.float32[x+7]=u,this.float32[x+8]=d,this.uint8[v+36]=p,this.uint8[v+37]=f,this.uint8[v+38]=m,this.uint32[x+10]=_,this.int16[y+22]=g,t}}qs.prototype.bytesPerElement=48,Un("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",qs);class Hs extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,e,i,r,n,s,o,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T,P,M,S,I){const C=this.length;return this.resize(C+1),this.emplace(C,t,e,i,r,n,s,o,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T,P,M,S,I)}emplace(t,e,i,r,n,s,o,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T,P,M,S,I,C){const E=32*t,A=16*t;return this.int16[E+0]=e,this.int16[E+1]=i,this.int16[E+2]=r,this.int16[E+3]=n,this.int16[E+4]=s,this.int16[E+5]=o,this.int16[E+6]=a,this.int16[E+7]=l,this.uint16[E+8]=c,this.uint16[E+9]=h,this.uint16[E+10]=u,this.uint16[E+11]=d,this.uint16[E+12]=p,this.uint16[E+13]=f,this.uint16[E+14]=m,this.uint16[E+15]=_,this.uint16[E+16]=g,this.uint16[E+17]=y,this.uint16[E+18]=x,this.uint16[E+19]=v,this.uint16[E+20]=b,this.uint16[E+21]=w,this.uint16[E+22]=T,this.uint32[A+12]=P,this.float32[A+13]=M,this.float32[A+14]=S,this.uint16[E+30]=I,this.uint16[E+31]=C,t}}Hs.prototype.bytesPerElement=64,Un("StructArrayLayout8i15ui1ul2f2ui64",Hs);class Xs extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t){const e=this.length;return this.resize(e+1),this.emplace(e,t)}emplace(t,e){return this.float32[1*t+0]=e,t}}Xs.prototype.bytesPerElement=4,Un("StructArrayLayout1f4",Xs);class Ws extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,e,i){const r=this.length;return this.resize(r+1),this.emplace(r,t,e,i)}emplace(t,e,i,r){const n=3*t;return this.uint16[6*t+0]=e,this.float32[n+1]=i,this.float32[n+2]=r,t}}Ws.prototype.bytesPerElement=12,Un("StructArrayLayout1ui2f12",Ws);class Ks extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,e,i){const r=this.length;return this.resize(r+1),this.emplace(r,t,e,i)}emplace(t,e,i,r){const n=4*t;return this.uint32[2*t+0]=e,this.uint16[n+2]=i,this.uint16[n+3]=r,t}}Ks.prototype.bytesPerElement=8,Un("StructArrayLayout1ul2ui8",Ks);class Ys extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,e){const i=this.length;return this.resize(i+1),this.emplace(i,t,e)}emplace(t,e,i){const r=2*t;return this.uint16[r+0]=e,this.uint16[r+1]=i,t}}Ys.prototype.bytesPerElement=4,Un("StructArrayLayout2ui4",Ys);class Js extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t){const e=this.length;return this.resize(e+1),this.emplace(e,t)}emplace(t,e){return this.uint16[1*t+0]=e,t}}Js.prototype.bytesPerElement=2,Un("StructArrayLayout1ui2",Js);class Qs extends Cs{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,e,i,r){const n=this.length;return this.resize(n+1),this.emplace(n,t,e,i,r)}emplace(t,e,i,r,n){const s=4*t;return this.float32[s+0]=e,this.float32[s+1]=i,this.float32[s+2]=r,this.float32[s+3]=n,t}}Qs.prototype.bytesPerElement=16,Un("StructArrayLayout4f16",Qs);class to extends Is{get anchorPointX(){return this._structArray.int16[this._pos2+0]}get anchorPointY(){return this._structArray.int16[this._pos2+1]}get x1(){return this._structArray.int16[this._pos2+2]}get y1(){return this._structArray.int16[this._pos2+3]}get x2(){return this._structArray.int16[this._pos2+4]}get y2(){return this._structArray.int16[this._pos2+5]}get featureIndex(){return this._structArray.uint32[this._pos4+3]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+8]}get bucketIndex(){return this._structArray.uint16[this._pos2+9]}get anchorPoint(){return new l(this.anchorPointX,this.anchorPointY)}}to.prototype.size=20;class eo extends Ns{get(t){return new to(this,t)}}Un("CollisionBoxArray",eo);class io extends Is{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+2]}get numGlyphs(){return this._structArray.uint16[this._pos2+3]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+2]}get lineStartIndex(){return this._structArray.uint32[this._pos4+3]}get lineLength(){return this._structArray.uint32[this._pos4+4]}get segment(){return this._structArray.uint16[this._pos2+10]}get lowerSize(){return this._structArray.uint16[this._pos2+11]}get upperSize(){return this._structArray.uint16[this._pos2+12]}get lineOffsetX(){return this._structArray.float32[this._pos4+7]}get lineOffsetY(){return this._structArray.float32[this._pos4+8]}get writingMode(){return this._structArray.uint8[this._pos1+36]}get placedOrientation(){return this._structArray.uint8[this._pos1+37]}set placedOrientation(t){this._structArray.uint8[this._pos1+37]=t}get hidden(){return this._structArray.uint8[this._pos1+38]}set hidden(t){this._structArray.uint8[this._pos1+38]=t}get crossTileID(){return this._structArray.uint32[this._pos4+10]}set crossTileID(t){this._structArray.uint32[this._pos4+10]=t}get associatedIconIndex(){return this._structArray.int16[this._pos2+22]}}io.prototype.size=48;class ro extends qs{get(t){return new io(this,t)}}Un("PlacedSymbolArray",ro);class no extends Is{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+2]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+3]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+4]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+5]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+6]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+7]}get key(){return this._structArray.uint16[this._pos2+8]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+9]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+10]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+11]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+12]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+13]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+14]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get featureIndex(){return this._structArray.uint16[this._pos2+17]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+18]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+19]}get numIconVertices(){return this._structArray.uint16[this._pos2+20]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+21]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+22]}get crossTileID(){return this._structArray.uint32[this._pos4+12]}set crossTileID(t){this._structArray.uint32[this._pos4+12]=t}get textBoxScale(){return this._structArray.float32[this._pos4+13]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+14]}get textAnchorOffsetStartIndex(){return this._structArray.uint16[this._pos2+30]}get textAnchorOffsetEndIndex(){return this._structArray.uint16[this._pos2+31]}}no.prototype.size=64;class so extends Hs{get(t){return new no(this,t)}}Un("SymbolInstanceArray",so);class oo extends Xs{getoffsetX(t){return this.float32[1*t+0]}}Un("GlyphOffsetArray",oo);class ao extends ks{getx(t){return this.int16[3*t+0]}gety(t){return this.int16[3*t+1]}gettileUnitDistanceFromAnchor(t){return this.int16[3*t+2]}}Un("SymbolLineVertexArray",ao);class lo extends Is{get textAnchor(){return this._structArray.uint16[this._pos2+0]}get textOffset0(){return this._structArray.float32[this._pos4+1]}get textOffset1(){return this._structArray.float32[this._pos4+2]}}lo.prototype.size=12;class co extends Ws{get(t){return new lo(this,t)}}Un("TextAnchorOffsetArray",co);class ho extends Is{get featureIndex(){return this._structArray.uint32[this._pos4+0]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+2]}get bucketIndex(){return this._structArray.uint16[this._pos2+3]}}ho.prototype.size=8;class uo extends Ks{get(t){return new ho(this,t)}}Un("FeatureIndexArray",uo);class po extends zs{}class fo extends zs{}class mo extends zs{}class _o extends Rs{}class go extends Ls{}class yo extends Fs{}class xo extends Bs{}class vo extends Os{}class bo extends js{}class wo extends Vs{}class To extends Us{}class Po extends Gs{}class Mo extends $s{}class So extends Ys{}const Io=Es([{name:"a_pos",components:2,type:"Int16"}],4),{members:Co}=Io;class Eo{constructor(t=[]){this._forceNewSegmentOnNextPrepare=!1,this.segments=t}prepareSegment(t,e,i,r){const n=this.segments[this.segments.length-1];return t>Eo.MAX_VERTEX_ARRAY_LENGTH&&N(`Max vertices per segment is ${Eo.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t}. Consider using the \`fillLargeMeshArrays\` function if you require meshes with more than ${Eo.MAX_VERTEX_ARRAY_LENGTH} vertices.`),this._forceNewSegmentOnNextPrepare||!n||n.vertexLength+t>Eo.MAX_VERTEX_ARRAY_LENGTH||n.sortKey!==r?this.createNewSegment(e,i,r):n}createNewSegment(t,e,i){const r={vertexOffset:t.length,primitiveOffset:e.length,vertexLength:0,primitiveLength:0,vaos:{}};return void 0!==i&&(r.sortKey=i),this._forceNewSegmentOnNextPrepare=!1,this.segments.push(r),r}getOrCreateLatestSegment(t,e,i){return this.prepareSegment(0,t,e,i)}forceNewSegmentOnNextPrepare(){this._forceNewSegmentOnNextPrepare=!0}get(){return this.segments}destroy(){for(const t of this.segments)for(const e in t.vaos)t.vaos[e].destroy()}static simpleSegment(t,e,i,r){return new Eo([{vertexOffset:t,primitiveOffset:e,vertexLength:i,primitiveLength:r,vaos:{},sortKey:0}])}}function Ao(t,e){return 256*(t=D(Math.floor(t),0,255))+D(Math.floor(e),0,255)}Eo.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,Un("SegmentVector",Eo);const zo=Es([{name:"a_pattern_from",components:4,type:"Uint16"},{name:"a_pattern_to",components:4,type:"Uint16"},{name:"a_pixel_ratio_from",components:1,type:"Uint16"},{name:"a_pixel_ratio_to",components:1,type:"Uint16"}]);var ko,Do,Ro,Lo={exports:{}},Fo={exports:{}},Bo={exports:{}},Oo=function(){if(Ro)return Lo.exports;Ro=1;var t=(ko||(ko=1,Fo.exports=function(t,e){var i,r,n,s,o,a,l,c;for(r=t.length-(i=3&t.length),n=e,o=3432918353,a=461845907,c=0;c>>16)*o&65535)<<16)&4294967295)<<15|l>>>17))*a+(((l>>>16)*a&65535)<<16)&4294967295)<<13|n>>>19))+((5*(n>>>16)&65535)<<16)&4294967295))+((58964+(s>>>16)&65535)<<16);switch(l=0,i){case 3:l^=(255&t.charCodeAt(c+2))<<16;case 2:l^=(255&t.charCodeAt(c+1))<<8;case 1:n^=l=(65535&(l=(l=(65535&(l^=255&t.charCodeAt(c)))*o+(((l>>>16)*o&65535)<<16)&4294967295)<<15|l>>>17))*a+(((l>>>16)*a&65535)<<16)&4294967295}return n^=t.length,n=2246822507*(65535&(n^=n>>>16))+((2246822507*(n>>>16)&65535)<<16)&4294967295,n=3266489909*(65535&(n^=n>>>13))+((3266489909*(n>>>16)&65535)<<16)&4294967295,(n^=n>>>16)>>>0}),Fo.exports),e=(Do||(Do=1,Bo.exports=function(t,e){for(var i,r=t.length,n=e^r,s=0;r>=4;)i=1540483477*(65535&(i=255&t.charCodeAt(s)|(255&t.charCodeAt(++s))<<8|(255&t.charCodeAt(++s))<<16|(255&t.charCodeAt(++s))<<24))+((1540483477*(i>>>16)&65535)<<16),n=1540483477*(65535&n)+((1540483477*(n>>>16)&65535)<<16)^(i=1540483477*(65535&(i^=i>>>24))+((1540483477*(i>>>16)&65535)<<16)),r-=4,++s;switch(r){case 3:n^=(255&t.charCodeAt(s+2))<<16;case 2:n^=(255&t.charCodeAt(s+1))<<8;case 1:n=1540483477*(65535&(n^=255&t.charCodeAt(s)))+((1540483477*(n>>>16)&65535)<<16)}return n=1540483477*(65535&(n^=n>>>13))+((1540483477*(n>>>16)&65535)<<16),(n^=n>>>15)>>>0}),Bo.exports);return Lo.exports=t,Lo.exports.murmur3=t,Lo.exports.murmur2=e,Lo.exports}(),jo=i(Oo);class Vo{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(t,e,i,r){this.ids.push(No(t)),this.positions.push(e,i,r)}getPositions(t){if(!this.indexed)throw new Error("Trying to get index, but feature positions are not indexed");const e=No(t);let i=0,r=this.ids.length-1;for(;i>1;this.ids[t]>=e?r=t:i=t+1}const n=[];for(;this.ids[i]===e;)n.push({index:this.positions[3*i],start:this.positions[3*i+1],end:this.positions[3*i+2]}),i++;return n}static serialize(t,e){const i=new Float64Array(t.ids),r=new Uint32Array(t.positions);return Uo(i,r,0,i.length-1),e&&e.push(i.buffer,r.buffer),{ids:i,positions:r}}static deserialize(t){const e=new Vo;return e.ids=t.ids,e.positions=t.positions,e.indexed=!0,e}}function No(t){const e=+t;return!isNaN(e)&&e<=Number.MAX_SAFE_INTEGER?e:jo(String(t))}function Uo(t,e,i,r){for(;i>1];let s=i-1,o=r+1;for(;;){do{s++}while(t[s]n);if(s>=o)break;Zo(t,s,o),Zo(e,3*s,3*o),Zo(e,3*s+1,3*o+1),Zo(e,3*s+2,3*o+2)}o-i`u_${t}`)),this.type=i}setUniform(t,e,i){t.set(i.constantOr(this.value))}getBinding(t,e,i){return"color"===this.type?new Ho(t,e):new $o(t,e)}}class Yo{constructor(t,e){this.uniformNames=e.map((t=>`u_${t}`)),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1}setConstantPatternPositions(t,e){this.pixelRatioFrom=e.pixelRatio,this.pixelRatioTo=t.pixelRatio,this.patternFrom=e.tlbr,this.patternTo=t.tlbr}setUniform(t,e,i,r){const n="u_pattern_to"===r?this.patternTo:"u_pattern_from"===r?this.patternFrom:"u_pixel_ratio_to"===r?this.pixelRatioTo:"u_pixel_ratio_from"===r?this.pixelRatioFrom:null;n&&t.set(n)}getBinding(t,e,i){return"u_pattern"===i.substr(0,9)?new qo(t,e):new $o(t,e)}}class Jo{constructor(t,e,i,r){this.expression=t,this.type=i,this.maxValue=0,this.paintVertexAttributes=e.map((t=>({name:`a_${t}`,type:"Float32",components:"color"===i?2:1,offset:0}))),this.paintVertexArray=new r}populatePaintArray(t,e,i,r,n){const s=this.paintVertexArray.length,o=this.expression.evaluate(new cs(0),e,{},r,[],n);this.paintVertexArray.resize(t),this._setPaintValue(s,t,o)}updatePaintArray(t,e,i,r){const n=this.expression.evaluate({zoom:0},i,r);this._setPaintValue(t,e,n)}_setPaintValue(t,e,i){if("color"===this.type){const r=Wo(i);for(let i=t;i`u_${t}_t`)),this.type=i,this.useIntegerZoom=r,this.zoom=n,this.maxValue=0,this.paintVertexAttributes=e.map((t=>({name:`a_${t}`,type:"Float32",components:"color"===i?4:2,offset:0}))),this.paintVertexArray=new s}populatePaintArray(t,e,i,r,n){const s=this.expression.evaluate(new cs(this.zoom),e,{},r,[],n),o=this.expression.evaluate(new cs(this.zoom+1),e,{},r,[],n),a=this.paintVertexArray.length;this.paintVertexArray.resize(t),this._setPaintValue(a,t,s,o)}updatePaintArray(t,e,i,r){const n=this.expression.evaluate({zoom:this.zoom},i,r),s=this.expression.evaluate({zoom:this.zoom+1},i,r);this._setPaintValue(t,e,n,s)}_setPaintValue(t,e,i,r){if("color"===this.type){const n=Wo(i),s=Wo(r);for(let i=t;i`#define HAS_UNIFORM_${t}`)))}return t}getBinderAttributes(){const t=[];for(const e in this.binders){const i=this.binders[e];if(i instanceof Jo||i instanceof Qo)for(let e=0;e!0){this.programConfigurations={};for(const r of t)this.programConfigurations[r.id]=new ea(r,e,i);this.needsUpload=!1,this._featureMap=new Vo,this._bufferOffset=0}populatePaintArrays(t,e,i,r,n,s){for(const o in this.programConfigurations)this.programConfigurations[o].populatePaintArrays(t,e,r,n,s);void 0!==e.id&&this._featureMap.add(e.id,i,this._bufferOffset,t),this._bufferOffset=t,this.needsUpload=!0}updatePaintArrays(t,e,i,r){for(const n of i)this.needsUpload=this.programConfigurations[n.id].updatePaintArrays(t,this._featureMap,e,n,r)||this.needsUpload}get(t){return this.programConfigurations[t]}upload(t){if(this.needsUpload){for(const e in this.programConfigurations)this.programConfigurations[e].upload(t);this.needsUpload=!1}}destroy(){for(const t in this.programConfigurations)this.programConfigurations[t].destroy()}}function ra(t,e){return{"text-opacity":["opacity"],"icon-opacity":["opacity"],"text-color":["fill_color"],"icon-color":["fill_color"],"text-halo-color":["halo_color"],"icon-halo-color":["halo_color"],"text-halo-blur":["halo_blur"],"icon-halo-blur":["halo_blur"],"text-halo-width":["halo_width"],"icon-halo-width":["halo_width"],"line-gap-width":["gapwidth"],"line-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-extrusion-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"]}[t]||[t.replace(`${e}-`,"").replace(/-/g,"_")]}function na(t,e,i){const r={color:{source:Fs,composite:Qs},number:{source:Xs,composite:Fs}},n=function(t){return{"line-pattern":{source:xo,composite:xo},"fill-pattern":{source:xo,composite:xo},"fill-extrusion-pattern":{source:xo,composite:xo}}[t]}(t);return n&&n[i]||r[e][i]}Un("ConstantBinder",Ko),Un("CrossFadedConstantBinder",Yo),Un("SourceExpressionBinder",Jo),Un("CrossFadedCompositeBinder",ta),Un("CompositeExpressionBinder",Qo),Un("ProgramConfiguration",ea,{omit:["_buffers"]}),Un("ProgramConfigurationSet",ia);const sa=Math.pow(2,14)-1,oa=-sa-1;function aa(t){const e=S/t.extent,i=t.loadGeometry();for(let r=0;rr.x+1||sr.y+1)&&N("Geometry exceeds allowed extent, reduce your vector tile buffer size")}}return i}function la(t,e){return{type:t.type,id:t.id,properties:t.properties,geometry:e?aa(t):[]}}const ca=-32768;function ha(t,e,i,r,n){t.emplaceBack(ca+8*e+r,ca+8*i+n)}class ua{constructor(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((t=>t.id)),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new fo,this.indexArray=new Mo,this.segments=new Eo,this.programConfigurations=new ia(t.layers,t.zoom),this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id))}populate(t,e,i){const r=this.layers[0],n=[];let s=null,o=!1,a="heatmap"===r.type;if("circle"===r.type){const t=r;s=t.layout.get("circle-sort-key"),o=!s.isConstant(),a=a||"map"===t.paint.get("circle-pitch-alignment")}const l=a?e.subdivisionGranularity.circle:1;for(const{feature:c,id:h,index:u,sourceLayerIndex:d}of t){const t=this.layers[0]._featureFilter.needGeometry,e=la(c,t);if(!this.layers[0]._featureFilter.filter(new cs(this.zoom),e,i))continue;const r=o?s.evaluate(e,{},i):void 0,a={id:h,properties:c.properties,type:c.type,sourceLayerIndex:d,index:u,geometry:t?e.geometry:aa(c),patterns:{},sortKey:r};n.push(a)}o&&n.sort(((t,e)=>t.sortKey-e.sortKey));for(const c of n){const{geometry:r,index:n,sourceLayerIndex:s}=c,o=t[n].feature;this.addFeature(c,r,n,i,l),e.featureIndex.insert(o,r,n,s,this.index)}}update(t,e,i){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,i)}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Co),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}addFeature(t,e,i,r,n=1){let s;switch(n){case 1:s=[0,7];break;case 3:s=[0,2,5,7];break;case 5:s=[0,1,3,4,6,7];break;case 7:s=[0,1,2,3,4,5,6,7];break;default:throw new Error(`Invalid circle bucket granularity: ${n}; valid values are 1, 3, 5, 7.`)}const o=s.length;for(const a of e)for(const e of a){const i=e.x,r=e.y;if(i<0||i>=S||r<0||r>=S)continue;const n=this.segments.prepareSegment(o*o,this.layoutVertexArray,this.indexArray,t.sortKey),a=n.vertexLength;for(let t=0;t1){if(_a(t,e))return!0;for(let r=0;r1?i:i.sub(e)._mult(n)._add(e))}function va(t,e){let i,r,n,s=!1;for(let o=0;oe.y!=n.y>e.y&&e.x<(n.x-r.x)*(e.y-r.y)/(n.y-r.y)+r.x&&(s=!s)}return s}function ba(t,e){let i=!1;for(let r=0,n=t.length-1;re.y!=o.y>e.y&&e.x<(o.x-s.x)*(e.y-s.y)/(o.y-s.y)+s.x&&(i=!i)}return i}function wa(t,e,i){const r=i[0],n=i[2];if(t.xn.x&&e.x>n.x||t.yn.y&&e.y>n.y)return!1;const s=U(t,e,i[0]);return s!==U(t,e,i[1])||s!==U(t,e,i[2])||s!==U(t,e,i[3])}function Ta(t,e,i){const r=e.paint.get(t).value;return"constant"===r.kind?r.value:i.programConfigurations.get(e.id).getMaxValue(t)}function Pa(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function Ma(t,e,i,r,n){if(!e[0]&&!e[1])return t;const s=l.convert(e)._mult(n);"viewport"===i&&s._rotate(-r);const o=[];for(let a=0;aAa(t,e)))}(a,o),u=c?l*s:l;for(const d of r)for(const t of d){const e=c?t:Aa(t,o);let i=u;const r=w([],[t.x,t.y,0,1],o);if("viewport"===this.paint.get("circle-pitch-scale")&&"map"===this.paint.get("circle-pitch-alignment")?i*=r[3]/n.cameraToCenterDistance:"map"===this.paint.get("circle-pitch-scale")&&"viewport"===this.paint.get("circle-pitch-alignment")&&(i*=n.cameraToCenterDistance/r[3]),pa(h,e,i))return!0}return!1}}function Aa(t,e){const i=w([],[t.x,t.y,0,1],e);return new l(i[0]/i[3],i[1]/i[3])}class za extends ua{}let ka;Un("HeatmapBucket",za,{omit:["layers"]});var Da={get paint(){return ka=ka||new Ts({"heatmap-radius":new xs(ut.paint_heatmap["heatmap-radius"]),"heatmap-weight":new xs(ut.paint_heatmap["heatmap-weight"]),"heatmap-intensity":new ys(ut.paint_heatmap["heatmap-intensity"]),"heatmap-color":new ws(ut.paint_heatmap["heatmap-color"]),"heatmap-opacity":new ys(ut.paint_heatmap["heatmap-opacity"])})}};function Ra(t,{width:e,height:i},r,n){if(n){if(n instanceof Uint8ClampedArray)n=new Uint8Array(n.buffer);else if(n.length!==e*i*r)throw new RangeError(`mismatched image size. expected: ${n.length} but got: ${e*i*r}`)}else n=new Uint8Array(e*i*r);return t.width=e,t.height=i,t.data=n,t}function La(t,{width:e,height:i},r){if(e===t.width&&i===t.height)return;const n=Ra({},{width:e,height:i},r);Fa(t,n,{x:0,y:0},{x:0,y:0},{width:Math.min(t.width,e),height:Math.min(t.height,i)},r),t.width=e,t.height=i,t.data=n.data}function Fa(t,e,i,r,n,s){if(0===n.width||0===n.height)return e;if(n.width>t.width||n.height>t.height||i.x>t.width-n.width||i.y>t.height-n.height)throw new RangeError("out of range source coordinates for image copy");if(n.width>e.width||n.height>e.height||r.x>e.width-n.width||r.y>e.height-n.height)throw new RangeError("out of range destination coordinates for image copy");const o=t.data,a=e.data;if(o===a)throw new Error("srcData equals dstData, so image is already copied");for(let l=0;l{e[t.evaluationKey]=s;const o=t.expression.evaluate(e);n.data[i+r+0]=Math.floor(255*o.r/o.a),n.data[i+r+1]=Math.floor(255*o.g/o.a),n.data[i+r+2]=Math.floor(255*o.b/o.a),n.data[i+r+3]=Math.floor(255*o.a)};if(t.clips)for(let o=0,a=0;o0)for(let o=e;o=e;o-=r)s=gl(o/r|0,t[o],t[o+1],s);return s&&ul(s,s.next)&&(yl(s),s=s.next),s}function Ka(t,e){if(!t)return t;e||(e=t);let i,r=t;do{if(i=!1,r.steiner||!ul(r,r.next)&&0!==hl(r.prev,r,r.next))r=r.next;else{if(yl(r),r=e=r.prev,r===r.next)break;i=!0}}while(i||r!==e);return e}function Ya(t,e,i,r,n,s,o){if(!t)return;!o&&s&&function(t,e,i,r){let n=t;do{0===n.z&&(n.z=sl(n.x,n.y,e,i,r)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next}while(n!==t);n.prevZ.nextZ=null,n.prevZ=null,function(t){let e,i=1;do{let r,n=t;t=null;let s=null;for(e=0;n;){e++;let o=n,a=0;for(let t=0;t0||l>0&&o;)0!==a&&(0===l||!o||n.z<=o.z)?(r=n,n=n.nextZ,a--):(r=o,o=o.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;n=o}s.nextZ=null,i*=2}while(e>1)}(n)}(t,r,n,s);let a=t;for(;t.prev!==t.next;){const l=t.prev,c=t.next;if(s?Qa(t,r,n,s):Ja(t))e.push(l.i,t.i,c.i),yl(t),t=c.next,a=c.next;else if((t=c)===a){o?1===o?Ya(t=tl(Ka(t),e),e,i,r,n,s,2):2===o&&el(t,e,i,r,n,s):Ya(Ka(t),e,i,r,n,s,1);break}}}function Ja(t){const e=t.prev,i=t,r=t.next;if(hl(e,i,r)>=0)return!1;const n=e.x,s=i.x,o=r.x,a=e.y,l=i.y,c=r.y,h=Math.min(n,s,o),u=Math.min(a,l,c),d=Math.max(n,s,o),p=Math.max(a,l,c);let f=r.next;for(;f!==e;){if(f.x>=h&&f.x<=d&&f.y>=u&&f.y<=p&&ll(n,a,s,l,o,c,f.x,f.y)&&hl(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function Qa(t,e,i,r){const n=t.prev,s=t,o=t.next;if(hl(n,s,o)>=0)return!1;const a=n.x,l=s.x,c=o.x,h=n.y,u=s.y,d=o.y,p=Math.min(a,l,c),f=Math.min(h,u,d),m=Math.max(a,l,c),_=Math.max(h,u,d),g=sl(p,f,e,i,r),y=sl(m,_,e,i,r);let x=t.prevZ,v=t.nextZ;for(;x&&x.z>=g&&v&&v.z<=y;){if(x.x>=p&&x.x<=m&&x.y>=f&&x.y<=_&&x!==n&&x!==o&&ll(a,h,l,u,c,d,x.x,x.y)&&hl(x.prev,x,x.next)>=0)return!1;if(x=x.prevZ,v.x>=p&&v.x<=m&&v.y>=f&&v.y<=_&&v!==n&&v!==o&&ll(a,h,l,u,c,d,v.x,v.y)&&hl(v.prev,v,v.next)>=0)return!1;v=v.nextZ}for(;x&&x.z>=g;){if(x.x>=p&&x.x<=m&&x.y>=f&&x.y<=_&&x!==n&&x!==o&&ll(a,h,l,u,c,d,x.x,x.y)&&hl(x.prev,x,x.next)>=0)return!1;x=x.prevZ}for(;v&&v.z<=y;){if(v.x>=p&&v.x<=m&&v.y>=f&&v.y<=_&&v!==n&&v!==o&&ll(a,h,l,u,c,d,v.x,v.y)&&hl(v.prev,v,v.next)>=0)return!1;v=v.nextZ}return!0}function tl(t,e){let i=t;do{const r=i.prev,n=i.next.next;!ul(r,n)&&dl(r,i,i.next,n)&&ml(r,n)&&ml(n,r)&&(e.push(r.i,i.i,n.i),yl(i),yl(i.next),i=t=n),i=i.next}while(i!==t);return Ka(i)}function el(t,e,i,r,n,s){let o=t;do{let t=o.next.next;for(;t!==o.prev;){if(o.i!==t.i&&cl(o,t)){let a=_l(o,t);return o=Ka(o,o.next),a=Ka(a,a.next),Ya(o,e,i,r,n,s,0),void Ya(a,e,i,r,n,s,0)}t=t.next}o=o.next}while(o!==t)}function il(t,e){let i=t.x-e.x;return 0===i&&(i=t.y-e.y,0===i)&&(i=(t.next.y-t.y)/(t.next.x-t.x)-(e.next.y-e.y)/(e.next.x-e.x)),i}function rl(t,e){const i=function(t,e){let i=e;const r=t.x,n=t.y;let s,o=-1/0;if(ul(t,i))return i;do{if(ul(t,i.next))return i.next;if(n<=i.y&&n>=i.next.y&&i.next.y!==i.y){const t=i.x+(n-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(t<=r&&t>o&&(o=t,s=i.x=i.x&&i.x>=l&&r!==i.x&&al(ns.x||i.x===s.x&&nl(s,i)))&&(s=i,h=e)}i=i.next}while(i!==a);return s}(t,e);if(!i)return e;const r=_l(i,t);return Ka(r,r.next),Ka(i,i.next)}function nl(t,e){return hl(t.prev,t,e.prev)<0&&hl(e.next,t,t.next)<0}function sl(t,e,i,r,n){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-i)*n|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-r)*n|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function ol(t){let e=t,i=t;do{(e.x=(t-o)*(s-a)&&(t-o)*(r-a)>=(i-o)*(e-a)&&(i-o)*(s-a)>=(n-o)*(r-a)}function ll(t,e,i,r,n,s,o,a){return!(t===o&&e===a)&&al(t,e,i,r,n,s,o,a)}function cl(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let i=t;do{if(i.i!==t.i&&i.next.i!==t.i&&i.i!==e.i&&i.next.i!==e.i&&dl(i,i.next,t,e))return!0;i=i.next}while(i!==t);return!1}(t,e)&&(ml(t,e)&&ml(e,t)&&function(t,e){let i=t,r=!1;const n=(t.x+e.x)/2,s=(t.y+e.y)/2;do{i.y>s!=i.next.y>s&&i.next.y!==i.y&&n<(i.next.x-i.x)*(s-i.y)/(i.next.y-i.y)+i.x&&(r=!r),i=i.next}while(i!==t);return r}(t,e)&&(hl(t.prev,t,e.prev)||hl(t,e.prev,e))||ul(t,e)&&hl(t.prev,t,t.next)>0&&hl(e.prev,e,e.next)>0)}function hl(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)}function ul(t,e){return t.x===e.x&&t.y===e.y}function dl(t,e,i,r){const n=fl(hl(t,e,i)),s=fl(hl(t,e,r)),o=fl(hl(i,r,t)),a=fl(hl(i,r,e));return n!==s&&o!==a||!(0!==n||!pl(t,i,e))||!(0!==s||!pl(t,r,e))||!(0!==o||!pl(i,t,r))||!(0!==a||!pl(i,e,r))}function pl(t,e,i){return e.x<=Math.max(t.x,i.x)&&e.x>=Math.min(t.x,i.x)&&e.y<=Math.max(t.y,i.y)&&e.y>=Math.min(t.y,i.y)}function fl(t){return t>0?1:t<0?-1:0}function ml(t,e){return hl(t.prev,t,t.next)<0?hl(t,e,t.next)>=0&&hl(t,t.prev,e)>=0:hl(t,e,t.prev)<0||hl(t,t.next,e)<0}function _l(t,e){const i=xl(t.i,t.x,t.y),r=xl(e.i,e.x,e.y),n=t.next,s=e.prev;return t.next=e,e.prev=t,i.next=n,n.prev=i,r.next=i,i.prev=r,s.next=r,r.prev=s,r}function gl(t,e,i,r){const n=xl(t,e,i);return r?(n.next=r.next,n.prev=r,r.next.prev=n,r.next=n):(n.prev=n,n.next=n),n}function yl(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function xl(t,e,i){return{i:t,x:e,y:i,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}class vl{constructor(t,e){if(e>t)throw new Error("Min granularity must not be greater than base granularity.");this._baseZoomGranularity=t,this._minGranularity=e}getGranularityForZoomLevel(t){return Math.max(Math.floor(this._baseZoomGranularity/(1<32767||e>32767)throw new Error("Vertex coordinates are out of signed 16 bit integer range.");const i=0|Math.round(t),r=0|Math.round(e),n=this._getKey(i,r);if(this._vertexDictionary.has(n))return this._vertexDictionary.get(n);const s=this._vertexBuffer.length/2;return this._vertexDictionary.set(n,s),this._vertexBuffer.push(i,r),s}_subdivideTrianglesScanline(t){if(this._granularity<2)return function(t,e){const i=[];for(let r=0;r0?(i.push(n),i.push(o),i.push(s)):(i.push(n),i.push(s),i.push(o))}return i}(this._vertexBuffer,t);const e=[],i=t.length;for(let r=0;r=1||x<=0)||m&&(an)){c>=r&&c<=n&&s.push(i[(o+1)%3]);continue}!m&&y>0&&s.push(this._vertexToIndex(t+d*y,a+p*y));const v=t+d*Math.max(y,0),b=t+d*Math.min(x,1);f||this._generateIntraEdgeVertices(s,t,a,l,c,v,b),!m&&x<1&&s.push(this._vertexToIndex(t+d*x,a+p*x)),(m||c>=r&&c<=n)&&s.push(i[(o+1)%3]),!m&&(c<=r||c>=n)&&this._generateInterEdgeVertices(s,t,a,l,c,h,u,b,r,n)}return s}_generateIntraEdgeVertices(t,e,i,r,n,s,o){const a=r-e,l=n-i,c=0===l,h=c?Math.min(e,r):Math.min(s,o),u=c?Math.max(e,r):Math.max(s,o),d=Math.floor(h/this._granularityCellSize)+1,p=Math.ceil(u/this._granularityCellSize)-1;if(c?e=d;f--){const r=f*this._granularityCellSize;t.push(this._vertexToIndex(r,i+l*(r-e)/a))}}_generateInterEdgeVertices(t,e,i,r,n,s,o,a,l,c){const h=n-i,u=s-r,d=o-n,p=(l-n)/d,f=(c-n)/d,m=Math.min(p,f),_=Math.max(p,f),g=r+u*m;let y=Math.floor(Math.min(g,a)/this._granularityCellSize)+1,x=Math.ceil(Math.max(g,a)/this._granularityCellSize)-1,v=a=1||_<=0){const t=i-o,r=s+(e-s)*Math.min((l-o)/t,(c-o)/t);y=Math.floor(Math.min(r,a)/this._granularityCellSize)+1,x=Math.ceil(Math.max(r,a)/this._granularityCellSize)-1,v=a0?c:l;if(v)for(let T=y;T<=x;T++)t.push(this._vertexToIndex(T*this._granularityCellSize,w));else for(let T=x;T>=y;T--)t.push(this._vertexToIndex(T*this._granularityCellSize,w))}_generateOutline(t){const e=[];for(const i of t){const t=Sl(i,this._granularity,!0),r=this._pointArrayToIndices(t),n=[];for(let e=1;en!=(s===wl)?(t.push(e),t.push(i),t.push(this._vertexToIndex(r,s)),t.push(i),t.push(this._vertexToIndex(n,s)),t.push(this._vertexToIndex(r,s))):(t.push(i),t.push(e),t.push(this._vertexToIndex(r,s)),t.push(this._vertexToIndex(n,s)),t.push(i),t.push(this._vertexToIndex(r,s)))}_fillPoles(t,e,i){const r=this._vertexBuffer,n=S,s=t.length;for(let o=2;o80*i){a=1/0,l=1/0;let e=-1/0,r=-1/0;for(let s=i;se&&(e=i),n>r&&(r=n)}c=Math.max(e-a,r-l),c=0!==c?32767/c:0}return Ya(s,o,i,a,l,c,0),o}(i,r),e=this._convertIndices(i,t);n=this._subdivideTrianglesScanline(e)}catch(t){console.error(t)}let s=[];return e&&(s=this._generateOutline(t)),this._ensureNoPoleVertices(),this._handlePoles(n),{verticesFlattened:this._vertexBuffer,indicesTriangles:n,indicesLineList:s}}_convertIndices(t,e){const i=[];for(let r=0;r0?(Math.floor(y/o)+1)*o:(Math.ceil(y/o)-1)*o,e=m>0?(Math.floor(x/o)+1)*o:(Math.ceil(x/o)-1)*o,i=Math.abs(y-t),r=Math.abs(x-e),n=Math.abs(y-s),c=Math.abs(x-h),u=d?i/_:Number.POSITIVE_INFINITY,v=p?r/g:Number.POSITIVE_INFINITY;if((n<=i||!d)&&(c<=r||!p))break;if(u=0?o-1:s-1,n=(a+1)%s,l=t[2*e[r]],c=t[2*e[n]],h=t[2*e[o]],u=t[2*e[o]+1],d=t[2*e[a]+1];let p=!1;if(lc)p=!1;else{const i=d-u,s=-(t[2*e[a]]-h),o=u((c-h)*i+(t[2*e[n]+1]-u)*s)*o&&(p=!0)}if(p){const t=e[r],n=e[o],l=e[a];t!==n&&t!==l&&n!==l&&i.push(l,n,t),o--,o<0&&(o=s-1)}else{const t=e[n],r=e[o],l=e[a];t!==r&&t!==l&&r!==l&&i.push(l,r,t),a++,a>=s&&(a=0)}if(r===n)break}}function Cl(t,e,i,r,n,s,o,a,l){const c=n.length/2,h=o&&a&&l;if(cEo.MAX_VERTEX_ARRAY_LENGTH&&(c=t.createNewSegment(e,i),l=a.count,m=!0,_=!0,g=!0,h=0);const y=El(o,r,s,a,d,m,c),x=El(o,r,s,a,p,_,c),v=El(o,r,s,a,f,g,c);i.emplaceBack(h+y-l,h+x-l,h+v-l),c.primitiveLength++}}(e,i,r,n,s,t),h&&function(t,e,i,r,n,s){const o=[];for(let u=0;uEo.MAX_VERTEX_ARRAY_LENGTH&&(c=t.createNewSegment(e,i),l=a.count,f=!0,m=!0,h=0);const _=El(o,r,s,a,n,f,c),g=El(o,r,s,a,u,m,c);i.emplaceBack(h+_-l,h+g-l),c.primitiveLength++}}}(o,i,a,n,l,t),e.forceNewSegmentOnNextPrepare(),null==o||o.forceNewSegmentOnNextPrepare()}function El(t,e,i,r,n,s,o){if(s){const s=r.count;return i(e[2*n],e[2*n+1]),t[n]=r.count,r.count++,o.vertexLength++,s}return t[n]}class Al{constructor(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((t=>t.id)),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new mo,this.indexArray=new Mo,this.indexArray2=new So,this.programConfigurations=new ia(t.layers,t.zoom),this.segments=new Eo,this.segments2=new Eo,this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id))}populate(t,e,i){this.hasPattern=Ha("fill",this.layers,e);const r=this.layers[0].layout.get("fill-sort-key"),n=!r.isConstant(),s=[];for(const{feature:o,id:a,index:l,sourceLayerIndex:c}of t){const t=this.layers[0]._featureFilter.needGeometry,h=la(o,t);if(!this.layers[0]._featureFilter.filter(new cs(this.zoom),h,i))continue;const u=n?r.evaluate(h,{},i,e.availableImages):void 0,d={id:a,properties:o.properties,type:o.type,sourceLayerIndex:c,index:l,geometry:t?h.geometry:aa(o),patterns:{},sortKey:u};s.push(d)}n&&s.sort(((t,e)=>t.sortKey-e.sortKey));for(const o of s){const{geometry:r,index:n,sourceLayerIndex:s}=o;if(this.hasPattern){const t=Xa("fill",this.layers,o,this.zoom,e);this.patternFeatures.push(t)}else this.addFeature(o,r,n,i,{},e.subdivisionGranularity);e.featureIndex.insert(t[n].feature,r,n,s,this.index)}}update(t,e,i){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,i)}addFeatures(t,e,i){for(const r of this.patternFeatures)this.addFeature(r,r.geometry,r.index,e,i,t.subdivisionGranularity)}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,qa),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.indexBuffer2=t.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(t),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())}addFeature(t,e,i,r,n,s){for(const o of ji(e,500)){const t=Ml(o,r,s.fill.getGranularityForZoomLevel(r.z)),e=this.layoutVertexArray;Cl(((t,i)=>{e.emplaceBack(t,i)}),this.segments,this.layoutVertexArray,this.indexArray,t.verticesFlattened,t.indicesTriangles,this.segments2,this.indexArray2,t.indicesLineList)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,i,n,r)}}let zl,kl;Un("FillBucket",Al,{omit:["layers","patternFeatures"]});var Dl={get paint(){return kl=kl||new Ts({"fill-antialias":new ys(ut.paint_fill["fill-antialias"]),"fill-opacity":new xs(ut.paint_fill["fill-opacity"]),"fill-color":new xs(ut.paint_fill["fill-color"]),"fill-outline-color":new xs(ut.paint_fill["fill-outline-color"]),"fill-translate":new ys(ut.paint_fill["fill-translate"]),"fill-translate-anchor":new ys(ut.paint_fill["fill-translate-anchor"]),"fill-pattern":new vs(ut.paint_fill["fill-pattern"])})},get layout(){return zl=zl||new Ts({"fill-sort-key":new xs(ut.layout_fill["fill-sort-key"])})}};class Rl extends Ms{constructor(t){super(t,Dl)}recalculate(t,e){super.recalculate(t,e);const i=this.paint._values["fill-outline-color"];"constant"===i.value.kind&&void 0===i.value.value&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"])}createBucket(t){return new Al(t)}queryRadius(){return Pa(this.paint.get("fill-translate"))}queryIntersectsFeature({queryGeometry:t,geometry:e,transform:i,pixelsToTileUnits:r}){return fa(Ma(t,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),-i.bearingInRadians,r),e)}isTileClipped(){return!0}}const Ll=Es([{name:"a_pos",components:2,type:"Int16"},{name:"a_normal_ed",components:4,type:"Int16"}],4),Fl=Es([{name:"a_centroid",components:2,type:"Int16"}],4),{members:Bl}=Ll;var Ol,jl,Vl,Nl,Ul,Zl,Gl,$l={};function ql(){if(jl)return Ol;jl=1;var t=s();function e(t,e,r,n,s){this.properties={},this.extent=r,this.type=0,this._pbf=t,this._geometry=-1,this._keys=n,this._values=s,t.readFields(i,this,e)}function i(t,e,i){1==t?e.id=i.readVarint():2==t?function(t,e){for(var i=t.readVarint()+t.pos;t.pos>3}if(s--,1===n||2===n)o+=e.readSVarint(),a+=e.readSVarint(),1===n&&(i&&l.push(i),i=[]),i.push(new t(o,a));else{if(7!==n)throw new Error("unknown command "+n);i&&i.push(i[0].clone())}}return i&&l.push(i),l},e.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,i=1,r=0,n=0,s=0,o=1/0,a=-1/0,l=1/0,c=-1/0;t.pos>3}if(r--,1===i||2===i)(n+=t.readSVarint())a&&(a=n),(s+=t.readSVarint())c&&(c=s);else if(7!==i)throw new Error("unknown command "+i)}return[o,l,a,c]},e.prototype.toGeoJSON=function(t,i,n){var s,o,a=this.extent*Math.pow(2,n),l=this.extent*t,c=this.extent*i,h=this.loadGeometry(),u=e.types[this.type];function d(t){for(var e=0;e>3;e=1===r?t.readString():2===r?t.readFloat():3===r?t.readDouble():4===r?t.readVarint64():5===r?t.readVarint():6===r?t.readSVarint():7===r?t.readBoolean():null}return e}(i))}return Vl=e,e.prototype.feature=function(e){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];var i=this._pbf.readVarint()+this._pbf.pos;return new t(this._pbf,i,this.extent,this._keys,this._values)},Vl}function Xl(){return Gl||(Gl=1,$l.VectorTile=function(){if(Zl)return Ul;Zl=1;var t=Hl();function e(e,i,r){if(3===e){var n=new t(r,r.readVarint()+r.pos);n.length&&(i[n.name]=n)}}return Ul=function(t,i){this.layers=t.readFields(e,{},i)},Ul}(),$l.VectorTileFeature=ql(),$l.VectorTileLayer=Hl()),$l}var Wl=i(Xl());const Kl=Wl.VectorTileFeature.types,Yl=Math.pow(2,13);function Jl(t,e,i,r,n,s,o,a){t.emplaceBack(e,i,2*Math.floor(r*Yl)+o,n*Yl*2,s*Yl*2,Math.round(a))}class Ql{constructor(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((t=>t.id)),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new _o,this.centroidVertexArray=new po,this.indexArray=new Mo,this.programConfigurations=new ia(t.layers,t.zoom),this.segments=new Eo,this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id))}populate(t,e,i){this.features=[],this.hasPattern=Ha("fill-extrusion",this.layers,e);for(const{feature:r,id:n,index:s,sourceLayerIndex:o}of t){const t=this.layers[0]._featureFilter.needGeometry,a=la(r,t);if(!this.layers[0]._featureFilter.filter(new cs(this.zoom),a,i))continue;const l={id:n,sourceLayerIndex:o,index:s,geometry:t?a.geometry:aa(r),properties:r.properties,type:r.type,patterns:{}};this.hasPattern?this.features.push(Xa("fill-extrusion",this.layers,l,this.zoom,e)):this.addFeature(l,l.geometry,s,i,{},e.subdivisionGranularity),e.featureIndex.insert(r,l.geometry,s,o,this.index,!0)}}addFeatures(t,e,i){for(const r of this.features){const{geometry:n}=r;this.addFeature(r,n,r.index,e,i,t.subdivisionGranularity)}}update(t,e,i){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,i)}isEmpty(){return 0===this.layoutVertexArray.length&&0===this.centroidVertexArray.length}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Bl),this.centroidVertexBuffer=t.createVertexBuffer(this.centroidVertexArray,Fl.members,!0),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.centroidVertexBuffer.destroy())}addFeature(t,e,i,r,n,s){for(const o of ji(e,500)){const e={x:0,y:0,sampleCount:0},i=this.layoutVertexArray.length;this.processPolygon(e,r,t,o,s);const n=this.layoutVertexArray.length-i,a=Math.floor(e.x/e.sampleCount),l=Math.floor(e.y/e.sampleCount);for(let t=0;t{Jl(c,t,e,0,0,1,1,0)}),this.segments,this.layoutVertexArray,this.indexArray,l.verticesFlattened,l.indicesTriangles)}_generateSideFaces(t,e){let i=0;for(let r=1;rEo.MAX_VERTEX_ARRAY_LENGTH&&(e.segment=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));const o=n.sub(s)._perp()._unit(),a=s.dist(n);i+a>32768&&(i=0),Jl(this.layoutVertexArray,n.x,n.y,o.x,o.y,0,0,i),Jl(this.layoutVertexArray,n.x,n.y,o.x,o.y,0,1,i),i+=a,Jl(this.layoutVertexArray,s.x,s.y,o.x,o.y,0,0,i),Jl(this.layoutVertexArray,s.x,s.y,o.x,o.y,0,1,i);const l=e.segment.vertexLength;this.indexArray.emplaceBack(l,l+2,l+1),this.indexArray.emplaceBack(l+1,l+2,l+3),e.segment.vertexLength+=4,e.segment.primitiveLength+=2}}}function tc(t,e){for(let i=0;iS)||t.y===e.y&&(t.y<0||t.y>S)}function ic(t){return t.every((t=>t.x<0))||t.every((t=>t.x>S))||t.every((t=>t.y<0))||t.every((t=>t.y>S))}let rc;Un("FillExtrusionBucket",Ql,{omit:["layers","features"]});var nc={get paint(){return rc=rc||new Ts({"fill-extrusion-opacity":new ys(ut["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new xs(ut["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new ys(ut["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new ys(ut["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new vs(ut["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new xs(ut["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new xs(ut["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new ys(ut["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"])})}};class sc extends Ms{constructor(t){super(t,nc)}createBucket(t){return new Ql(t)}queryRadius(){return Pa(this.paint.get("fill-extrusion-translate"))}is3D(){return!0}queryIntersectsFeature({queryGeometry:t,feature:e,featureState:i,geometry:r,transform:n,pixelsToTileUnits:s,pixelPosMatrix:o}){const a=Ma(t,this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),-n.bearingInRadians,s),c=this.paint.get("fill-extrusion-height").evaluate(e,i),h=this.paint.get("fill-extrusion-base").evaluate(e,i),u=function(t,e){const i=[];for(const r of t){const t=[r.x,r.y,0,1];w(t,t,e),i.push(new l(t[0]/t[3],t[1]/t[3]))}return i}(a,o),d=function(t,e,i,r){const n=[],s=[],o=r[8]*e,a=r[9]*e,c=r[10]*e,h=r[11]*e,u=r[8]*i,d=r[9]*i,p=r[10]*i,f=r[11]*i;for(const m of t){const t=[],e=[];for(const i of m){const n=i.x,s=i.y,m=r[0]*n+r[4]*s+r[12],_=r[1]*n+r[5]*s+r[13],g=r[2]*n+r[6]*s+r[14],y=r[3]*n+r[7]*s+r[15],x=g+c,v=y+h,b=m+u,w=_+d,T=g+p,P=y+f,M=new l((m+o)/v,(_+a)/v);M.z=x/v,t.push(M);const S=new l(b/P,w/P);S.z=T/P,e.push(S)}n.push(t),s.push(e)}return[n,s]}(r,h,c,o);return function(t,e,i){let r=1/0;fa(i,e)&&(r=ac(i,e[0]));for(let n=0;nt.id)),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach((t=>{this.gradients[t.id]={}})),this.layoutVertexArray=new go,this.layoutVertexArray2=new yo,this.indexArray=new Mo,this.programConfigurations=new ia(t.layers,t.zoom),this.segments=new Eo,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id))}populate(t,e,i){this.hasPattern=Ha("line",this.layers,e);const r=this.layers[0].layout.get("line-sort-key"),n=!r.isConstant(),s=[];for(const{feature:o,id:a,index:l,sourceLayerIndex:c}of t){const t=this.layers[0]._featureFilter.needGeometry,e=la(o,t);if(!this.layers[0]._featureFilter.filter(new cs(this.zoom),e,i))continue;const h=n?r.evaluate(e,{},i):void 0,u={id:a,properties:o.properties,type:o.type,sourceLayerIndex:c,index:l,geometry:t?e.geometry:aa(o),patterns:{},sortKey:h};s.push(u)}n&&s.sort(((t,e)=>t.sortKey-e.sortKey));for(const o of s){const{geometry:r,index:n,sourceLayerIndex:s}=o;if(this.hasPattern){const t=Xa("line",this.layers,o,this.zoom,e);this.patternFeatures.push(t)}else this.addFeature(o,r,n,i,{},e.subdivisionGranularity);e.featureIndex.insert(t[n].feature,r,n,s,this.index)}}update(t,e,i){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,i)}addFeatures(t,e,i){for(const r of this.patternFeatures)this.addFeature(r,r.geometry,r.index,e,i,t.subdivisionGranularity)}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(0!==this.layoutVertexArray2.length&&(this.layoutVertexBuffer2=t.createVertexBuffer(this.layoutVertexArray2,uc)),this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,cc),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(t){if(t.properties&&Object.prototype.hasOwnProperty.call(t.properties,"mapbox_clip_start")&&Object.prototype.hasOwnProperty.call(t.properties,"mapbox_clip_end"))return{start:+t.properties.mapbox_clip_start,end:+t.properties.mapbox_clip_end}}addFeature(t,e,i,r,n,s){const o=this.layers[0].layout,a=o.get("line-join").evaluate(t,{}),l=o.get("line-cap"),c=o.get("line-miter-limit"),h=o.get("line-round-limit");this.lineClips=this.lineFeatureClips(t);for(const u of e)this.addLine(u,t,a,l,c,h,r,s);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,i,n,r)}addLine(t,e,i,r,n,s,o,a){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,t=Sl(t,o?a.line.getGranularityForZoomLevel(o.z):1),this.lineClips){this.lineClipsArray.push(this.lineClips);for(let e=0;e=2&&t[c-1].equals(t[c-2]);)c--;let h=0;for(;h0;if(b&&y>h){const t=p.dist(f);if(t>2*u){const e=p.sub(p.sub(f)._mult(u/t)._round());this.updateDistance(f,e),this.addCurrentVertex(e,_,0,0,d),f=e}}const T=f&&m;let P=T?i:l?"butt":r;if(T&&"round"===P&&(xn&&(P="bevel"),"bevel"===P&&(x>2&&(P="flipbevel"),x100)e=g.mult(-1);else{const t=x*_.add(g).mag()/_.sub(g).mag();e._perp()._mult(t*(w?-1:1))}this.addCurrentVertex(p,e,0,0,d),this.addCurrentVertex(p,e.mult(-1),0,0,d)}else if("bevel"===P||"fakeround"===P){const t=-Math.sqrt(x*x-1),e=w?t:0,i=w?0:t;if(f&&this.addCurrentVertex(p,_,e,i,d),"fakeround"===P){const t=Math.round(180*v/Math.PI/20);for(let e=1;e2*u){const e=p.add(m.sub(p)._mult(u/t)._round());this.updateDistance(p,e),this.addCurrentVertex(e,g,0,0,d),p=e}}}}addCurrentVertex(t,e,i,r,n,s=!1){const o=e.y*r-e.x,a=-e.y-e.x*r;this.addHalfVertex(t,e.x+e.y*i,e.y-e.x*i,s,!1,i,n),this.addHalfVertex(t,o,a,s,!0,-r,n),this.distance>fc/2&&0===this.totalDistance&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(t,e,i,r,n,s))}addHalfVertex({x:t,y:e},i,r,n,s,o,a){const l=.5*(this.lineClips?this.scaledDistance*(fc-1):this.scaledDistance);this.layoutVertexArray.emplaceBack((t<<1)+(n?1:0),(e<<1)+(s?1:0),Math.round(63*i)+128,Math.round(63*r)+128,1+(0===o?0:o<0?-1:1)|(63&l)<<2,l>>6),this.lineClips&&this.layoutVertexArray2.emplaceBack((this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start),this.lineClipsArray.length);const c=a.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,c,this.e2),a.primitiveLength++),s?this.e2=c:this.e1=c}updateScaledDistance(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance}updateDistance(t,e){this.distance+=t.dist(e),this.updateScaledDistance()}}let _c,gc;Un("LineBucket",mc,{omit:["layers","patternFeatures"]});var yc={get paint(){return gc=gc||new Ts({"line-opacity":new xs(ut.paint_line["line-opacity"]),"line-color":new xs(ut.paint_line["line-color"]),"line-translate":new ys(ut.paint_line["line-translate"]),"line-translate-anchor":new ys(ut.paint_line["line-translate-anchor"]),"line-width":new xs(ut.paint_line["line-width"]),"line-gap-width":new xs(ut.paint_line["line-gap-width"]),"line-offset":new xs(ut.paint_line["line-offset"]),"line-blur":new xs(ut.paint_line["line-blur"]),"line-dasharray":new bs(ut.paint_line["line-dasharray"]),"line-pattern":new vs(ut.paint_line["line-pattern"]),"line-gradient":new ws(ut.paint_line["line-gradient"])})},get layout(){return _c=_c||new Ts({"line-cap":new ys(ut.layout_line["line-cap"]),"line-join":new xs(ut.layout_line["line-join"]),"line-miter-limit":new ys(ut.layout_line["line-miter-limit"]),"line-round-limit":new ys(ut.layout_line["line-round-limit"]),"line-sort-key":new xs(ut.layout_line["line-sort-key"])})}};class xc extends xs{possiblyEvaluate(t,e){return e=new cs(Math.floor(e.zoom),{now:e.now,fadeDuration:e.fadeDuration,zoomHistory:e.zoomHistory,transition:e.transition}),super.possiblyEvaluate(t,e)}evaluate(t,e,i,r){return e=L({},e,{zoom:Math.floor(e.zoom)}),super.evaluate(t,e,i,r)}}let vc;class bc extends Ms{constructor(t){super(t,yc),this.gradientVersion=0,vc||(vc=new xc(yc.paint.properties["line-width"].specification),vc.useIntegerZoom=!0)}_handleSpecialPaintPropertyUpdate(t){if("line-gradient"===t){const t=this.gradientExpression();this.stepInterpolant=!!function(t){return void 0!==t._styleExpression}(t)&&t._styleExpression.expression instanceof qe,this.gradientVersion=(this.gradientVersion+1)%Number.MAX_SAFE_INTEGER}}gradientExpression(){return this._transitionablePaint._values["line-gradient"].value.expression}recalculate(t,e){super.recalculate(t,e),this.paint._values["line-floorwidth"]=vc.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,t)}createBucket(t){return new mc(t)}queryRadius(t){const e=t,i=wc(Ta("line-width",this,e),Ta("line-gap-width",this,e)),r=Ta("line-offset",this,e);return i/2+Math.abs(r)+Pa(this.paint.get("line-translate"))}queryIntersectsFeature({queryGeometry:t,feature:e,featureState:i,geometry:r,transform:n,pixelsToTileUnits:s}){const o=Ma(t,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),-n.bearingInRadians,s),a=s/2*wc(this.paint.get("line-width").evaluate(e,i),this.paint.get("line-gap-width").evaluate(e,i)),c=this.paint.get("line-offset").evaluate(e,i);return c&&(r=function(t,e){const i=[];for(let r=0;r=3)for(let e=0;e0?e+2*t:t}const Tc=Es([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),Pc=Es([{name:"a_projected_pos",components:3,type:"Float32"}],4);Es([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const Mc=Es([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"},{name:"a_box_real",components:2,type:"Int16"}]);Es([{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]);const Sc=Es([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),Ic=Es([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function Cc(t,e,i){return t.sections.forEach((t=>{t.text=function(t,e,i){const r=e.layout.get("text-transform").evaluate(i,{});return"uppercase"===r?t=t.toLocaleUpperCase():"lowercase"===r&&(t=t.toLocaleLowerCase()),ls.applyArabicShaping&&(t=ls.applyArabicShaping(t)),t}(t.text,e,i)})),t}Es([{name:"triangle",components:3,type:"Uint16"}]),Es([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"}]),Es([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Int16",name:"rightJustifiedTextSymbolIndex"},{type:"Int16",name:"centerJustifiedTextSymbolIndex"},{type:"Int16",name:"leftJustifiedTextSymbolIndex"},{type:"Int16",name:"verticalPlacedTextSymbolIndex"},{type:"Int16",name:"placedIconSymbolIndex"},{type:"Int16",name:"verticalPlacedIconSymbolIndex"},{type:"Uint16",name:"key"},{type:"Uint16",name:"textBoxStartIndex"},{type:"Uint16",name:"textBoxEndIndex"},{type:"Uint16",name:"verticalTextBoxStartIndex"},{type:"Uint16",name:"verticalTextBoxEndIndex"},{type:"Uint16",name:"iconBoxStartIndex"},{type:"Uint16",name:"iconBoxEndIndex"},{type:"Uint16",name:"verticalIconBoxStartIndex"},{type:"Uint16",name:"verticalIconBoxEndIndex"},{type:"Uint16",name:"featureIndex"},{type:"Uint16",name:"numHorizontalGlyphVertices"},{type:"Uint16",name:"numVerticalGlyphVertices"},{type:"Uint16",name:"numIconVertices"},{type:"Uint16",name:"numVerticalIconVertices"},{type:"Uint16",name:"useRuntimeCollisionCircles"},{type:"Uint32",name:"crossTileID"},{type:"Float32",name:"textBoxScale"},{type:"Float32",name:"collisionCircleDiameter"},{type:"Uint16",name:"textAnchorOffsetStartIndex"},{type:"Uint16",name:"textAnchorOffsetEndIndex"}]),Es([{type:"Float32",name:"offsetX"}]),Es([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]),Es([{type:"Uint16",name:"textAnchor"},{type:"Float32",components:2,name:"textOffset"}]);const Ec={"!":"\ufe15","#":"\uff03",$:"\uff04","%":"\uff05","&":"\uff06","(":"\ufe35",")":"\ufe36","*":"\uff0a","+":"\uff0b",",":"\ufe10","-":"\ufe32",".":"\u30fb","/":"\uff0f",":":"\ufe13",";":"\ufe14","<":"\ufe3f","=":"\uff1d",">":"\ufe40","?":"\ufe16","@":"\uff20","[":"\ufe47","\\":"\uff3c","]":"\ufe48","^":"\uff3e",_:"\ufe33","`":"\uff40","{":"\ufe37","|":"\u2015","}":"\ufe38","~":"\uff5e","\xa2":"\uffe0","\xa3":"\uffe1","\xa5":"\uffe5","\xa6":"\uffe4","\xac":"\uffe2","\xaf":"\uffe3","\u2013":"\ufe32","\u2014":"\ufe31","\u2018":"\ufe43","\u2019":"\ufe44","\u201c":"\ufe41","\u201d":"\ufe42","\u2026":"\ufe19","\u2027":"\u30fb","\u20a9":"\uffe6","\u3001":"\ufe11","\u3002":"\ufe12","\u3008":"\ufe3f","\u3009":"\ufe40","\u300a":"\ufe3d","\u300b":"\ufe3e","\u300c":"\ufe41","\u300d":"\ufe42","\u300e":"\ufe43","\u300f":"\ufe44","\u3010":"\ufe3b","\u3011":"\ufe3c","\u3014":"\ufe39","\u3015":"\ufe3a","\u3016":"\ufe17","\u3017":"\ufe18","\uff01":"\ufe15","\uff08":"\ufe35","\uff09":"\ufe36","\uff0c":"\ufe10","\uff0d":"\ufe32","\uff0e":"\u30fb","\uff1a":"\ufe13","\uff1b":"\ufe14","\uff1c":"\ufe3f","\uff1e":"\ufe40","\uff1f":"\ufe16","\uff3b":"\ufe47","\uff3d":"\ufe48","\uff3f":"\ufe33","\uff5b":"\ufe37","\uff5c":"\u2015","\uff5d":"\ufe38","\uff5f":"\ufe35","\uff60":"\ufe36","\uff61":"\ufe12","\uff62":"\ufe41","\uff63":"\ufe42"};var Ac,zc,kc,Dc=24,Rc={};function Lc(){return Ac||(Ac=1,Rc.read=function(t,e,i,r,n){var s,o,a=8*n-r-1,l=(1<>1,h=-7,u=i?n-1:0,d=i?-1:1,p=t[e+u];for(u+=d,s=p&(1<<-h)-1,p>>=-h,h+=a;h>0;s=256*s+t[e+u],u+=d,h-=8);for(o=s&(1<<-h)-1,s>>=-h,h+=r;h>0;o=256*o+t[e+u],u+=d,h-=8);if(0===s)s=1-c;else{if(s===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,r),s-=c}return(p?-1:1)*o*Math.pow(2,s-r)},Rc.write=function(t,e,i,r,n,s){var o,a,l,c=8*s-n-1,h=(1<>1,d=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:s-1,f=r?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=h):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+u>=1?d/l:d*Math.pow(2,1-u))*l>=2&&(o++,l/=2),o+u>=h?(a=0,o=h):o+u>=1?(a=(e*l-1)*Math.pow(2,n),o+=u):(a=e*Math.pow(2,u-1)*Math.pow(2,n),o=0));n>=8;t[i+p]=255&a,p+=f,a/=256,n-=8);for(o=o<0;t[i+p]=255&o,p+=f,o/=256,c-=8);t[i+p-f]|=128*m}),Rc}function Fc(){if(kc)return zc;kc=1,zc=e;var t=Lc();function e(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}e.Varint=0,e.Fixed64=1,e.Bytes=2,e.Fixed32=5;var i=4294967296,r=1/i,n="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8");function s(t){return t.type===e.Bytes?t.readVarint()+t.pos:t.pos+1}function o(t,e,i){return i?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function a(t,e,i){var r=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));i.realloc(r);for(var n=i.pos-1;n>=t;n--)i.buf[n+r]=i.buf[n]}function l(t,e){for(var i=0;i>>8,t[i+2]=e>>>16,t[i+3]=e>>>24}function x(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}return e.prototype={destroy:function(){this.buf=null},readFields:function(t,e,i){for(i=i||this.length;this.pos>3,s=this.pos;this.type=7&r,t(n,e,this),this.pos===s&&this.skip(r)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=g(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=x(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=g(this.buf,this.pos)+g(this.buf,this.pos+4)*i;return this.pos+=8,t},readSFixed64:function(){var t=g(this.buf,this.pos)+x(this.buf,this.pos+4)*i;return this.pos+=8,t},readFloat:function(){var e=t.read(this.buf,this.pos,!0,23,4);return this.pos+=4,e},readDouble:function(){var e=t.read(this.buf,this.pos,!0,52,8);return this.pos+=8,e},readVarint:function(t){var e,i,r=this.buf;return e=127&(i=r[this.pos++]),i<128?e:(e|=(127&(i=r[this.pos++]))<<7,i<128?e:(e|=(127&(i=r[this.pos++]))<<14,i<128?e:(e|=(127&(i=r[this.pos++]))<<21,i<128?e:function(t,e,i){var r,n,s=i.buf;if(r=(112&(n=s[i.pos++]))>>4,n<128)return o(t,r,e);if(r|=(127&(n=s[i.pos++]))<<3,n<128)return o(t,r,e);if(r|=(127&(n=s[i.pos++]))<<10,n<128)return o(t,r,e);if(r|=(127&(n=s[i.pos++]))<<17,n<128)return o(t,r,e);if(r|=(127&(n=s[i.pos++]))<<24,n<128)return o(t,r,e);if(r|=(1&(n=s[i.pos++]))<<31,n<128)return o(t,r,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(i=r[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=12&&n?function(t,e,i){return n.decode(t.subarray(e,i))}(this.buf,e,t):function(t,e,i){for(var r="",n=e;n239?4:l>223?3:l>191?2:1;if(n+h>i)break;1===h?l<128&&(c=l):2===h?128==(192&(s=t[n+1]))&&(c=(31&l)<<6|63&s)<=127&&(c=null):3===h?(o=t[n+2],128==(192&(s=t[n+1]))&&128==(192&o)&&((c=(15&l)<<12|(63&s)<<6|63&o)<=2047||c>=55296&&c<=57343)&&(c=null)):4===h&&(o=t[n+2],a=t[n+3],128==(192&(s=t[n+1]))&&128==(192&o)&&128==(192&a)&&((c=(15&l)<<18|(63&s)<<12|(63&o)<<6|63&a)<=65535||c>=1114112)&&(c=null)),null===c?(c=65533,h=1):c>65535&&(c-=65536,r+=String.fromCharCode(c>>>10&1023|55296),c=56320|1023&c),r+=String.fromCharCode(c),n+=h}return r}(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,i){if(this.type!==e.Bytes)return t.push(this.readVarint(i));var r=s(this);for(t=t||[];this.pos127;);else if(i===e.Bytes)this.pos=this.readVarint()+this.pos;else if(i===e.Fixed32)this.pos+=4;else{if(i!==e.Fixed64)throw new Error("Unimplemented type: "+i);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e268435455||t<0?function(t,e){var i,r;if(t>=0?(i=t%4294967296|0,r=t/4294967296|0):(r=~(-t/4294967296),4294967295^(i=~(-t%4294967296))?i=i+1|0:(i=0,r=r+1|0)),t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,i){i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,i.buf[i.pos]=127&(t>>>=7)}(i,0,e),function(t,e){var i=(7&t)<<4;e.buf[e.pos++]|=i|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t)))))}(r,e)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,i){for(var r,n,s=0;s55295&&r<57344){if(!n){r>56319||s+1===e.length?(t[i++]=239,t[i++]=191,t[i++]=189):n=r;continue}if(r<56320){t[i++]=239,t[i++]=191,t[i++]=189,n=r;continue}r=n-55296<<10|r-56320|65536,n=null}else n&&(t[i++]=239,t[i++]=191,t[i++]=189,n=null);r<128?t[i++]=r:(r<2048?t[i++]=r>>6|192:(r<65536?t[i++]=r>>12|224:(t[i++]=r>>18|240,t[i++]=r>>12&63|128),t[i++]=r>>6&63|128),t[i++]=63&r|128)}return i}(this.buf,t,this.pos);var i=this.pos-e;i>=128&&a(e,i,this),this.pos=e-1,this.writeVarint(i),this.pos+=i},writeFloat:function(e){this.realloc(4),t.write(this.buf,e,this.pos,!0,23,4),this.pos+=4},writeDouble:function(e){this.realloc(8),t.write(this.buf,e,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var i=0;i=128&&a(i,r,this),this.pos=i-1,this.writeVarint(r),this.pos+=r},writeMessage:function(t,i,r){this.writeTag(t,e.Bytes),this.writeRawMessage(i,r)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,l,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,c,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,d,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,h,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,u,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,p,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,f,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,m,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,_,e)},writeBytesField:function(t,i){this.writeTag(t,e.Bytes),this.writeBytes(i)},writeFixed32Field:function(t,i){this.writeTag(t,e.Fixed32),this.writeFixed32(i)},writeSFixed32Field:function(t,i){this.writeTag(t,e.Fixed32),this.writeSFixed32(i)},writeFixed64Field:function(t,i){this.writeTag(t,e.Fixed64),this.writeFixed64(i)},writeSFixed64Field:function(t,i){this.writeTag(t,e.Fixed64),this.writeSFixed64(i)},writeVarintField:function(t,i){this.writeTag(t,e.Varint),this.writeVarint(i)},writeSVarintField:function(t,i){this.writeTag(t,e.Varint),this.writeSVarint(i)},writeStringField:function(t,i){this.writeTag(t,e.Bytes),this.writeString(i)},writeFloatField:function(t,i){this.writeTag(t,e.Fixed32),this.writeFloat(i)},writeDoubleField:function(t,i){this.writeTag(t,e.Fixed64),this.writeDouble(i)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}},zc}var Bc=i(Fc());const Oc=3;function jc(t,e,i){1===t&&i.readMessage(Vc,e)}function Vc(t,e,i){if(3===t){const{id:t,bitmap:r,width:n,height:s,left:o,top:a,advance:l}=i.readMessage(Nc,{});e.push({id:t,bitmap:new Ba({width:n+2*Oc,height:s+2*Oc},r),metrics:{width:n,height:s,left:o,top:a,advance:l}})}}function Nc(t,e,i){1===t?e.id=i.readVarint():2===t?e.bitmap=i.readBytes():3===t?e.width=i.readVarint():4===t?e.height=i.readVarint():5===t?e.left=i.readSVarint():6===t?e.top=i.readSVarint():7===t&&(e.advance=i.readVarint())}const Uc=Oc;function Zc(t){let e=0,i=0;for(const o of t)e+=o.w*o.h,i=Math.max(i,o.w);t.sort(((t,e)=>e.h-t.h));const r=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(e/.95)),i),h:1/0}];let n=0,s=0;for(const o of t)for(let t=r.length-1;t>=0;t--){const e=r[t];if(!(o.w>e.w||o.h>e.h)){if(o.x=e.x,o.y=e.y,s=Math.max(s,o.y+o.h),n=Math.max(n,o.x+o.w),o.w===e.w&&o.h===e.h){const e=r.pop();t=0&&i>=t&&Jc[this.text.charCodeAt(i)];i--)e--;this.text=this.text.substring(t,e),this.sectionIndex=this.sectionIndex.slice(t,e)}substring(t,e){const i=new Kc;return i.text=this.text.substring(t,e),i.sectionIndex=this.sectionIndex.slice(t,e),i.sections=this.sections,i}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce(((t,e)=>Math.max(t,this.sections[e].scale)),0)}addTextSection(t,e){this.text+=t.text,this.sections.push(Wc.forText(t.scale,t.fontStack||e));const i=this.sections.length-1;for(let r=0;r=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function Yc(e,i,r,n,s,o,a,l,c,h,u,d,p,f,m){const _=Kc.fromFeature(e,s);let g;d===t.ai.vertical&&_.verticalizePunctuation();const{processBidirectionalText:y,processStyledBidirectionalText:x}=ls;if(y&&1===_.sections.length){g=[];const t=y(_.toString(),oh(_,h,o,i,n,f));for(const e of t){const t=new Kc;t.text=e,t.sections=_.sections;for(let i=0;i0&&r>b&&(b=r)}else{const t=r[l.fontStack],e=t&&t[_];if(e&&e.rect)w=e.rect,y=e.metrics;else{const t=i[l.fontStack],e=t&&t[_];if(!e)continue;y=e.metrics}g=(s-l.scale)*Dc}S?(e.verticalizable=!0,v.push({glyph:_,imageName:P,x:p,y:f+g,vertical:S,scale:l.scale,fontStack:l.fontStack,sectionIndex:m,metrics:y,rect:w}),p+=M*l.scale+h):(v.push({glyph:_,imageName:P,x:p,y:f+g,vertical:S,scale:l.scale,fontStack:l.fontStack,sectionIndex:m,metrics:y,rect:w}),p+=y.advance*l.scale+h)}0!==v.length&&(m=Math.max(p-h,m),lh(v,0,v.length-1,g,b)),p=0;const w=o*s+b;l.lineOffset=Math.max(b,a),f+=w,_=Math.max(w,_),++y}var x;const v=f-Xc,{horizontalAlign:b,verticalAlign:w}=ah(a);(function(t,e,i,r,n,s,o,a,l){const c=(e-i)*n;let h=0;h=s!==o?-a*r-Xc:(-r*l+.5)*o;for(const u of t)for(const t of u.positionedGlyphs)t.x+=c,t.y+=h})(e.positionedLines,g,b,w,m,_,o,v,s.length),e.top+=-w*v,e.bottom=e.top+v,e.left+=-b*m,e.right=e.left+m}(b,i,r,n,g,a,l,c,d,h,p,m),!function(t){for(const e of t)if(0!==e.positionedGlyphs.length)return!1;return!0}(v)&&b}const Jc={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},Qc={10:!0,32:!0,38:!0,41:!0,43:!0,45:!0,47:!0,173:!0,183:!0,8203:!0,8208:!0,8211:!0,8231:!0},th={40:!0};function eh(t,e,i,r,n,s){if(e.imageName){const t=r[e.imageName];return t?t.displaySize[0]*e.scale*Dc/s+n:0}{const r=i[e.fontStack],s=r&&r[t];return s?s.metrics.advance*e.scale+n:0}}function ih(t,e,i,r){const n=Math.pow(t-e,2);return r?t=0;let c=0;for(let u=0;uc){const t=Math.ceil(s/c);n*=t/o,o=t}return{x1:r,y1:n,x2:r+s,y2:n+o}}function uh(t,e,i,r,n,s){const o=t.image;let a;if(o.content){const t=o.content,e=o.pixelRatio||1;a=[t[0]/e,t[1]/e,o.displaySize[0]-t[2]/e,o.displaySize[1]-t[3]/e]}const l=e.left*s,c=e.right*s;let h,u,d,p;"width"===i||"both"===i?(p=n[0]+l-r[3],u=n[0]+c+r[1]):(p=n[0]+(l+c-o.displaySize[0])/2,u=p+o.displaySize[0]);const f=e.top*s,m=e.bottom*s;return"height"===i||"both"===i?(h=n[1]+f-r[0],d=n[1]+m+r[2]):(h=n[1]+(f+m-o.displaySize[1])/2,d=h+o.displaySize[1]),{image:o,top:h,right:u,bottom:d,left:p,collisionPadding:a}}const dh=255,ph=128,fh=dh*ph;function mh(t,e){const{expression:i}=e;if("constant"===i.kind)return{kind:"constant",layoutSize:i.evaluate(new cs(t+1))};if("source"===i.kind)return{kind:"source"};{const{zoomStops:e,interpolationType:r}=i;let n=0;for(;nt.id)),this.index=e.index,this.pixelRatio=e.pixelRatio,this.sourceLayerIndex=e.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.sortKeyRanges=[],this.collisionCircleArray=[];const i=this.layers[0]._unevaluatedLayout._values;this.textSizeData=mh(this.zoom,i["text-size"]),this.iconSizeData=mh(this.zoom,i["icon-size"]);const r=this.layers[0].layout,n=r.get("symbol-sort-key"),s=r.get("symbol-z-order");this.canOverlap="never"!==_h(r,"text-overlap","text-allow-overlap")||"never"!==_h(r,"icon-overlap","icon-allow-overlap")||r.get("text-ignore-placement")||r.get("icon-ignore-placement"),this.sortFeaturesByKey="viewport-y"!==s&&!n.isConstant(),this.sortFeaturesByY=("viewport-y"===s||"auto"===s&&!this.sortFeaturesByKey)&&this.canOverlap,"point"===r.get("symbol-placement")&&(this.writingModes=r.get("text-writing-mode").map((e=>t.ai[e]))),this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id)),this.sourceID=e.sourceID}createArrays(){this.text=new wh(new ia(this.layers,this.zoom,(t=>/^text/.test(t)))),this.icon=new wh(new ia(this.layers,this.zoom,(t=>/^icon/.test(t)))),this.glyphOffsetArray=new oo,this.lineVertexArray=new ao,this.symbolInstances=new so,this.textAnchorOffsets=new co}calculateGlyphDependencies(t,e,i,r,n){for(let s=0;s0)&&("constant"!==o.value.kind||o.value.value.length>0),h="constant"!==l.value.kind||!!l.value.value||Object.keys(l.parameters).length>0,u=s.get("symbol-sort-key");if(this.features=[],!c&&!h)return;const d=i.iconDependencies,p=i.glyphDependencies,f=i.availableImages,m=new cs(this.zoom);for(const{feature:_,id:g,index:y,sourceLayerIndex:x}of e){const e=n._featureFilter.needGeometry,i=la(_,e);if(!n._featureFilter.filter(m,i,r))continue;let a,l;if(e||(i.geometry=aa(_)),c){const t=n.getValueAndResolveTokens("text-field",i,r,f),e=ye.factory(t),s=this.hasRTLText=this.hasRTLText||bh(e);(!s||"unavailable"===ls.getRTLTextPluginStatus()||s&&ls.isParsed())&&(a=Cc(e,n,i))}if(h){const t=n.getValueAndResolveTokens("icon-image",i,r,f);l=t instanceof Te?t:Te.fromString(t)}if(!a&&!l)continue;const v=this.sortFeaturesByKey?u.evaluate(i,{},r):void 0;if(this.features.push({id:g,text:a,icon:l,index:y,sourceLayerIndex:x,geometry:i.geometry,properties:_.properties,type:gh[_.type],sortKey:v}),l&&(d[l.name]=!0),a){const e=o.evaluate(i,{},r).join(","),n="viewport"!==s.get("text-rotation-alignment")&&"point"!==s.get("symbol-placement");this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(t.ai.vertical)>=0;for(const t of a.sections)if(t.image)d[t.image.name]=!0;else{const i=Kn(a.toString()),r=t.fontStack||e,s=p[r]=p[r]||{};this.calculateGlyphDependencies(t.text,s,n,this.allowVerticalPlacement,i)}}}"line"===s.get("symbol-placement")&&(this.features=function(t){const e={},i={},r=[];let n=0;function s(e){r.push(t[e]),n++}function o(t,e,n){const s=i[t];return delete i[t],i[e]=s,r[s].geometry[0].pop(),r[s].geometry[0]=r[s].geometry[0].concat(n[0]),s}function a(t,i,n){const s=e[i];return delete e[i],e[t]=s,r[s].geometry[0].shift(),r[s].geometry[0]=n[0].concat(r[s].geometry[0]),s}function l(t,e,i){const r=i?e[0][e[0].length-1]:e[0][0];return`${t}:${r.x}:${r.y}`}for(let c=0;ct.geometry))}(this.features)),this.sortFeaturesByKey&&this.features.sort(((t,e)=>t.sortKey-e.sortKey))}update(t,e,i){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(t,e,this.layers,i),this.icon.programConfigurations.updatePaintArrays(t,e,this.layers,i))}isEmpty(){return 0===this.symbolInstances.length&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(t){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(t),this.iconCollisionBox.upload(t)),this.text.upload(t,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(t,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()}addToLineVertexArray(t,e){const i=this.lineVertexArray.length;if(void 0!==t.segment){let i=t.dist(e[t.segment+1]),r=t.dist(e[t.segment]);const n={};for(let s=t.segment+1;s=0;s--)n[s]={x:e[s].x,y:e[s].y,tileUnitDistanceFromAnchor:r},s>0&&(r+=e[s-1].dist(e[s]));for(let t=0;t0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(t,e){const i=t.placedSymbolArray.get(e),r=i.vertexStartIndex+4*i.numGlyphs;for(let n=i.vertexStartIndex;nr[t]-r[e]||n[e]-n[t])),s}addToSortKeyRanges(t,e){const i=this.sortKeyRanges[this.sortKeyRanges.length-1];i&&i.sortKey===e?i.symbolInstanceEnd=t+1:this.sortKeyRanges.push({sortKey:e,symbolInstanceStart:t,symbolInstanceEnd:t+1})}sortFeatures(t){if(this.sortFeaturesByY&&this.sortedAngle!==t&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(t),this.sortedAngle=t,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(const t of this.symbolInstanceIndexes){const e=this.symbolInstances.get(t);this.featureSortOrder.push(e.featureIndex),[e.rightJustifiedTextSymbolIndex,e.centerJustifiedTextSymbolIndex,e.leftJustifiedTextSymbolIndex].forEach(((t,e,i)=>{t>=0&&i.indexOf(t)===e&&this.addIndicesForPlacedSymbol(this.text,t)})),e.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,e.verticalPlacedTextSymbolIndex),e.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,e.placedIconSymbolIndex),e.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,e.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}let Mh,Sh;Un("SymbolBucket",Ph,{omit:["layers","collisionBoxArray","features","compareText"]}),Ph.MAX_GLYPHS=65535,Ph.addDynamicAttributes=vh;var Ih={get paint(){return Sh=Sh||new Ts({"icon-opacity":new xs(ut.paint_symbol["icon-opacity"]),"icon-color":new xs(ut.paint_symbol["icon-color"]),"icon-halo-color":new xs(ut.paint_symbol["icon-halo-color"]),"icon-halo-width":new xs(ut.paint_symbol["icon-halo-width"]),"icon-halo-blur":new xs(ut.paint_symbol["icon-halo-blur"]),"icon-translate":new ys(ut.paint_symbol["icon-translate"]),"icon-translate-anchor":new ys(ut.paint_symbol["icon-translate-anchor"]),"text-opacity":new xs(ut.paint_symbol["text-opacity"]),"text-color":new xs(ut.paint_symbol["text-color"],{runtimeType:zt,getOverride:t=>t.textColor,hasOverride:t=>!!t.textColor}),"text-halo-color":new xs(ut.paint_symbol["text-halo-color"]),"text-halo-width":new xs(ut.paint_symbol["text-halo-width"]),"text-halo-blur":new xs(ut.paint_symbol["text-halo-blur"]),"text-translate":new ys(ut.paint_symbol["text-translate"]),"text-translate-anchor":new ys(ut.paint_symbol["text-translate-anchor"])})},get layout(){return Mh=Mh||new Ts({"symbol-placement":new ys(ut.layout_symbol["symbol-placement"]),"symbol-spacing":new ys(ut.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new ys(ut.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new xs(ut.layout_symbol["symbol-sort-key"]),"symbol-z-order":new ys(ut.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new ys(ut.layout_symbol["icon-allow-overlap"]),"icon-overlap":new ys(ut.layout_symbol["icon-overlap"]),"icon-ignore-placement":new ys(ut.layout_symbol["icon-ignore-placement"]),"icon-optional":new ys(ut.layout_symbol["icon-optional"]),"icon-rotation-alignment":new ys(ut.layout_symbol["icon-rotation-alignment"]),"icon-size":new xs(ut.layout_symbol["icon-size"]),"icon-text-fit":new ys(ut.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new ys(ut.layout_symbol["icon-text-fit-padding"]),"icon-image":new xs(ut.layout_symbol["icon-image"]),"icon-rotate":new xs(ut.layout_symbol["icon-rotate"]),"icon-padding":new xs(ut.layout_symbol["icon-padding"]),"icon-keep-upright":new ys(ut.layout_symbol["icon-keep-upright"]),"icon-offset":new xs(ut.layout_symbol["icon-offset"]),"icon-anchor":new xs(ut.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new ys(ut.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new ys(ut.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new ys(ut.layout_symbol["text-rotation-alignment"]),"text-field":new xs(ut.layout_symbol["text-field"]),"text-font":new xs(ut.layout_symbol["text-font"]),"text-size":new xs(ut.layout_symbol["text-size"]),"text-max-width":new xs(ut.layout_symbol["text-max-width"]),"text-line-height":new ys(ut.layout_symbol["text-line-height"]),"text-letter-spacing":new xs(ut.layout_symbol["text-letter-spacing"]),"text-justify":new xs(ut.layout_symbol["text-justify"]),"text-radial-offset":new xs(ut.layout_symbol["text-radial-offset"]),"text-variable-anchor":new ys(ut.layout_symbol["text-variable-anchor"]),"text-variable-anchor-offset":new xs(ut.layout_symbol["text-variable-anchor-offset"]),"text-anchor":new xs(ut.layout_symbol["text-anchor"]),"text-max-angle":new ys(ut.layout_symbol["text-max-angle"]),"text-writing-mode":new ys(ut.layout_symbol["text-writing-mode"]),"text-rotate":new xs(ut.layout_symbol["text-rotate"]),"text-padding":new ys(ut.layout_symbol["text-padding"]),"text-keep-upright":new ys(ut.layout_symbol["text-keep-upright"]),"text-transform":new xs(ut.layout_symbol["text-transform"]),"text-offset":new xs(ut.layout_symbol["text-offset"]),"text-allow-overlap":new ys(ut.layout_symbol["text-allow-overlap"]),"text-overlap":new ys(ut.layout_symbol["text-overlap"]),"text-ignore-placement":new ys(ut.layout_symbol["text-ignore-placement"]),"text-optional":new ys(ut.layout_symbol["text-optional"])})}};class Ch{constructor(t){if(void 0===t.property.overrides)throw new Error("overrides must be provided to instantiate FormatSectionOverride class");this.type=t.property.overrides?t.property.overrides.runtimeType:It,this.defaultValue=t}evaluate(t){if(t.formattedSection){const e=this.defaultValue.property.overrides;if(e&&e.hasOverride(t.formattedSection))return e.getOverride(t.formattedSection)}return t.feature&&t.featureState?this.defaultValue.evaluate(t.feature,t.featureState):this.defaultValue.property.specification.default}eachChild(t){this.defaultValue.isConstant()||t(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}Un("FormatSectionOverride",Ch,{omit:["defaultValue"]});class Eh extends Ms{constructor(t){super(t,Ih)}recalculate(t,e){if(super.recalculate(t,e),"auto"===this.layout.get("icon-rotation-alignment")&&(this.layout._values["icon-rotation-alignment"]="point"!==this.layout.get("symbol-placement")?"map":"viewport"),"auto"===this.layout.get("text-rotation-alignment")&&(this.layout._values["text-rotation-alignment"]="point"!==this.layout.get("symbol-placement")?"map":"viewport"),"auto"===this.layout.get("text-pitch-alignment")&&(this.layout._values["text-pitch-alignment"]="map"===this.layout.get("text-rotation-alignment")?"map":"viewport"),"auto"===this.layout.get("icon-pitch-alignment")&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment")),"point"===this.layout.get("symbol-placement")){const t=this.layout.get("text-writing-mode");if(t){const e=[];for(const i of t)e.indexOf(i)<0&&e.push(i);this.layout._values["text-writing-mode"]=e}else this.layout._values["text-writing-mode"]=["horizontal"]}this._setPaintOverrides()}getValueAndResolveTokens(t,e,i,r){const n=this.layout.get(t).evaluate(e,{},i,r),s=this._unevaluatedLayout._values[t];return s.isDataDriven()||jr(s.value)||!n?n:function(t,e){return e.replace(/{([^{}]+)}/g,((e,i)=>t&&i in t?String(t[i]):""))}(e.properties,n)}createBucket(t){return new Ph(t)}queryRadius(){return 0}queryIntersectsFeature(){throw new Error("Should take a different path in FeatureIndex")}_setPaintOverrides(){for(const t of Ih.paint.overridableProperties){if(!Eh.hasPaintOverride(this.layout,t))continue;const e=this.paint.get(t),i=new Ch(e),r=new Or(i,e.property.specification);let n=null;n="constant"===e.value.kind||"source"===e.value.kind?new Nr("source",r):new Ur("composite",r,e.value.zoomStops),this.paint._values[t]=new _s(e.property,n,e.parameters)}}_handleOverridablePaintPropertyUpdate(t,e,i){return!(!this.layout||e.isDataDriven()||i.isDataDriven())&&Eh.hasPaintOverride(this.layout,t)}static hasPaintOverride(t,e){const i=t.get("text-field"),r=Ih.paint.properties[e];let n=!1;const s=t=>{for(const e of t)if(r.overrides&&r.overrides.hasOverride(e))return void(n=!0)};if("constant"===i.value.kind&&i.value.value instanceof ye)s(i.value.value.sections);else if("source"===i.value.kind){const t=e=>{n||(e instanceof Ee&&Ie(e.value)===Ft?s(e.value.sections):e instanceof pi?s(e.sections):e.eachChild(t))},e=i.value;e._styleExpression&&t(e._styleExpression.expression)}return n}}let Ah;var zh={get paint(){return Ah=Ah||new Ts({"background-color":new ys(ut.paint_background["background-color"]),"background-pattern":new bs(ut.paint_background["background-pattern"]),"background-opacity":new ys(ut.paint_background["background-opacity"])})}};class kh extends Ms{constructor(t){super(t,zh)}}let Dh;var Rh={get paint(){return Dh=Dh||new Ts({"raster-opacity":new ys(ut.paint_raster["raster-opacity"]),"raster-hue-rotate":new ys(ut.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new ys(ut.paint_raster["raster-brightness-min"]),"raster-brightness-max":new ys(ut.paint_raster["raster-brightness-max"]),"raster-saturation":new ys(ut.paint_raster["raster-saturation"]),"raster-contrast":new ys(ut.paint_raster["raster-contrast"]),"raster-resampling":new ys(ut.paint_raster["raster-resampling"]),"raster-fade-duration":new ys(ut.paint_raster["raster-fade-duration"])})}};class Lh extends Ms{constructor(t){super(t,Rh)}}class Fh extends Ms{constructor(t){super(t,{}),this.onAdd=t=>{this.implementation.onAdd&&this.implementation.onAdd(t,t.painter.context.gl)},this.onRemove=t=>{this.implementation.onRemove&&this.implementation.onRemove(t,t.painter.context.gl)},this.implementation=t}is3D(){return"3d"===this.implementation.renderingMode}hasOffscreenPass(){return void 0!==this.implementation.prerender}recalculate(){}updateTransitions(){}hasTransition(){return!1}serialize(){throw new Error("Custom layers cannot be serialized")}}class Bh{constructor(t){this._methodToThrottle=t,this._triggered=!1,"undefined"!=typeof MessageChannel&&(this._channel=new MessageChannel,this._channel.port2.onmessage=()=>{this._triggered=!1,this._methodToThrottle()})}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout((()=>{this._triggered=!1,this._methodToThrottle()}),0))}remove(){delete this._channel,this._methodToThrottle=()=>{}}}const Oh=6371008.8;class jh{constructor(t,e){if(isNaN(t)||isNaN(e))throw new Error(`Invalid LngLat object: (${t}, ${e})`);if(this.lng=+t,this.lat=+e,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new jh(R(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(t){const e=Math.PI/180,i=this.lat*e,r=t.lat*e,n=Math.sin(i)*Math.sin(r)+Math.cos(i)*Math.cos(r)*Math.cos((t.lng-this.lng)*e);return Oh*Math.acos(Math.min(n,1))}static convert(t){if(t instanceof jh)return t;if(Array.isArray(t)&&(2===t.length||3===t.length))return new jh(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&"object"==typeof t&&null!==t)return new jh(Number("lng"in t?t.lng:t.lon),Number(t.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")}}const Vh=2*Math.PI*Oh;function Nh(t){return Vh*Math.cos(t*Math.PI/180)}function Uh(t){return(180+t)/360}function Zh(t){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))/360}function Gh(t,e){return t/Nh(e)}function $h(t){return 360/Math.PI*Math.atan(Math.exp((180-360*t)*Math.PI/180))-90}function qh(t,e){return t*Nh($h(e))}class Hh{constructor(t,e,i=0){this.x=+t,this.y=+e,this.z=+i}static fromLngLat(t,e=0){const i=jh.convert(t);return new Hh(Uh(i.lng),Zh(i.lat),Gh(e,i.lat))}toLngLat(){return new jh(360*this.x-180,$h(this.y))}toAltitude(){return qh(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/Vh*(t=$h(this.y),1/Math.cos(t*Math.PI/180));var t}}function Xh(t,e,i){var r=2*Math.PI*6378137/256/Math.pow(2,i);return[t*r-2*Math.PI*6378137/2,e*r-2*Math.PI*6378137/2]}class Wh{constructor(t,e,i){if(!function(t,e,i){return!(t<0||t>25||i<0||i>=Math.pow(2,t)||e<0||e>=Math.pow(2,t))}(t,e,i))throw new Error(`x=${e}, y=${i}, z=${t} outside of bounds. 0<=x<${Math.pow(2,t)}, 0<=y<${Math.pow(2,t)} 0<=z<=25 `);this.z=t,this.x=e,this.y=i,this.key=Jh(0,t,t,e,i)}equals(t){return this.z===t.z&&this.x===t.x&&this.y===t.y}url(t,e,i){const r=(s=this.y,o=this.z,a=Xh(256*(n=this.x),256*(s=Math.pow(2,o)-s-1),o),l=Xh(256*(n+1),256*(s+1),o),a[0]+","+a[1]+","+l[0]+","+l[1]);var n,s,o,a,l;const c=function(t,e,i){let r,n="";for(let s=t;s>0;s--)r=1<1?"@2x":"").replace(/{quadkey}/g,c).replace(/{bbox-epsg-3857}/g,r)}isChildOf(t){const e=this.z-t.z;return e>0&&t.x===this.x>>e&&t.y===this.y>>e}getTilePoint(t){const e=Math.pow(2,this.z);return new l((t.x*e-this.x)*S,(t.y*e-this.y)*S)}toString(){return`${this.z}/${this.x}/${this.y}`}}class Kh{constructor(t,e){this.wrap=t,this.canonical=e,this.key=Jh(t,e.z,e.z,e.x,e.y)}}class Yh{constructor(t,e,i,r,n){if(this.terrainRttPosMatrix32f=null,t= z; overscaledZ = ${t}; z = ${i}`);this.overscaledZ=t,this.wrap=e,this.canonical=new Wh(i,+r,+n),this.key=Jh(e,t,i,r,n)}clone(){return new Yh(this.overscaledZ,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)}equals(t){return this.overscaledZ===t.overscaledZ&&this.wrap===t.wrap&&this.canonical.equals(t.canonical)}scaledTo(t){if(t>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`);const e=this.canonical.z-t;return t>this.canonical.z?new Yh(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Yh(t,this.wrap,t,this.canonical.x>>e,this.canonical.y>>e)}calculateScaledKey(t,e){if(t>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`);const i=this.canonical.z-t;return t>this.canonical.z?Jh(this.wrap*+e,t,this.canonical.z,this.canonical.x,this.canonical.y):Jh(this.wrap*+e,t,t,this.canonical.x>>i,this.canonical.y>>i)}isChildOf(t){if(t.wrap!==this.wrap)return!1;const e=this.canonical.z-t.canonical.z;return 0===t.overscaledZ||t.overscaledZ>e&&t.canonical.y===this.canonical.y>>e}children(t){if(this.overscaledZ>=t)return[new Yh(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const e=this.canonical.z+1,i=2*this.canonical.x,r=2*this.canonical.y;return[new Yh(e,this.wrap,e,i,r),new Yh(e,this.wrap,e,i+1,r),new Yh(e,this.wrap,e,i,r+1),new Yh(e,this.wrap,e,i+1,r+1)]}isLessThan(t){return this.wrapt.wrap)&&(this.overscaledZt.overscaledZ)&&(this.canonical.xt.canonical.x)&&this.canonical.ythis.max&&(this.max=e),e=this.dim+1||e<-1||e>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(e+1)*this.stride+(t+1)}unpack(t,e,i){return t*this.redFactor+e*this.greenFactor+i*this.blueFactor-this.baseShift}getPixels(){return new Oa({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))}backfillBorder(t,e,i){if(this.dim!==t.dim)throw new Error("dem dimension mismatch");let r=e*this.dim,n=e*this.dim+this.dim,s=i*this.dim,o=i*this.dim+this.dim;switch(e){case-1:r=n-1;break;case 1:n=r+1}switch(i){case-1:s=o-1;break;case 1:o=s+1}const a=-e*this.dim,l=-i*this.dim;for(let c=s;c=this._numberToString.length)throw new Error(`Out of bounds. Index requested n=${t} can't be >= this._numberToString.length ${this._numberToString.length}`);return this._numberToString[t]}}class eu{constructor(t,e,i,r,n){this.type="Feature",this._vectorTileFeature=t,t._z=e,t._x=i,t._y=r,this.properties=t.properties,this.id=n}get geometry(){return void 0===this._geometry&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry}set geometry(t){this._geometry=t}toJSON(){const t={geometry:this.geometry};for(const e in this)"_geometry"!==e&&"_vectorTileFeature"!==e&&(t[e]=this[e]);return t}}class iu{constructor(t,e){this.tileID=t,this.x=t.canonical.x,this.y=t.canonical.y,this.z=t.canonical.z,this.grid=new Vn(S,16,0),this.grid3D=new Vn(S,16,0),this.featureIndexArray=new uo,this.promoteId=e}insert(t,e,i,r,n,s){const o=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(i,r,n);const a=s?this.grid3D:this.grid;for(let l=0;l=0&&i[3]>=0&&a.insert(o,i[0],i[1],i[2],i[3])}}loadVTLayers(){return this.vtLayers||(this.vtLayers=new Wl.VectorTile(new Bc(this.rawTileData)).layers,this.sourceLayerCoder=new tu(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers}query(t,e,i,r){this.loadVTLayers();const n=t.params,s=S/t.tileSize/t.scale,o=Xr(n.filter),a=t.queryGeometry,c=t.queryPadding*s,h=nu(a),u=this.grid.query(h.minX-c,h.minY-c,h.maxX+c,h.maxY+c),d=nu(t.cameraQueryGeometry),p=this.grid3D.query(d.minX-c,d.minY-c,d.maxX+c,d.maxY+c,((e,i,r,n)=>function(t,e,i,r,n){for(const o of t)if(e<=o.x&&i<=o.y&&r>=o.x&&n>=o.y)return!0;const s=[new l(e,i),new l(e,n),new l(r,n),new l(r,i)];if(t.length>2)for(const o of s)if(ba(t,o))return!0;for(let o=0;o(d||(d=aa(e)),i.queryIntersectsFeature({queryGeometry:a,feature:e,featureState:r,geometry:d,zoom:this.z,transform:t.transform,pixelsToTileUnits:s,pixelPosMatrix:t.pixelPosMatrix}))))}return f}loadMatchingFeature(t,e,i,r,n,s,o,a,l,c,h){const u=this.bucketLayerIDs[e];if(s&&!u.some((t=>s.has(t))))return;const d=this.sourceLayerCoder.decode(i),p=this.vtLayers[d].feature(r);if(n.needGeometry){const t=la(p,!0);if(!n.filter(new cs(this.tileID.overscaledZ),t,this.tileID.canonical))return}else if(!n.filter(new cs(this.tileID.overscaledZ),p))return;const f=this.getId(p,d);for(let m=0;m{const o=e instanceof gs?e.get(s):null;return o&&o.evaluate?o.evaluate(i,r,n):o}))}function nu(t){let e=1/0,i=1/0,r=-1/0,n=-1/0;for(const s of t)e=Math.min(e,s.x),i=Math.min(i,s.y),r=Math.max(r,s.x),n=Math.max(n,s.y);return{minX:e,minY:i,maxX:r,maxY:n}}function su(t,e){return e-t}function ou(t,e,i,r,n){const s=[];for(let o=0;o=r&&h.x>=r||(o.x>=r?o=new l(r,o.y+(r-o.x)/(h.x-o.x)*(h.y-o.y))._round():h.x>=r&&(h=new l(r,o.y+(r-o.x)/(h.x-o.x)*(h.y-o.y))._round()),o.y>=n&&h.y>=n||(o.y>=n?o=new l(o.x+(n-o.y)/(h.y-o.y)*(h.x-o.x),n)._round():h.y>=n&&(h=new l(o.x+(n-o.y)/(h.y-o.y)*(h.x-o.x),n)._round()),c&&o.equals(c[c.length-1])||(c=[o],s.push(c)),c.push(h)))))}}return s}Un("FeatureIndex",iu,{omit:["rawTileData","sourceLayerCoder"]});class au extends l{constructor(t,e,i,r){super(t,e),this.angle=i,void 0!==r&&(this.segment=r)}clone(){return new au(this.x,this.y,this.angle,this.segment)}}function lu(t,e,i,r,n){if(void 0===e.segment||0===i)return!0;let s=e,o=e.segment+1,a=0;for(;a>-i/2;){if(o--,o<0)return!1;a-=t[o].dist(s),s=t[o]}a+=t[o].dist(t[o+1]),o++;const l=[];let c=0;for(;ar;)c-=l.shift().angleDelta;if(c>n)return!1;o++,a+=e.dist(i)}return!0}function cu(t){let e=0;for(let i=0;ic){const s=(c-l)/n,u=ti.number(i.x,r.x,s),d=ti.number(i.y,r.y,s),p=new au(u,d,r.angleTo(i),h);return p._round(),!o||lu(t,p,a,o,e)?p:void 0}l+=n}}function pu(t,e,i,r,n,s,o,a,l){const c=hu(r,s,o),h=uu(r,n),u=h*o,d=0===t[0].x||t[0].x===l||0===t[0].y||t[0].y===l;return e-u=0&&g=0&&y=0&&d+c<=h){const e=new au(g,y,m,f);e._round(),r&&!lu(t,e,s,r,n)||p.push(e)}}u+=a}return a||p.length||o||(p=fu(t,u/2,i,r,n,s,o,!0,l)),p}Un("Anchor",au);const mu=Gc;function _u(t,e,i,r){const n=[],s=t.image,o=s.pixelRatio,a=s.paddedRect.w-2*mu,c=s.paddedRect.h-2*mu;let h={x1:t.left,y1:t.top,x2:t.right,y2:t.bottom};const u=s.stretchX||[[0,a]],d=s.stretchY||[[0,c]],p=(t,e)=>t+e[1]-e[0],f=u.reduce(p,0),m=d.reduce(p,0),_=a-f,g=c-m;let y=0,x=f,v=0,b=m,w=0,T=_,P=0,M=g;if(s.content&&r){const e=s.content,i=e[2]-e[0],r=e[3]-e[1];(s.textFitWidth||s.textFitHeight)&&(h=hh(t)),y=gu(u,0,e[0]),v=gu(d,0,e[1]),x=gu(u,e[0],e[2]),b=gu(d,e[1],e[3]),w=e[0]-y,P=e[1]-v,T=i-x,M=r-b}const S=h.x1,I=h.y1,C=h.x2-S,E=h.y2-I,A=(t,r,n,a)=>{const c=xu(t.stretch-y,x,C,S),h=vu(t.fixed-w,T,t.stretch,f),u=xu(r.stretch-v,b,E,I),d=vu(r.fixed-P,M,r.stretch,m),p=xu(n.stretch-y,x,C,S),_=vu(n.fixed-w,T,n.stretch,f),g=xu(a.stretch-v,b,E,I),A=vu(a.fixed-P,M,a.stretch,m),z=new l(c,u),k=new l(p,u),D=new l(p,g),R=new l(c,g),L=new l(h/o,d/o),F=new l(_/o,A/o),B=e*Math.PI/180;if(B){const t=Math.sin(B),e=Math.cos(B),i=[e,-t,t,e];z._matMult(i),k._matMult(i),R._matMult(i),D._matMult(i)}const O=t.stretch+t.fixed,j=r.stretch+r.fixed;return{tl:z,tr:k,bl:R,br:D,tex:{x:s.paddedRect.x+mu+O,y:s.paddedRect.y+mu+j,w:n.stretch+n.fixed-O,h:a.stretch+a.fixed-j},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:L,pixelOffsetBR:F,minFontScaleX:T/o/C,minFontScaleY:M/o/E,isSDF:i}};if(r&&(s.stretchX||s.stretchY)){const t=yu(u,_,f),e=yu(d,g,m);for(let i=0;i0&&(r=Math.max(10,r),this.circleDiameter=r)}else{const c=(null===(u=s.image)||void 0===u?void 0:u.content)&&(s.image.textFitWidth||s.image.textFitHeight)?hh(s):{x1:s.left,y1:s.top,x2:s.right,y2:s.bottom};c.y1=c.y1*o-a[0],c.y2=c.y2*o+a[2],c.x1=c.x1*o-a[3],c.x2=c.x2*o+a[1];const d=s.collisionPadding;if(d&&(c.x1-=d[0]*o,c.y1-=d[1]*o,c.x2+=d[2]*o,c.y2+=d[3]*o),h){const t=new l(c.x1,c.y1),e=new l(c.x2,c.y1),i=new l(c.x1,c.y2),r=new l(c.x2,c.y2),n=h*Math.PI/180;t._rotate(n),e._rotate(n),i._rotate(n),r._rotate(n),c.x1=Math.min(t.x,e.x,i.x,r.x),c.x2=Math.max(t.x,e.x,i.x,r.x),c.y1=Math.min(t.y,e.y,i.y,r.y),c.y2=Math.max(t.y,e.y,i.y,r.y)}t.emplaceBack(e.x,e.y,c.x1,c.y1,c.x2,c.y2,i,r,n)}this.boxEndIndex=t.length}}class wu{constructor(t=[],e=(t,e)=>te?1:0){if(this.data=t,this.length=this.data.length,this.compare=e,this.length>0)for(let i=(this.length>>1)-1;i>=0;i--)this._down(i)}push(t){this.data.push(t),this._up(this.length++)}pop(){if(0===this.length)return;const t=this.data[0],e=this.data.pop();return--this.length>0&&(this.data[0]=e,this._down(0)),t}peek(){return this.data[0]}_up(t){const{data:e,compare:i}=this,r=e[t];for(;t>0;){const n=t-1>>1,s=e[n];if(i(r,s)>=0)break;e[t]=s,t=n}e[t]=r}_down(t){const{data:e,compare:i}=this,r=this.length>>1,n=e[t];for(;t=0)break;e[t]=e[r],t=r}e[t]=n}}function Tu(t,e=1,i=!1){let r=1/0,n=1/0,s=-1/0,o=-1/0;const a=t[0];for(let l=0;ls)&&(s=t.x),(!l||t.y>o)&&(o=t.y)}const c=Math.min(s-r,o-n);let h=c/2;const u=new wu([],Pu);if(0===c)return new l(r,n);for(let l=r;ld.d||!d.d)&&(d=r,i&&console.log("found best %d after %d probes",Math.round(1e4*r.d)/1e4,p)),r.max-d.d<=e||(h=r.h/2,u.push(new Mu(r.p.x-h,r.p.y-h,h,t)),u.push(new Mu(r.p.x+h,r.p.y-h,h,t)),u.push(new Mu(r.p.x-h,r.p.y+h,h,t)),u.push(new Mu(r.p.x+h,r.p.y+h,h,t)),p+=4)}return i&&(console.log(`num probes: ${p}`),console.log(`best distance: ${d.d}`)),d.p}function Pu(t,e){return e.max-t.max}function Mu(t,e,i,r){this.p=new l(t,e),this.h=i,this.d=function(t,e){let i=!1,r=1/0;for(let n=0;nt.y!=a.y>t.y&&t.x<(a.x-n.x)*(t.y-n.y)/(a.y-n.y)+n.x&&(i=!i),r=Math.min(r,xa(t,n,a))}}return(i?1:-1)*Math.sqrt(r)}(this.p,r),this.max=this.d+this.h*Math.SQRT2}var Su;t.av=void 0,(Su=t.av||(t.av={}))[Su.center=1]="center",Su[Su.left=2]="left",Su[Su.right=3]="right",Su[Su.top=4]="top",Su[Su.bottom=5]="bottom",Su[Su["top-left"]=6]="top-left",Su[Su["top-right"]=7]="top-right",Su[Su["bottom-left"]=8]="bottom-left",Su[Su["bottom-right"]=9]="bottom-right";const Iu=7,Cu=Number.POSITIVE_INFINITY;function Eu(t,e){return e[1]!==Cu?function(t,e,i){let r=0,n=0;switch(e=Math.abs(e),i=Math.abs(i),t){case"top-right":case"top-left":case"top":n=i-Iu;break;case"bottom-right":case"bottom-left":case"bottom":n=-i+Iu}switch(t){case"top-right":case"bottom-right":case"right":r=-e;break;case"top-left":case"bottom-left":case"left":r=e}return[r,n]}(t,e[0],e[1]):function(t,e){let i=0,r=0;e<0&&(e=0);const n=e/Math.SQRT2;switch(t){case"top-right":case"top-left":r=n-Iu;break;case"bottom-right":case"bottom-left":r=-n+Iu;break;case"bottom":r=-e+Iu;break;case"top":r=e-Iu}switch(t){case"top-right":case"bottom-right":i=-n;break;case"top-left":case"bottom-left":i=n;break;case"left":i=e;break;case"right":i=-e}return[i,r]}(t,e[0])}function Au(t,e,i){var r;const n=t.layout,s=null===(r=n.get("text-variable-anchor-offset"))||void 0===r?void 0:r.evaluate(e,{},i);if(s){const t=s.values,e=[];for(let i=0;it*Dc));r.startsWith("top")?n[1]-=Iu:r.startsWith("bottom")&&(n[1]+=Iu),e[i+1]=n}return new we(e)}const o=n.get("text-variable-anchor");if(o){let r;r=void 0!==t._unevaluatedLayout.getValue("text-radial-offset")?[n.get("text-radial-offset").evaluate(e,{},i)*Dc,Cu]:n.get("text-offset").evaluate(e,{},i).map((t=>t*Dc));const s=[];for(const t of o)s.push(t,Eu(t,r));return new we(s)}return null}function zu(t){switch(t){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function ku(e,i,r,n,s,o,a,l,c,h,u,d){let p=o.textMaxSize.evaluate(i,{});void 0===p&&(p=a);const f=e.layers[0].layout,m=f.get("icon-offset").evaluate(i,{},u),_=Ru(r.horizontal),g=a/24,y=e.tilePixelRatio*g,x=e.tilePixelRatio*p/24,v=e.tilePixelRatio*l,b=e.tilePixelRatio*f.get("symbol-spacing"),w=f.get("text-padding")*e.tilePixelRatio,T=function(t,e,i,r=1){const n=t.get("icon-padding").evaluate(e,{},i),s=n&&n.values;return[s[0]*r,s[1]*r,s[2]*r,s[3]*r]}(f,i,u,e.tilePixelRatio),P=f.get("text-max-angle")/180*Math.PI,M="viewport"!==f.get("text-rotation-alignment")&&"point"!==f.get("symbol-placement"),I="map"===f.get("icon-rotation-alignment")&&"point"!==f.get("symbol-placement"),C=f.get("symbol-placement"),E=b/2,A=f.get("icon-text-fit");let z;n&&"none"!==A&&(e.allowVerticalPlacement&&r.vertical&&(z=uh(n,r.vertical,A,f.get("icon-text-fit-padding"),m,g)),_&&(n=uh(n,_,A,f.get("icon-text-fit-padding"),m,g)));const k=u?d.line.getGranularityForZoomLevel(u.z):1,D=(l,d)=>{d.x<0||d.x>=S||d.y<0||d.y>=S||function(e,i,r,n,s,o,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T,P,M){const S=e.addToLineVertexArray(i,r);let I,C,E,A,z=0,k=0,D=0,R=0,L=-1,F=-1;const B={};let O=jo("");if(e.allowVerticalPlacement&&n.vertical){const t=l.layout.get("text-rotate").evaluate(b,{},P)+90;E=new bu(c,i,h,u,d,n.vertical,p,f,m,t),a&&(A=new bu(c,i,h,u,d,a,g,y,m,t))}if(s){const r=l.layout.get("icon-rotate").evaluate(b,{}),n="none"!==l.layout.get("icon-text-fit"),o=_u(s,r,T,n),p=a?_u(a,r,T,n):void 0;C=new bu(c,i,h,u,d,s,g,y,!1,r),z=4*o.length;const f=e.iconSizeData;let m=null;"source"===f.kind?(m=[ph*l.layout.get("icon-size").evaluate(b,{})],m[0]>fh&&N(`${e.layerIds[0]}: Value for "icon-size" is >= ${dh}. Reduce your "icon-size".`)):"composite"===f.kind&&(m=[ph*w.compositeIconSizes[0].evaluate(b,{},P),ph*w.compositeIconSizes[1].evaluate(b,{},P)],(m[0]>fh||m[1]>fh)&&N(`${e.layerIds[0]}: Value for "icon-size" is >= ${dh}. Reduce your "icon-size".`)),e.addSymbols(e.icon,o,m,v,x,b,t.ai.none,i,S.lineStartIndex,S.lineLength,-1,P),L=e.icon.placedSymbolArray.length-1,p&&(k=4*p.length,e.addSymbols(e.icon,p,m,v,x,b,t.ai.vertical,i,S.lineStartIndex,S.lineLength,-1,P),F=e.icon.placedSymbolArray.length-1)}const j=Object.keys(n.horizontal);for(const N of j){const r=n.horizontal[N];if(!I){O=jo(r.text);const t=l.layout.get("text-rotate").evaluate(b,{},P);I=new bu(c,i,h,u,d,r,p,f,m,t)}const s=1===r.positionedLines.length;if(D+=Du(e,i,r,o,l,m,b,_,S,n.vertical?t.ai.horizontal:t.ai.horizontalOnly,s?j:[N],B,L,w,P),s)break}n.vertical&&(R+=Du(e,i,n.vertical,o,l,m,b,_,S,t.ai.vertical,["vertical"],B,F,w,P));const V=I?I.boxStartIndex:e.collisionBoxArray.length,U=I?I.boxEndIndex:e.collisionBoxArray.length,Z=E?E.boxStartIndex:e.collisionBoxArray.length,G=E?E.boxEndIndex:e.collisionBoxArray.length,$=C?C.boxStartIndex:e.collisionBoxArray.length,q=C?C.boxEndIndex:e.collisionBoxArray.length,H=A?A.boxStartIndex:e.collisionBoxArray.length,X=A?A.boxEndIndex:e.collisionBoxArray.length;let W=-1;const K=(t,e)=>t&&t.circleDiameter?Math.max(t.circleDiameter,e):e;W=K(I,W),W=K(E,W),W=K(C,W),W=K(A,W);const Y=W>-1?1:0;Y&&(W*=M/Dc),e.glyphOffsetArray.length>=Ph.MAX_GLYPHS&&N("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),void 0!==b.sortKey&&e.addToSortKeyRanges(e.symbolInstances.length,b.sortKey);const J=Au(l,b,P),[Q,tt]=function(e,i){const r=e.length,n=null==i?void 0:i.values;if((null==n?void 0:n.length)>0)for(let s=0;s=0?B.right:-1,B.center>=0?B.center:-1,B.left>=0?B.left:-1,B.vertical||-1,L,F,O,V,U,Z,G,$,q,H,X,h,D,R,z,k,Y,0,p,W,Q,tt)}(e,d,l,r,n,s,z,e.layers[0],e.collisionBoxArray,i.index,i.sourceLayerIndex,e.index,y,[w,w,w,w],M,c,v,T,I,m,i,o,h,u,a)};if("line"===C)for(const t of ou(i.geometry,0,0,S,S)){const i=Sl(t,k),s=pu(i,b,P,r.vertical||_,n,24,x,e.overscaling,S);for(const t of s)_&&Lu(e,_.text,E,t)||D(i,t)}else if("line-center"===C){for(const t of i.geometry)if(t.length>1){const e=Sl(t,k),i=du(e,P,r.vertical||_,n,24,x);i&&D(e,i)}}else if("Polygon"===i.type)for(const t of ji(i.geometry,0)){const e=Tu(t,16);D(Sl(t[0],k,!0),new au(e.x,e.y,0))}else if("LineString"===i.type)for(const t of i.geometry){const e=Sl(t,k);D(e,new au(e[0].x,e[0].y,0))}else if("Point"===i.type)for(const t of i.geometry)for(const e of t)D([e],new au(e.x,e.y,0))}function Du(t,e,i,r,n,s,o,a,c,h,u,d,p,f,m){const _=function(t,e,i,r,n,s,o,a){const c=r.layout.get("text-rotate").evaluate(s,{})*Math.PI/180,h=[];for(const u of e.positionedLines)for(const t of u.positionedGlyphs){if(!t.rect)continue;const r=t.rect||{};let s=Uc+1,d=!0,p=1,f=0;const m=(n||a)&&t.vertical,_=t.metrics.advance*t.scale/2;if(a&&e.verticalizable&&(f=u.lineOffset/2-(t.imageName?-(Dc-t.metrics.width*t.scale)/2:(t.scale-1)*Dc)),t.imageName){const e=o[t.imageName];d=e.sdf,p=e.pixelRatio,s=Gc/p}const g=n?[t.x+_,t.y]:[0,0];let y=n?[0,0]:[t.x+_+i[0],t.y+i[1]-f],x=[0,0];m&&(x=y,y=[0,0]);const v=t.metrics.isDoubleResolution?2:1,b=(t.metrics.left-s)*t.scale-_+y[0],w=(-t.metrics.top-s)*t.scale+y[1],T=b+r.w/v*t.scale/p,P=w+r.h/v*t.scale/p,M=new l(b,w),S=new l(T,w),I=new l(b,P),C=new l(T,P);if(m){const e=new l(-_,_-Xc),i=-Math.PI/2,r=Dc/2-_,n=new l(5-Xc-r,-(t.imageName?r:0)),s=new l(...x);M._rotateAround(i,e)._add(n)._add(s),S._rotateAround(i,e)._add(n)._add(s),I._rotateAround(i,e)._add(n)._add(s),C._rotateAround(i,e)._add(n)._add(s)}if(c){const t=Math.sin(c),e=Math.cos(c),i=[e,-t,t,e];M._matMult(i),S._matMult(i),I._matMult(i),C._matMult(i)}const E=new l(0,0),A=new l(0,0);h.push({tl:M,tr:S,bl:I,br:C,tex:r,writingMode:e.writingMode,glyphOffset:g,sectionIndex:t.sectionIndex,isSDF:d,pixelOffsetTL:E,pixelOffsetBR:A,minFontScaleX:0,minFontScaleY:0})}return h}(0,i,a,n,s,o,r,t.allowVerticalPlacement),g=t.textSizeData;let y=null;"source"===g.kind?(y=[ph*n.layout.get("text-size").evaluate(o,{})],y[0]>fh&&N(`${t.layerIds[0]}: Value for "text-size" is >= ${dh}. Reduce your "text-size".`)):"composite"===g.kind&&(y=[ph*f.compositeTextSizes[0].evaluate(o,{},m),ph*f.compositeTextSizes[1].evaluate(o,{},m)],(y[0]>fh||y[1]>fh)&&N(`${t.layerIds[0]}: Value for "text-size" is >= ${dh}. Reduce your "text-size".`)),t.addSymbols(t.text,_,y,a,s,o,h,e,c.lineStartIndex,c.lineLength,p,m);for(const l of u)d[l]=t.text.placedSymbolArray.length-1;return 4*_.length}function Ru(t){for(const e in t)return t[e];return null}function Lu(t,e,i,r){const n=t.compareText;if(e in n){const t=n[e];for(let e=t.length-1;e>=0;e--)if(r.dist(t[e])>4;if(1!==r)throw new Error(`Got v${r} data when expected v1.`);const n=Fu[15&i];if(!n)throw new Error("Unrecognized array type.");const[s]=new Uint16Array(t,2,1),[o]=new Uint32Array(t,4,1);return new Bu(o,s,n,t)}constructor(t,e=64,i=Float64Array,r){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+e,2),65535),this.ArrayType=i,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;const n=Fu.indexOf(this.ArrayType),s=2*t*this.ArrayType.BYTES_PER_ELEMENT,o=t*this.IndexArrayType.BYTES_PER_ELEMENT,a=(8-o%8)%8;if(n<0)throw new Error(`Unexpected typed array class: ${i}.`);r&&r instanceof ArrayBuffer?(this.data=r,this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+o+a,2*t),this._pos=2*t,this._finished=!0):(this.data=new ArrayBuffer(8+s+o+a),this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+o+a,2*t),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+n]),new Uint16Array(this.data,2,1)[0]=e,new Uint32Array(this.data,4,1)[0]=t)}add(t,e){const i=this._pos>>1;return this.ids[i]=i,this.coords[this._pos++]=t,this.coords[this._pos++]=e,i}finish(){const t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return Ou(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,e,i,r){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:n,coords:s,nodeSize:o}=this,a=[0,n.length-1,0],l=[];for(;a.length;){const c=a.pop()||0,h=a.pop()||0,u=a.pop()||0;if(h-u<=o){for(let o=u;o<=h;o++){const a=s[2*o],c=s[2*o+1];a>=t&&a<=i&&c>=e&&c<=r&&l.push(n[o])}continue}const d=u+h>>1,p=s[2*d],f=s[2*d+1];p>=t&&p<=i&&f>=e&&f<=r&&l.push(n[d]),(0===c?t<=p:e<=f)&&(a.push(u),a.push(d-1),a.push(1-c)),(0===c?i>=p:r>=f)&&(a.push(d+1),a.push(h),a.push(1-c))}return l}within(t,e,i){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:r,coords:n,nodeSize:s}=this,o=[0,r.length-1,0],a=[],l=i*i;for(;o.length;){const c=o.pop()||0,h=o.pop()||0,u=o.pop()||0;if(h-u<=s){for(let i=u;i<=h;i++)Uu(n[2*i],n[2*i+1],t,e)<=l&&a.push(r[i]);continue}const d=u+h>>1,p=n[2*d],f=n[2*d+1];Uu(p,f,t,e)<=l&&a.push(r[d]),(0===c?t-i<=p:e-i<=f)&&(o.push(u),o.push(d-1),o.push(1-c)),(0===c?t+i>=p:e+i>=f)&&(o.push(d+1),o.push(h),o.push(1-c))}return a}}function Ou(t,e,i,r,n,s){if(n-r<=i)return;const o=r+n>>1;ju(t,e,o,r,n,s),Ou(t,e,i,r,o-1,1-s),Ou(t,e,i,o+1,n,1-s)}function ju(t,e,i,r,n,s){for(;n>r;){if(n-r>600){const o=n-r+1,a=i-r+1,l=Math.log(o),c=.5*Math.exp(2*l/3),h=.5*Math.sqrt(l*c*(o-c)/o)*(a-o/2<0?-1:1);ju(t,e,i,Math.max(r,Math.floor(i-a*c/o+h)),Math.min(n,Math.floor(i+(o-a)*c/o+h)),s)}const o=e[2*i+s];let a=r,l=n;for(Vu(t,e,r,i),e[2*n+s]>o&&Vu(t,e,r,n);ao;)l--}e[2*r+s]===o?Vu(t,e,r,l):(l++,Vu(t,e,l,n)),l<=i&&(r=l+1),i<=l&&(n=l-1)}}function Vu(t,e,i,r){Nu(t,i,r),Nu(e,2*i,2*r),Nu(e,2*i+1,2*r+1)}function Nu(t,e,i){const r=t[e];t[e]=t[i],t[i]=r}function Uu(t,e,i,r){const n=t-i,s=e-r;return n*n+s*s}var Zu;t.ce=void 0,(Zu=t.ce||(t.ce={})).create="create",Zu.load="load",Zu.fullLoad="fullLoad";let Gu=null,$u=[];const qu=1e3/60,Hu="loadTime",Xu="fullLoadTime",Wu={mark(t){performance.mark(t)},frame(t){const e=t;null!=Gu&&$u.push(e-Gu),Gu=e},clearMetrics(){Gu=null,$u=[],performance.clearMeasures(Hu),performance.clearMeasures(Xu);for(const e in t.ce)performance.clearMarks(t.ce[e])},getPerformanceMetrics(){performance.measure(Hu,t.ce.create,t.ce.load),performance.measure(Xu,t.ce.create,t.ce.fullLoad);const e=performance.getEntriesByName(Hu)[0].duration,i=performance.getEntriesByName(Xu)[0].duration,r=$u.length,n=1/($u.reduce(((t,e)=>t+e),0)/r/1e3),s=$u.filter((t=>t>qu)).reduce(((t,e)=>t+(e-qu)/qu),0);return{loadTime:e,fullLoadTime:i,fps:n,percentDroppedFrames:s/(r+s)*100,totalFrames:r}}};t.$=Tt,t.A=g,t.B=Fn,t.C=function(t){if(null==G){const e=t.navigator?t.navigator.userAgent:null;G=!!t.safari||!(!e||!(/\b(iPad|iPhone|iPod)\b/.test(e)||e.match("Safari")&&!e.match("Chrome")))}return G},t.D=ys,t.E=ht,t.F=class{constructor(t,e){this.target=t,this.mapId=e,this.resolveRejects={},this.tasks={},this.taskQueue=[],this.abortControllers={},this.messageHandlers={},this.invoker=new Bh((()=>this.process())),this.subscription=function(t,e,i){return t.addEventListener(e,i,!1),{unsubscribe:()=>{t.removeEventListener(e,i,!1)}}}(this.target,"message",(t=>this.receive(t))),this.globalScope=Z(self)?t:window}registerMessageHandler(t,e){this.messageHandlers[t]=e}sendAsync(t,e){return new Promise(((i,r)=>{const n=Math.round(1e18*Math.random()).toString(36).substring(0,10);this.resolveRejects[n]={resolve:i,reject:r},e&&e.signal.addEventListener("abort",(()=>{delete this.resolveRejects[n];const e={id:n,type:"",origin:location.origin,targetMapId:t.targetMapId,sourceMapId:this.mapId};this.target.postMessage(e)}),{once:!0});const s=[],o=Object.assign(Object.assign({},t),{id:n,sourceMapId:this.mapId,origin:location.origin,data:qn(t.data,s)});this.target.postMessage(o,{transfer:s})}))}receive(t){const e=t.data,i=e.id;if(!("file://"!==e.origin&&"file://"!==location.origin&&"resource://android"!==e.origin&&"resource://android"!==location.origin&&e.origin!==location.origin||e.targetMapId&&this.mapId!==e.targetMapId)){if(""===e.type){delete this.tasks[i];const t=this.abortControllers[i];return delete this.abortControllers[i],void(t&&t.abort())}if(Z(self)||e.mustQueue)return this.tasks[i]=e,this.taskQueue.push(i),void this.invoker.trigger();this.processTask(i,e)}}process(){if(0===this.taskQueue.length)return;const t=this.taskQueue.shift(),e=this.tasks[t];delete this.tasks[t],this.taskQueue.length>0&&this.invoker.trigger(),e&&this.processTask(t,e)}processTask(t,i){return e(this,void 0,void 0,(function*(){if(""===i.type){const e=this.resolveRejects[t];if(delete this.resolveRejects[t],!e)return;return void(i.error?e.reject(Hn(i.error)):e.resolve(Hn(i.data)))}if(!this.messageHandlers[i.type])return void this.completeTask(t,new Error(`Could not find a registered handler for ${i.type}, map ID: ${this.mapId}, available handlers: ${Object.keys(this.messageHandlers).join(", ")}`));const e=Hn(i.data),r=new AbortController;this.abortControllers[t]=r;try{const n=yield this.messageHandlers[i.type](i.sourceMapId,e,r);this.completeTask(t,null,n)}catch(e){this.completeTask(t,e)}}))}completeTask(t,e,i){const r=[];delete this.abortControllers[t];const n={id:t,type:"",sourceMapId:this.mapId,origin:location.origin,error:e?qn(e):null,data:qn(i,r)};this.target.postMessage(n,{transfer:r})}remove(){this.invoker.remove(),this.subscription.unsubscribe()}},t.G=et,t.H=function(){var t=new g(16);return g!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t},t.I=$c,t.J=function(t,e,i){var r,n,s,o,a,l,c,h,u,d,p,f,m=i[0],_=i[1],g=i[2];return e===t?(t[12]=e[0]*m+e[4]*_+e[8]*g+e[12],t[13]=e[1]*m+e[5]*_+e[9]*g+e[13],t[14]=e[2]*m+e[6]*_+e[10]*g+e[14],t[15]=e[3]*m+e[7]*_+e[11]*g+e[15]):(n=e[1],s=e[2],o=e[3],a=e[4],l=e[5],c=e[6],h=e[7],u=e[8],d=e[9],p=e[10],f=e[11],t[0]=r=e[0],t[1]=n,t[2]=s,t[3]=o,t[4]=a,t[5]=l,t[6]=c,t[7]=h,t[8]=u,t[9]=d,t[10]=p,t[11]=f,t[12]=r*m+a*_+u*g+e[12],t[13]=n*m+l*_+d*g+e[13],t[14]=s*m+c*_+p*g+e[14],t[15]=o*m+h*_+f*g+e[15]),t},t.K=function(t,e,i){var r=i[0],n=i[1],s=i[2];return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*n,t[5]=e[5]*n,t[6]=e[6]*n,t[7]=e[7]*n,t[8]=e[8]*s,t[9]=e[9]*s,t[10]=e[10]*s,t[11]=e[11]*s,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},t.L=function(t,e,i){var r=e[0],n=e[1],s=e[2],o=e[3],a=e[4],l=e[5],c=e[6],h=e[7],u=e[8],d=e[9],p=e[10],f=e[11],m=e[12],_=e[13],g=e[14],y=e[15],x=i[0],v=i[1],b=i[2],w=i[3];return t[0]=x*r+v*a+b*u+w*m,t[1]=x*n+v*l+b*d+w*_,t[2]=x*s+v*c+b*p+w*g,t[3]=x*o+v*h+b*f+w*y,t[4]=(x=i[4])*r+(v=i[5])*a+(b=i[6])*u+(w=i[7])*m,t[5]=x*n+v*l+b*d+w*_,t[6]=x*s+v*c+b*p+w*g,t[7]=x*o+v*h+b*f+w*y,t[8]=(x=i[8])*r+(v=i[9])*a+(b=i[10])*u+(w=i[11])*m,t[9]=x*n+v*l+b*d+w*_,t[10]=x*s+v*c+b*p+w*g,t[11]=x*o+v*h+b*f+w*y,t[12]=(x=i[12])*r+(v=i[13])*a+(b=i[14])*u+(w=i[15])*m,t[13]=x*n+v*l+b*d+w*_,t[14]=x*s+v*c+b*p+w*g,t[15]=x*o+v*h+b*f+w*y,t},t.M=function(t,e){const i={};for(let r=0;r{const e=window.document.createElement("video");return e.muted=!0,new Promise((i=>{e.onloadstart=()=>{i(e)};for(const r of t){const t=window.document.createElement("source");st(r)||(e.crossOrigin="Anonymous"),t.src=r,e.appendChild(t)}}))},t.a1=function(){return F++},t.a2=eo,t.a3=Ph,t.a4=Xr,t.a5=la,t.a6=eu,t.a7=function(t){const e={};if(t.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,((t,i,r,n)=>{const s=r||n;return e[i]=!s||s.toLowerCase(),""})),e["max-age"]){const t=parseInt(e["max-age"],10);isNaN(t)?delete e["max-age"]:e["max-age"]=t}return e},t.a8=function(t){return Math.log(t)/Math.LN2},t.a9=function(t){var e=t[0],i=t[1];return e*e+i*i},t.aA=Es,t.aB=bl,t.aC=po,t.aD=Eo,t.aE=Mo,t.aF=85.051129,t.aG=function(t){return Math.pow(2,t)},t.aH=Gh,t.aI=R,t.aJ=K,t.aK=qh,t.aL=function(t,e,i){return t[0]=e[0]*i,t[1]=e[1]*i,t[2]=e[2]*i,t},t.aM=function(t,e,i){return t[0]=e[0]+i[0],t[1]=e[1]+i[1],t[2]=e[2]+i[2],t},t.aN=function(t){var e=new g(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e},t.aO=function(t,e,i){return t[0]=e[0]*i[0],t[1]=e[1]*i[1],t[2]=e[2]*i[2],t[3]=e[3]*i[3],t},t.aP=function(t,e,i){return t[0]=e[0]-i[0],t[1]=e[1]-i[1],t[2]=e[2]-i[2],t},t.aQ=function(t,e){var i=e[0],r=e[1],n=e[2],s=i*i+r*r+n*n;return s>0&&(s=1/Math.sqrt(s)),t[0]=e[0]*s,t[1]=e[1]*s,t[2]=e[2]*s,t},t.aR=function(t,e,i){var r=e[0],n=e[1],s=e[2],o=i[0],a=i[1],l=i[2];return t[0]=n*l-s*a,t[1]=s*o-r*l,t[2]=r*a-n*o,t},t.aS=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},t.aT=Kh,t.aU=Jh,t.aV=function(t,e,i,r,n){var s,o=1/Math.tan(e/2);return t[0]=o/i,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=o,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,null!=n&&n!==1/0?(t[10]=(n+r)*(s=1/(r-n)),t[14]=2*n*r*s):(t[10]=-1,t[14]=-2*r),t},t.aW=function(t){var e=new g(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e},t.aX=function(t,e,i){var r=Math.sin(i),n=Math.cos(i),s=e[0],o=e[1],a=e[2],l=e[3],c=e[4],h=e[5],u=e[6],d=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=s*n+c*r,t[1]=o*n+h*r,t[2]=a*n+u*r,t[3]=l*n+d*r,t[4]=c*n-s*r,t[5]=h*n-o*r,t[6]=u*n-a*r,t[7]=d*n-l*r,t},t.aY=function(t,e,i){var r=Math.sin(i),n=Math.cos(i),s=e[4],o=e[5],a=e[6],l=e[7],c=e[8],h=e[9],u=e[10],d=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=s*n+c*r,t[5]=o*n+h*r,t[6]=a*n+u*r,t[7]=l*n+d*r,t[8]=c*n-s*r,t[9]=h*n-o*r,t[10]=u*n-a*r,t[11]=d*n-l*r,t},t.aZ=function(){const t=new Float32Array(16);return x(t),t},t.a_=function(){const t=new Float64Array(16);return x(t),t},t.aa=function(t){return t*Math.PI/180},t.ab=D,t.ac=function(t,e){const i=[];for(const r in t)r in e||i.push(r);return i},t.ad=P,t.ae=function(t){return Math.hypot(t[0],t[1])},t.af=function(t){return t[0]=0,t[1]=0,t},t.ag=function(t,e,i){return t[0]=e[0]*i,t[1]=e[1]*i,t},t.ah=function(t,e){let i=0,r=0;if("constant"===t.kind)r=t.layoutSize;else if("source"!==t.kind){const{interpolationType:n,minZoom:s,maxZoom:o}=t,a=n?D(Je.interpolationFactor(n,e,s,o),0,1):0;"camera"===t.kind?r=ti.number(t.minSize,t.maxSize,a):i=a}return{uSizeT:i,uSize:r}},t.aj=function(t,{uSize:e,uSizeT:i},{lowerSize:r,upperSize:n}){return"source"===t.kind?r/ph:"composite"===t.kind?ti.number(r/ph,n/ph,i):e},t.ak=vh,t.al=w,t.am=function(t,e,i,r){const n=e.y-t.y,s=e.x-t.x,o=r.y-i.y,a=r.x-i.x,c=o*s-a*n;if(0===c)return null;const h=(a*(t.y-i.y)-o*(t.x-i.x))/c;return new l(t.x+h*s,t.y+h*n)},t.an=function(t,e){var i=e[0],r=e[1],n=e[2],s=e[3],o=e[4],a=e[5],l=e[6],c=e[7],h=e[8],u=e[9],d=e[10],p=e[11],f=e[12],m=e[13],_=e[14],g=e[15],y=i*a-r*o,x=i*l-n*o,v=i*c-s*o,b=r*l-n*a,w=r*c-s*a,T=n*c-s*l,P=h*m-u*f,M=h*_-d*f,S=h*g-p*f,I=u*_-d*m,C=u*g-p*m,E=d*g-p*_,A=y*E-x*C+v*I+b*S-w*M+T*P;return A?(t[0]=(a*E-l*C+c*I)*(A=1/A),t[1]=(n*C-r*E-s*I)*A,t[2]=(m*T-_*w+g*b)*A,t[3]=(d*w-u*T-p*b)*A,t[4]=(l*S-o*E-c*M)*A,t[5]=(i*E-n*S+s*M)*A,t[6]=(_*v-f*T-g*x)*A,t[7]=(h*T-d*v+p*x)*A,t[8]=(o*C-a*S+c*P)*A,t[9]=(r*S-i*C-s*P)*A,t[10]=(f*w-m*v+g*y)*A,t[11]=(u*v-h*w-p*y)*A,t[12]=(a*M-o*I-l*P)*A,t[13]=(i*I-r*M+n*P)*A,t[14]=(m*x-f*b-_*y)*A,t[15]=(h*b-u*x+d*y)*A,t):null},t.ao=ou,t.ap=da,t.aq=x,t.ar=function(t){let e=1/0,i=1/0,r=-1/0,n=-1/0;for(const s of t)e=Math.min(e,s.x),i=Math.min(i,s.y),r=Math.max(r,s.x),n=Math.max(n,s.y);return[e,i,r,n]},t.as=Dc,t.at=I,t.au=function(t,e,i,r,n=!1){if(!i[0]&&!i[1])return[0,0];const s=n?"map"===r?-t.bearingInRadians:0:"viewport"===r?t.bearingInRadians:0;if(s){const t=Math.sin(s),e=Math.cos(s);i=[i[0]*e-i[1]*t,i[0]*t+i[1]*e]}return[n?i[0]:I(e,i[0],t.zoom),n?i[1]:I(e,i[1],t.zoom)]},t.aw=_h,t.ax=zu,t.ay=ah,t.az=Bu,t.b=$,t.b$=t=>"line"===t.type,t.b0=function(t,e,i){const r=new Float64Array(4);return function(t,e,i,r){var n=.5*Math.PI/180;e*=n,i*=n,r*=n;var s=Math.sin(e),o=Math.cos(e),a=Math.sin(i),l=Math.cos(i),c=Math.sin(r),h=Math.cos(r);t[0]=s*l*h-o*a*c,t[1]=o*a*h+s*l*c,t[2]=o*l*c-s*a*h,t[3]=o*l*h+s*a*c}(r,t,e-90,i),r},t.b1=function(t,e,i,r){var n,s,o,a,l,c=e[0],h=e[1],u=e[2],d=e[3],p=i[0],f=i[1],m=i[2],g=i[3];return(s=c*p+h*f+u*m+d*g)<0&&(s=-s,p=-p,f=-f,m=-m,g=-g),1-s>_?(n=Math.acos(s),o=Math.sin(n),a=Math.sin((1-r)*n)/o,l=Math.sin(r*n)/o):(a=1-r,l=r),t[0]=a*c+l*p,t[1]=a*h+l*f,t[2]=a*u+l*m,t[3]=a*d+l*g,t},t.b2=function(t){const e=new Float64Array(9);var i,r,n,s,o,a,l,c,h,u,d,p,f,m,_,g,y,x;u=(n=(r=t)[0])*(l=n+n),d=(s=r[1])*l,f=(o=r[2])*l,m=o*(c=s+s),g=(a=r[3])*l,y=a*c,x=a*(h=o+o),(i=e)[0]=1-(p=s*c)-(_=o*h),i[3]=d-x,i[6]=f+y,i[1]=d+x,i[4]=1-u-_,i[7]=m-g,i[2]=f-y,i[5]=m+g,i[8]=1-u-p;const v=K(-Math.asin(D(e[2],-1,1)));let b,w;return Math.hypot(e[5],e[8])<.001?(b=0,w=-K(Math.atan2(e[3],e[4]))):(b=K(0===e[5]&&0===e[8]?0:Math.atan2(e[5],e[8])),w=K(0===e[1]&&0===e[0]?0:Math.atan2(e[1],e[0]))),{roll:b,pitch:v+90,bearing:w}},t.b3=function(t,e){return t.roll==e.roll&&t.pitch==e.pitch&&t.bearing==e.bearing},t.b4=me,t.b5=$o,t.b6=wl,t.b7=Tl,t.b8=vl,t.b9=E,t.bA=B,t.bB=O,t.bC=class extends Go{constructor(t,e){super(t,e),this.current=0}set(t){this.current!==t&&(this.current=t,this.gl.uniform1i(this.location,t))}},t.bD=class extends Go{constructor(t,e){super(t,e),this.current=Xo}set(t){if(t[12]!==this.current[12]||t[0]!==this.current[0])return this.current=t,void this.gl.uniformMatrix4fv(this.location,!1,t);for(let e=1;e<16;e++)if(t[e]!==this.current[e]){this.current=t,this.gl.uniformMatrix4fv(this.location,!1,t);break}}},t.bE=qo,t.bF=Ho,t.bG=class extends Go{constructor(t,e){super(t,e),this.current=[0,0,0]}set(t){t[0]===this.current[0]&&t[1]===this.current[1]&&t[2]===this.current[2]||(this.current=t,this.gl.uniform3f(this.location,t[0],t[1],t[2]))}},t.bH=class extends Go{constructor(t,e){super(t,e),this.current=[0,0]}set(t){t[0]===this.current[0]&&t[1]===this.current[1]||(this.current=t,this.gl.uniform2f(this.location,t[0],t[1]))}},t.bI=y,t.bJ=function(t,e){var i=Math.sin(e),r=Math.cos(e);return t[0]=r,t[1]=i,t[2]=0,t[3]=-i,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},t.bK=function(t,e,i){var r=e[0],n=e[1],s=e[2];return t[0]=r*i[0]+n*i[3]+s*i[6],t[1]=r*i[1]+n*i[4]+s*i[7],t[2]=r*i[2]+n*i[5]+s*i[8],t},t.bL=function(t,e,i,r,n,s,o){var a=1/(e-i),l=1/(r-n),c=1/(s-o);return t[0]=-2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*l,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*c,t[11]=0,t[12]=(e+i)*a,t[13]=(n+r)*l,t[14]=(o+s)*c,t[15]=1,t},t.bM=class extends Zs{},t.bN=Ic,t.bO=class extends $s{},t.bP=Va,t.bQ=function(t){return t<=1?1:Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))},t.bR=ja,t.bS=function(t,e,i){var r=e[0],n=e[1],s=e[2],o=i[3]*r+i[7]*n+i[11]*s+i[15];return t[0]=(i[0]*r+i[4]*n+i[8]*s+i[12])/(o=o||1),t[1]=(i[1]*r+i[5]*n+i[9]*s+i[13])/o,t[2]=(i[2]*r+i[6]*n+i[10]*s+i[14])/o,t},t.bT=class extends Ds{},t.bU=class extends Js{},t.bV=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]&&t[8]===e[8]&&t[9]===e[9]&&t[10]===e[10]&&t[11]===e[11]&&t[12]===e[12]&&t[13]===e[13]&&t[14]===e[14]&&t[15]===e[15]},t.bW=function(t,e){var i=t[0],r=t[1],n=t[2],s=t[3],o=t[4],a=t[5],l=t[6],c=t[7],h=t[8],u=t[9],d=t[10],p=t[11],f=t[12],m=t[13],g=t[14],y=t[15],x=e[0],v=e[1],b=e[2],w=e[3],T=e[4],P=e[5],M=e[6],S=e[7],I=e[8],C=e[9],E=e[10],A=e[11],z=e[12],k=e[13],D=e[14],R=e[15];return Math.abs(i-x)<=_*Math.max(1,Math.abs(i),Math.abs(x))&&Math.abs(r-v)<=_*Math.max(1,Math.abs(r),Math.abs(v))&&Math.abs(n-b)<=_*Math.max(1,Math.abs(n),Math.abs(b))&&Math.abs(s-w)<=_*Math.max(1,Math.abs(s),Math.abs(w))&&Math.abs(o-T)<=_*Math.max(1,Math.abs(o),Math.abs(T))&&Math.abs(a-P)<=_*Math.max(1,Math.abs(a),Math.abs(P))&&Math.abs(l-M)<=_*Math.max(1,Math.abs(l),Math.abs(M))&&Math.abs(c-S)<=_*Math.max(1,Math.abs(c),Math.abs(S))&&Math.abs(h-I)<=_*Math.max(1,Math.abs(h),Math.abs(I))&&Math.abs(u-C)<=_*Math.max(1,Math.abs(u),Math.abs(C))&&Math.abs(d-E)<=_*Math.max(1,Math.abs(d),Math.abs(E))&&Math.abs(p-A)<=_*Math.max(1,Math.abs(p),Math.abs(A))&&Math.abs(f-z)<=_*Math.max(1,Math.abs(f),Math.abs(z))&&Math.abs(m-k)<=_*Math.max(1,Math.abs(m),Math.abs(k))&&Math.abs(g-D)<=_*Math.max(1,Math.abs(g),Math.abs(D))&&Math.abs(y-R)<=_*Math.max(1,Math.abs(y),Math.abs(R))},t.bX=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},t.bY=t=>"symbol"===t.type,t.bZ=t=>"circle"===t.type,t.b_=t=>"heatmap"===t.type,t.ba=A,t.bb=Pe,t.bc=function(t,e,i,r,n){return E(r,n,D((t-e)/(i-e),0,1))},t.bd=C,t.be=function(){return new Float64Array(4)},t.bf=function(){return new Float64Array(3)},t.bg=function(t,e,i,r){var n=[],s=[];return n[0]=e[0]-i[0],n[1]=e[1]-i[1],n[2]=e[2]-i[2],s[0]=n[0]*Math.cos(r)-n[1]*Math.sin(r),s[1]=n[0]*Math.sin(r)+n[1]*Math.cos(r),s[2]=n[2],t[0]=s[0]+i[0],t[1]=s[1]+i[1],t[2]=s[2]+i[2],t},t.bh=function(t,e,i,r){var n=[],s=[];return n[0]=e[0]-i[0],n[1]=e[1]-i[1],n[2]=e[2]-i[2],s[0]=n[0],s[1]=n[1]*Math.cos(r)-n[2]*Math.sin(r),s[2]=n[1]*Math.sin(r)+n[2]*Math.cos(r),t[0]=s[0]+i[0],t[1]=s[1]+i[1],t[2]=s[2]+i[2],t},t.bi=function(t,e,i,r){var n=[],s=[];return n[0]=e[0]-i[0],n[1]=e[1]-i[1],n[2]=e[2]-i[2],s[0]=n[2]*Math.sin(r)+n[0]*Math.cos(r),s[1]=n[1],s[2]=n[2]*Math.cos(r)-n[0]*Math.sin(r),t[0]=s[0]+i[0],t[1]=s[1]+i[1],t[2]=s[2]+i[2],t},t.bj=function(t,e,i){var r=Math.sin(i),n=Math.cos(i),s=e[0],o=e[1],a=e[2],l=e[3],c=e[8],h=e[9],u=e[10],d=e[11];return e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=s*n-c*r,t[1]=o*n-h*r,t[2]=a*n-u*r,t[3]=l*n-d*r,t[8]=s*r+c*n,t[9]=o*r+h*n,t[10]=a*r+u*n,t[11]=l*r+d*n,t},t.bk=function(t,e){const i=C(t,360),r=C(e,360),n=r-i,s=r>i?n-360:n+360;return Math.abs(n)0?o:-o},t.bn=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]},t.bo=Oh,t.bp=function(t,e){const i=C(t,2*Math.PI),r=C(e,2*Math.PI);return Math.min(Math.abs(i-r),Math.abs(i-r+2*Math.PI),Math.abs(i-r-2*Math.PI))},t.bq=function(t){return Math.hypot(t[0],t[1],t[2])},t.br=function(){const t={},e=ut.$version;for(const i in ut.$root){const r=ut.$root[i];if(r.required){let n=null;n="version"===i?e:"array"===r.type?[]:{},null!=n&&(t[i]=n)}}return t},t.bs=Xn,t.bt=rt,t.bu=function(t){t=t.slice();const e=Object.create(null);for(let i=0;i{"source"in t&&r[t.source]?i.push({command:"removeLayer",args:[t.id]}):s.push(t)})),i=i.concat(n),function(t,e,i){e=e||[];const r=(t=t||[]).map(bt),n=e.map(bt),s=t.reduce(wt,{}),o=e.reduce(wt,{}),a=r.slice(),l=Object.create(null);let c,h,u,d,p;for(let f=0,m=0;f"fill"===t.type,t.c1=t=>"fill-extrusion"===t.type,t.c2=t=>"hillshade"===t.type,t.c3=t=>"raster"===t.type,t.c4=t=>"background"===t.type,t.c5=t=>"custom"===t.type,t.c6=z,t.c7=function(t,e,i){const r=M(e.x-i.x,e.y-i.y),n=M(t.x-i.x,t.y-i.y);var s,o;return K(Math.atan2(r[0]*n[1]-r[1]*n[0],(s=r)[0]*(o=n)[0]+s[1]*o[1]))},t.c8=k,t.c9=function(t,e,i){var r=e[0],n=e[1];return t[0]=i[0]*r+i[4]*n+i[12],t[1]=i[1]*r+i[5]*n+i[13],t},t.cA=Fc,t.cB=Vr,t.cC=ls,t.ca=function(t,e){const{x:i,y:r}=Hh.fromLngLat(e);return!(t<0||t>25||r<0||r>=1||i<0||i>=1)},t.cb=function(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},t.cc=class extends ks{},t.cd=Wu,t.cf=function(t){return t.message===Y},t.cg=it,t.ch=function(t,e){Q.REGISTERED_PROTOCOLS[t]=e},t.ci=function(t){delete Q.REGISTERED_PROTOCOLS[t]},t.cj=function(t,e){const i={};for(let n=0;nt*Dc))}let x=a?"center":r.get("text-justify").evaluate(h,{},e.canonical);const v="point"===r.get("symbol-placement")?r.get("text-max-width").evaluate(h,{},e.canonical)*Dc:1/0,b=()=>{e.bucket.allowVerticalPlacement&&Kn(s)&&(f.vertical=Yc(m,e.glyphMap,e.glyphPositions,e.imagePositions,n,v,o,_,"left",p,g,t.ai.vertical,!0,d,u))};if(!a&&y){const i=new Set;if("auto"===x)for(let t=0;te(void 0,void 0,void 0,(function*(){if(0===t.byteLength)return createImageBitmap(new ImageData(1,1));const e=new Blob([new Uint8Array(t)],{type:"image/png"});try{return createImageBitmap(e)}catch(t){throw new Error(`Could not load image because of ${t.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`)}})),t.e=L,t.f=t=>new Promise(((e,i)=>{const r=new Image;r.onload=()=>{e(r),URL.revokeObjectURL(r.src),r.onload=null,window.requestAnimationFrame((()=>{r.src=q}))},r.onerror=()=>i(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."));const n=new Blob([new Uint8Array(t)],{type:"image/png"});r.src=t.byteLength?URL.createObjectURL(n):q})),t.g=tt,t.h=(t,e)=>nt(L(t,{type:"json"}),e),t.i=Z,t.j=ct,t.k=lt,t.l=(t,e)=>nt(L(t,{type:"arrayBuffer"}),e),t.m=nt,t.n=function(t){return new Bc(t).readFields(jc,[])},t.o=Ba,t.p=Zc,t.q=Ts,t.r=Ln,t.s=st,t.t=jn,t.u=Rn,t.v=ut,t.w=N,t.x=function([t,e,i]){return e+=90,e*=Math.PI/180,i*=Math.PI/180,{x:t*Math.cos(e)*Math.sin(i),y:t*Math.sin(e)*Math.sin(i),z:t*Math.cos(i)}},t.y=ti,t.z=cs})),i("worker",["./shared"],(function(t){class e{constructor(t){this.keyCache={},t&&this.replace(t)}replace(t){this._layerConfigs={},this._layers={},this.update(t,[])}update(e,i){for(const n of e){this._layerConfigs[n.id]=n;const e=this._layers[n.id]=t.bv(n);e._featureFilter=t.a4(e.filter),this.keyCache[n.id]&&delete this.keyCache[n.id]}for(const t of i)delete this.keyCache[t],delete this._layerConfigs[t],delete this._layers[t];this.familiesBySource={};const r=t.cj(Object.values(this._layerConfigs),this.keyCache);for(const t of r){const e=t.map((t=>this._layers[t.id])),i=e[0];if("none"===i.visibility)continue;const r=i.source||"";let n=this.familiesBySource[r];n||(n=this.familiesBySource[r]={});const s=i.sourceLayer||"_geojsonTileLayer";let o=n[s];o||(o=n[s]=[]),o.push(e)}}}class i{constructor(e){const i={},r=[];for(const t in e){const n=e[t],s=i[t]={};for(const t in n){const e=n[+t];if(!e||0===e.bitmap.width||0===e.bitmap.height)continue;const i={x:0,y:0,w:e.bitmap.width+2,h:e.bitmap.height+2};r.push(i),s[t]={rect:i,metrics:e.metrics}}}const{w:n,h:s}=t.p(r),o=new t.o({width:n||1,height:s||1});for(const a in e){const r=e[a];for(const e in r){const n=r[+e];if(!n||0===n.bitmap.width||0===n.bitmap.height)continue;const s=i[a][e].rect;t.o.copy(n.bitmap,o,{x:0,y:0},{x:s.x+1,y:s.y+1},n.bitmap)}}this.image=o,this.positions=i}}t.ck("GlyphAtlas",i);class r{constructor(e){this.tileID=new t.S(e.tileID.overscaledZ,e.tileID.wrap,e.tileID.canonical.z,e.tileID.canonical.x,e.tileID.canonical.y),this.uid=e.uid,this.zoom=e.zoom,this.pixelRatio=e.pixelRatio,this.tileSize=e.tileSize,this.source=e.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=e.showCollisionBoxes,this.collectResourceTiming=!!e.collectResourceTiming,this.returnDependencies=!!e.returnDependencies,this.promoteId=e.promoteId,this.inFlightDependencies=[]}parse(e,r,s,o,a){return t._(this,void 0,void 0,(function*(){this.status="parsing",this.data=e,this.collisionBoxArray=new t.a2;const l=new t.cl(Object.keys(e.layers).sort()),c=new t.cm(this.tileID,this.promoteId);c.bucketLayerIDs=[];const h={},u={featureIndex:c,iconDependencies:{},patternDependencies:{},glyphDependencies:{},availableImages:s,subdivisionGranularity:a},d=r.familiesBySource[this.source];for(const i in d){const r=e.layers[i];if(!r)continue;1===r.version&&t.w(`Vector tile source "${this.source}" layer "${i}" does not use vector tile spec v2 and therefore may have some rendering errors.`);const o=l.encode(i),a=[];for(let t=0;t=i.maxzoom||"none"!==i.visibility&&(n(e,this.zoom,s),(h[i.id]=i.createBucket({index:c.bucketLayerIDs.length,layers:e,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:o,sourceID:this.source})).populate(a,u,this.tileID.canonical),c.bucketLayerIDs.push(e.map((t=>t.id))))}}const p=t.bA(u.glyphDependencies,(t=>Object.keys(t).map(Number)));this.inFlightDependencies.forEach((t=>null==t?void 0:t.abort())),this.inFlightDependencies=[];let f=Promise.resolve({});if(Object.keys(p).length){const t=new AbortController;this.inFlightDependencies.push(t),f=o.sendAsync({type:"GG",data:{stacks:p,source:this.source,tileID:this.tileID,type:"glyphs"}},t)}const m=Object.keys(u.iconDependencies);let _=Promise.resolve({});if(m.length){const t=new AbortController;this.inFlightDependencies.push(t),_=o.sendAsync({type:"GI",data:{icons:m,source:this.source,tileID:this.tileID,type:"icons"}},t)}const g=Object.keys(u.patternDependencies);let y=Promise.resolve({});if(g.length){const t=new AbortController;this.inFlightDependencies.push(t),y=o.sendAsync({type:"GI",data:{icons:g,source:this.source,tileID:this.tileID,type:"patterns"}},t)}const[x,v,b]=yield Promise.all([f,_,y]),w=new i(x),T=new t.cn(v,b);for(const e in h){const i=h[e];i instanceof t.a3?(n(i.layers,this.zoom,s),t.co({bucket:i,glyphMap:x,glyphPositions:w.positions,imageMap:v,imagePositions:T.iconPositions,showCollisionBoxes:this.showCollisionBoxes,canonical:this.tileID.canonical,subdivisionGranularity:u.subdivisionGranularity})):i.hasPattern&&(i instanceof t.cp||i instanceof t.cq||i instanceof t.cr)&&(n(i.layers,this.zoom,s),i.addFeatures(u,this.tileID.canonical,T.patternPositions))}return this.status="done",{buckets:Object.values(h).filter((t=>!t.isEmpty())),featureIndex:c,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:w.image,imageAtlas:T,glyphMap:this.returnDependencies?x:null,iconMap:this.returnDependencies?v:null,glyphPositions:this.returnDependencies?w.positions:null}}))}}function n(e,i,r){const n=new t.z(i);for(const t of e)t.recalculate(n,r)}class s{constructor(t,e,i){this.actor=t,this.layerIndex=e,this.availableImages=i,this.fetching={},this.loading={},this.loaded={}}loadVectorTile(e,i){return t._(this,void 0,void 0,(function*(){const r=yield t.l(e.request,i);try{return{vectorTile:new t.cs.VectorTile(new t.ct(r.data)),rawData:r.data,cacheControl:r.cacheControl,expires:r.expires}}catch(t){const n=new Uint8Array(r.data);let s=`Unable to parse the tile at ${e.request.url}, `;throw s+=31===n[0]&&139===n[1]?"please make sure the data is not gzipped and that you have configured the relevant header in the server":`got error: ${t.message}`,new Error(s)}}))}loadTile(e){return t._(this,void 0,void 0,(function*(){const i=e.uid,n=!!(e&&e.request&&e.request.collectResourceTiming)&&new t.cu(e.request),s=new r(e);this.loading[i]=s;const o=new AbortController;s.abort=o;try{const r=yield this.loadVectorTile(e,o);if(delete this.loading[i],!r)return null;const a=r.rawData,l={};r.expires&&(l.expires=r.expires),r.cacheControl&&(l.cacheControl=r.cacheControl);const c={};if(n){const t=n.finish();t&&(c.resourceTiming=JSON.parse(JSON.stringify(t)))}s.vectorTile=r.vectorTile;const h=s.parse(r.vectorTile,this.layerIndex,this.availableImages,this.actor,e.subdivisionGranularity);this.loaded[i]=s,this.fetching[i]={rawTileData:a,cacheControl:l,resourceTiming:c};try{const e=yield h;return t.e({rawTileData:a.slice(0)},e,l,c)}finally{delete this.fetching[i]}}catch(t){throw delete this.loading[i],s.status="done",this.loaded[i]=s,t}}))}reloadTile(e){return t._(this,void 0,void 0,(function*(){const i=e.uid;if(!this.loaded||!this.loaded[i])throw new Error("Should not be trying to reload a tile that was never loaded or has been removed");const r=this.loaded[i];if(r.showCollisionBoxes=e.showCollisionBoxes,"parsing"===r.status){const n=yield r.parse(r.vectorTile,this.layerIndex,this.availableImages,this.actor,e.subdivisionGranularity);let s;if(this.fetching[i]){const{rawTileData:e,cacheControl:r,resourceTiming:o}=this.fetching[i];delete this.fetching[i],s=t.e({rawTileData:e.slice(0)},n,r,o)}else s=n;return s}if("done"===r.status&&r.vectorTile)return r.parse(r.vectorTile,this.layerIndex,this.availableImages,this.actor,e.subdivisionGranularity)}))}abortTile(e){return t._(this,void 0,void 0,(function*(){const t=this.loading,i=e.uid;t&&t[i]&&t[i].abort&&(t[i].abort.abort(),delete t[i])}))}removeTile(e){return t._(this,void 0,void 0,(function*(){this.loaded&&this.loaded[e.uid]&&delete this.loaded[e.uid]}))}}class o{constructor(){this.loaded={}}loadTile(e){return t._(this,void 0,void 0,(function*(){const{uid:i,encoding:r,rawImageData:n,redFactor:s,greenFactor:o,blueFactor:a,baseShift:l}=e,c=n.width+2,h=n.height+2,u=t.b(n)?new t.R({width:c,height:h},yield t.cv(n,-1,-1,c,h)):n,d=new t.cw(i,u,r,s,o,a,l);return this.loaded=this.loaded||{},this.loaded[i]=d,d}))}removeTile(t){const e=this.loaded,i=t.uid;e&&e[i]&&delete e[i]}}var a,l,c=function(){if(l)return a;function t(t,i){if(0!==t.length){e(t[0],i);for(var r=1;r=Math.abs(a)?i-l+a:a-l+i,i=l}i+r>=0!=!!e&&t.reverse()}return l=1,a=function e(i,r){var n,s=i&&i.type;if("FeatureCollection"===s)for(n=0;n>31}function c(t,e){for(var i=t.loadGeometry(),r=t.type,n=0,s=0,o=i.length,c=0;ct},b=Math.fround||(w=new Float32Array(1),t=>(w[0]=+t,w[0]));var w;const T=3,P=5,M=6;class S{constructor(t){this.options=Object.assign(Object.create(v),t),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(t){const{log:e,minZoom:i,maxZoom:r}=this.options;e&&console.time("total time");const n=`prepare ${t.length} points`;e&&console.time(n),this.points=t;const s=[];for(let a=0;a=i;a--){const t=+Date.now();o=this.trees[a]=this._createTree(this._cluster(o,a)),e&&console.log("z%d: %d clusters in %dms",a,o.numItems,+Date.now()-t)}return e&&console.timeEnd("total time"),this}getClusters(t,e){let i=((t[0]+180)%360+360)%360-180;const r=Math.max(-90,Math.min(90,t[1]));let n=180===t[2]?180:((t[2]+180)%360+360)%360-180;const s=Math.max(-90,Math.min(90,t[3]));if(t[2]-t[0]>=360)i=-180,n=180;else if(i>n){const t=this.getClusters([i,r,180,s],e),o=this.getClusters([-180,r,n,s],e);return t.concat(o)}const o=this.trees[this._limitZoom(e)],a=o.range(E(i),A(s),E(n),A(r)),l=o.data,c=[];for(const h of a){const t=this.stride*h;c.push(l[t+P]>1?I(l,t,this.clusterProps):this.points[l[t+T]])}return c}getChildren(t){const e=this._getOriginId(t),i=this._getOriginZoom(t),r="No cluster with the specified id.",n=this.trees[i];if(!n)throw new Error(r);const s=n.data;if(e*this.stride>=s.length)throw new Error(r);const o=this.options.radius/(this.options.extent*Math.pow(2,i-1)),a=n.within(s[e*this.stride],s[e*this.stride+1],o),l=[];for(const c of a){const e=c*this.stride;s[e+4]===t&&l.push(s[e+P]>1?I(s,e,this.clusterProps):this.points[s[e+T]])}if(0===l.length)throw new Error(r);return l}getLeaves(t,e,i){const r=[];return this._appendLeaves(r,t,e=e||10,i=i||0,0),r}getTile(t,e,i){const r=this.trees[this._limitZoom(t)],n=Math.pow(2,t),{extent:s,radius:o}=this.options,a=o/s,l=(i-a)/n,c=(i+1+a)/n,h={features:[]};return this._addTileFeatures(r.range((e-a)/n,l,(e+1+a)/n,c),r.data,e,i,n,h),0===e&&this._addTileFeatures(r.range(1-a/n,l,1,c),r.data,n,i,n,h),e===n-1&&this._addTileFeatures(r.range(0,l,a/n,c),r.data,-1,i,n,h),h.features.length?h:null}getClusterExpansionZoom(t){let e=this._getOriginZoom(t)-1;for(;e<=this.options.maxZoom;){const i=this.getChildren(t);if(e++,1!==i.length)break;t=i[0].properties.cluster_id}return e}_appendLeaves(t,e,i,r,n){const s=this.getChildren(e);for(const o of s){const e=o.properties;if(e&&e.cluster?n+e.point_count<=r?n+=e.point_count:n=this._appendLeaves(t,e.cluster_id,i,r,n):n1;let l,c,h;if(a)l=C(e,t,this.clusterProps),c=e[t],h=e[t+1];else{const i=this.points[e[t+T]];l=i.properties;const[r,n]=i.geometry.coordinates;c=E(r),h=A(n)}const u={type:1,geometry:[[Math.round(this.options.extent*(c*n-i)),Math.round(this.options.extent*(h*n-r))]],tags:l};let d;d=a||this.options.generateId?e[t+T]:this.points[e[t+T]].id,void 0!==d&&(u.id=d),s.features.push(u)}}_limitZoom(t){return Math.max(this.options.minZoom,Math.min(Math.floor(+t),this.options.maxZoom+1))}_cluster(t,e){const{radius:i,extent:r,reduce:n,minPoints:s}=this.options,o=i/(r*Math.pow(2,e)),a=t.data,l=[],c=this.stride;for(let h=0;he&&(p+=a[i+P])}if(p>d&&p>=s){let t,s=i*d,o=r*d,f=-1;const m=(h/c<<5)+(e+1)+this.points.length;for(const i of u){const r=i*c;if(a[r+2]<=e)continue;a[r+2]=e;const l=a[r+P];s+=a[r]*l,o+=a[r+1]*l,a[r+4]=m,n&&(t||(t=this._map(a,h,!0),f=this.clusterProps.length,this.clusterProps.push(t)),n(t,this._map(a,r)))}a[h+4]=m,l.push(s/p,o/p,1/0,m,-1,p),n&&l.push(f)}else{for(let t=0;t1)for(const t of u){const i=t*c;if(!(a[i+2]<=e)){a[i+2]=e;for(let t=0;t>5}_getOriginZoom(t){return(t-this.points.length)%32}_map(t,e,i){if(t[e+P]>1){const r=this.clusterProps[t[e+M]];return i?Object.assign({},r):r}const r=this.points[t[e+T]].properties,n=this.options.map(r);return i&&n===r?Object.assign({},n):n}}function I(t,e,i){return{type:"Feature",id:t[e+T],properties:C(t,e,i),geometry:{type:"Point",coordinates:[(r=t[e],360*(r-.5)),z(t[e+1])]}};var r}function C(t,e,i){const r=t[e+P],n=r>=1e4?`${Math.round(r/1e3)}k`:r>=1e3?Math.round(r/100)/10+"k":r,s=t[e+M],o=-1===s?{}:Object.assign({},i[s]);return Object.assign(o,{cluster:!0,cluster_id:t[e+T],point_count:r,point_count_abbreviated:n})}function E(t){return t/360+.5}function A(t){const e=Math.sin(t*Math.PI/180),i=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return i<0?0:i>1?1:i}function z(t){const e=(180-360*t)*Math.PI/180;return 360*Math.atan(Math.exp(e))/Math.PI-90}function k(t,e,i,r){let n=r;const s=e+(i-e>>1);let o,a=i-e;const l=t[e],c=t[e+1],h=t[i],u=t[i+1];for(let d=e+3;dn)o=d,n=e;else if(e===n){const t=Math.abs(d-s);tr&&(o-e>3&&k(t,e,o,r),t[o+2]=n,i-o>3&&k(t,o,i,r))}function D(t,e,i,r,n,s){let o=n-i,a=s-r;if(0!==o||0!==a){const l=((t-i)*o+(e-r)*a)/(o*o+a*a);l>1?(i=n,r=s):l>0&&(i+=o*l,r+=a*l)}return o=t-i,a=e-r,o*o+a*a}function R(t,e,i,r){const n={id:null==t?null:t,type:e,geometry:i,tags:r,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};if("Point"===e||"MultiPoint"===e||"LineString"===e)L(n,i);else if("Polygon"===e)L(n,i[0]);else if("MultiLineString"===e)for(const s of i)L(n,s);else if("MultiPolygon"===e)for(const s of i)L(n,s[0]);return n}function L(t,e){for(let i=0;i0&&(o+=r?(n*a-i*s)/2:Math.sqrt(Math.pow(i-n,2)+Math.pow(a-s,2))),n=i,s=a}const a=e.length-3;e[2]=1,k(e,0,a,i),e[a+2]=1,e.size=Math.abs(o),e.start=0,e.end=e.size}function j(t,e,i,r){for(let n=0;n1?1:i}function U(t,e,i,r,n,s,o,a){if(r/=e,s>=(i/=e)&&o=r)return null;const l=[];for(const c of t){const t=c.geometry;let e=c.type;const s=0===n?c.minX:c.minY,o=0===n?c.maxX:c.maxY;if(s>=i&&o=r)continue;let h=[];if("Point"===e||"MultiPoint"===e)Z(t,h,i,r,n);else if("LineString"===e)G(t,h,i,r,n,!1,a.lineMetrics);else if("MultiLineString"===e)q(t,h,i,r,n,!1);else if("Polygon"===e)q(t,h,i,r,n,!0);else if("MultiPolygon"===e)for(const a of t){const t=[];q(a,t,i,r,n,!0),t.length&&h.push(t)}if(h.length){if(a.lineMetrics&&"LineString"===e){for(const t of h)l.push(R(c.id,e,t,c.tags));continue}"LineString"!==e&&"MultiLineString"!==e||(1===h.length?(e="LineString",h=h[0]):e="MultiLineString"),"Point"!==e&&"MultiPoint"!==e||(e=3===h.length?"Point":"MultiPoint"),l.push(R(c.id,e,h,c.tags))}}return l.length?l:null}function Z(t,e,i,r,n){for(let s=0;s=i&&o<=r&&H(e,t[s],t[s+1],t[s+2])}}function G(t,e,i,r,n,s,o){let a=$(t);const l=0===n?X:W;let c,h,u=t.start;for(let _=0;_i&&(h=l(a,d,p,m,g,i),o&&(a.start=u+c*h)):y>r?x=i&&(h=l(a,d,p,m,g,i),v=!0),x>r&&y<=r&&(h=l(a,d,p,m,g,r),v=!0),!s&&v&&(o&&(a.end=u+c*h),e.push(a),a=$(t)),o&&(u+=c)}let d=t.length-3;const p=t[d],f=t[d+1],m=0===n?p:f;m>=i&&m<=r&&H(a,p,f,t[d+2]),d=a.length-3,s&&d>=3&&(a[d]!==a[0]||a[d+1]!==a[1])&&H(a,a[0],a[1],a[2]),a.length&&e.push(a)}function $(t){const e=[];return e.size=t.size,e.start=t.start,e.end=t.end,e}function q(t,e,i,r,n,s){for(const o of t)G(o,e,i,r,n,s,!1)}function H(t,e,i,r){t.push(e,i,r)}function X(t,e,i,r,n,s){const o=(s-e)/(r-e);return H(t,s,i+(n-i)*o,1),o}function W(t,e,i,r,n,s){const o=(s-i)/(n-i);return H(t,e+(r-e)*o,s,1),o}function K(t,e){const i=[];for(let r=0;r0&&e.size<(n?o:r))return void(i.numPoints+=e.length/3);const a=[];for(let l=0;lo)&&(i.numSimplified++,a.push(e[l],e[l+1])),i.numPoints++;n&&function(t,e){let i=0;for(let r=0,n=t.length,s=n-2;r0===e)for(let r=0,n=t.length;r24)throw new Error("maxZoom should be in the 0-24 range");if(e.promoteId&&e.generateId)throw new Error("promoteId and generateId cannot be used together.");let r=function(t,e){const i=[];if("FeatureCollection"===t.type)for(let r=0;r1&&console.time("creation"),d=this.tiles[u]=tt(t,e,i,r,l),this.tileCoords.push({z:e,x:i,y:r}),c)){c>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",e,i,r,d.numFeatures,d.numPoints,d.numSimplified),console.timeEnd("creation"));const t=`z${e}`;this.stats[t]=(this.stats[t]||0)+1,this.total++}if(d.source=t,null==n){if(e===l.indexMaxZoom||d.numPoints<=l.indexMaxPoints)continue}else{if(e===l.maxZoom||e===n)continue;if(null!=n){const t=n-e;if(i!==s>>t||r!==o>>t)continue}}if(d.source=null,0===t.length)continue;c>1&&console.time("clipping");const p=.5*l.buffer/l.extent,f=.5-p,m=.5+p,_=1+p;let g=null,y=null,x=null,v=null,b=U(t,h,i-p,i+m,0,d.minX,d.maxX,l),w=U(t,h,i+f,i+_,0,d.minX,d.maxX,l);t=null,b&&(g=U(b,h,r-p,r+m,1,d.minY,d.maxY,l),y=U(b,h,r+f,r+_,1,d.minY,d.maxY,l),b=null),w&&(x=U(w,h,r-p,r+m,1,d.minY,d.maxY,l),v=U(w,h,r+f,r+_,1,d.minY,d.maxY,l),w=null),c>1&&console.timeEnd("clipping"),a.push(g||[],e+1,2*i,2*r),a.push(y||[],e+1,2*i,2*r+1),a.push(x||[],e+1,2*i+1,2*r),a.push(v||[],e+1,2*i+1,2*r+1)}}getTile(t,e,i){t=+t,e=+e,i=+i;const r=this.options,{extent:n,debug:s}=r;if(t<0||t>24)return null;const o=1<1&&console.log("drilling down to z%d-%d-%d",t,e,i);let l,c=t,h=e,u=i;for(;!l&&c>0;)c--,h>>=1,u>>=1,l=this.tiles[st(c,h,u)];return l&&l.source?(s>1&&(console.log("found parent tile z%d-%d-%d",c,h,u),console.time("drilling down")),this.splitTile(l.source,c,h,u,t,e,i),s>1&&console.timeEnd("drilling down"),this.tiles[a]?J(this.tiles[a],n):null):null}}function st(t,e,i){return 32*((1<{o.properties=t;const e={};for(const i of a)e[i]=r[i].evaluate(s,o);return e},e.reduce=(t,e)=>{o.properties=e;for(const i of a)s.accumulated=t[i],t[i]=n[i].evaluate(s,o)},e}(e)).load((yield this._pendingData).features):(n=yield this._pendingData,new nt(n,e.geojsonVtOptions)),this.loaded={};const i={};if(r){const t=r.finish();t&&(i.resourceTiming={},i.resourceTiming[e.source]=JSON.parse(JSON.stringify(t)))}return i}catch(e){if(delete this._pendingRequest,t.cf(e))return{abandoned:!0};throw e}var n}))}getData(){return t._(this,void 0,void 0,(function*(){return this._pendingData}))}reloadTile(t){const e=this.loaded;return e&&e[t.uid]?super.reloadTile(t):this.loadTile(t)}loadAndProcessGeoJSON(e,i){return t._(this,void 0,void 0,(function*(){let r=yield this.loadGeoJSON(e,i);if(delete this._pendingRequest,"object"!=typeof r)throw new Error(`Input data given to '${e.source}' is not a valid GeoJSON object.`);if(h(r,!0),e.filter){const i=t.cB(e.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if("error"===i.result)throw new Error(i.value.map((t=>`${t.key}: ${t.message}`)).join(", "));const n=r.features.filter((t=>i.value.evaluate({zoom:0},t)));r={type:"FeatureCollection",features:n}}return r}))}loadGeoJSON(e,i){return t._(this,void 0,void 0,(function*(){const{promoteId:r}=e;if(e.request){const n=yield t.h(e.request,i);return this._dataUpdateable=at(n.data,r)?lt(n.data,r):void 0,n.data}if("string"==typeof e.data)try{const t=JSON.parse(e.data);return this._dataUpdateable=at(t,r)?lt(t,r):void 0,t}catch(t){throw new Error(`Input data given to '${e.source}' is not a valid GeoJSON object.`)}if(!e.dataDiff)throw new Error(`Input data given to '${e.source}' is not a valid GeoJSON object.`);if(!this._dataUpdateable)throw new Error(`Cannot update existing geojson data in ${e.source}`);return function(t,e,i){var r,n,s,o;if(e.removeAll&&t.clear(),e.remove)for(const a of e.remove)t.delete(a);if(e.add)for(const a of e.add){const e=ot(a,i);null!=e&&t.set(e,a)}if(e.update)for(const a of e.update){let e=t.get(a.id);if(null==e)continue;const i=!a.removeAllProperties&&((null===(r=a.removeProperties)||void 0===r?void 0:r.length)>0||(null===(n=a.addOrUpdateProperties)||void 0===n?void 0:n.length)>0);if((a.newGeometry||a.removeAllProperties||i)&&(e=Object.assign({},e),t.set(a.id,e),i&&(e.properties=Object.assign({},e.properties))),a.newGeometry&&(e.geometry=a.newGeometry),a.removeAllProperties)e.properties={};else if((null===(s=a.removeProperties)||void 0===s?void 0:s.length)>0)for(const t of a.removeProperties)Object.prototype.hasOwnProperty.call(e.properties,t)&&delete e.properties[t];if((null===(o=a.addOrUpdateProperties)||void 0===o?void 0:o.length)>0)for(const{key:t,value:r}of a.addOrUpdateProperties)e.properties[t]=r}}(this._dataUpdateable,e.dataDiff,r),{type:"FeatureCollection",features:Array.from(this._dataUpdateable.values())}}))}removeSource(e){return t._(this,void 0,void 0,(function*(){this._pendingRequest&&this._pendingRequest.abort()}))}getClusterExpansionZoom(t){return this._geoJSONIndex.getClusterExpansionZoom(t.clusterId)}getClusterChildren(t){return this._geoJSONIndex.getChildren(t.clusterId)}getClusterLeaves(t){return this._geoJSONIndex.getLeaves(t.clusterId,t.limit,t.offset)}}class ht{constructor(e){this.self=e,this.actor=new t.F(e),this.layerIndexes={},this.availableImages={},this.workerSources={},this.demWorkerSources={},this.externalWorkerSourceTypes={},this.self.registerWorkerSource=(t,e)=>{if(this.externalWorkerSourceTypes[t])throw new Error(`Worker source with name "${t}" already registered.`);this.externalWorkerSourceTypes[t]=e},this.self.addProtocol=t.ch,this.self.removeProtocol=t.ci,this.self.registerRTLTextPlugin=e=>{t.cC.setMethods(e)},this.actor.registerMessageHandler("LDT",((t,e)=>this._getDEMWorkerSource(t,e.source).loadTile(e))),this.actor.registerMessageHandler("RDT",((e,i)=>t._(this,void 0,void 0,(function*(){this._getDEMWorkerSource(e,i.source).removeTile(i)})))),this.actor.registerMessageHandler("GCEZ",((e,i)=>t._(this,void 0,void 0,(function*(){return this._getWorkerSource(e,i.type,i.source).getClusterExpansionZoom(i)})))),this.actor.registerMessageHandler("GCC",((e,i)=>t._(this,void 0,void 0,(function*(){return this._getWorkerSource(e,i.type,i.source).getClusterChildren(i)})))),this.actor.registerMessageHandler("GCL",((e,i)=>t._(this,void 0,void 0,(function*(){return this._getWorkerSource(e,i.type,i.source).getClusterLeaves(i)})))),this.actor.registerMessageHandler("LD",((t,e)=>this._getWorkerSource(t,e.type,e.source).loadData(e))),this.actor.registerMessageHandler("GD",((t,e)=>this._getWorkerSource(t,e.type,e.source).getData())),this.actor.registerMessageHandler("LT",((t,e)=>this._getWorkerSource(t,e.type,e.source).loadTile(e))),this.actor.registerMessageHandler("RT",((t,e)=>this._getWorkerSource(t,e.type,e.source).reloadTile(e))),this.actor.registerMessageHandler("AT",((t,e)=>this._getWorkerSource(t,e.type,e.source).abortTile(e))),this.actor.registerMessageHandler("RMT",((t,e)=>this._getWorkerSource(t,e.type,e.source).removeTile(e))),this.actor.registerMessageHandler("RS",((e,i)=>t._(this,void 0,void 0,(function*(){if(!this.workerSources[e]||!this.workerSources[e][i.type]||!this.workerSources[e][i.type][i.source])return;const t=this.workerSources[e][i.type][i.source];delete this.workerSources[e][i.type][i.source],void 0!==t.removeSource&&t.removeSource(i)})))),this.actor.registerMessageHandler("RM",(e=>t._(this,void 0,void 0,(function*(){delete this.layerIndexes[e],delete this.availableImages[e],delete this.workerSources[e],delete this.demWorkerSources[e]})))),this.actor.registerMessageHandler("SR",((e,i)=>t._(this,void 0,void 0,(function*(){this.referrer=i})))),this.actor.registerMessageHandler("SRPS",((t,e)=>this._syncRTLPluginState(t,e))),this.actor.registerMessageHandler("IS",((e,i)=>t._(this,void 0,void 0,(function*(){this.self.importScripts(i)})))),this.actor.registerMessageHandler("SI",((t,e)=>this._setImages(t,e))),this.actor.registerMessageHandler("UL",((e,i)=>t._(this,void 0,void 0,(function*(){this._getLayerIndex(e).update(i.layers,i.removedIds)})))),this.actor.registerMessageHandler("SL",((e,i)=>t._(this,void 0,void 0,(function*(){this._getLayerIndex(e).replace(i)}))))}_setImages(e,i){return t._(this,void 0,void 0,(function*(){this.availableImages[e]=i;for(const t in this.workerSources[e]){const r=this.workerSources[e][t];for(const t in r)r[t].availableImages=i}}))}_syncRTLPluginState(e,i){return t._(this,void 0,void 0,(function*(){return yield t.cC.syncState(i,this.self.importScripts)}))}_getAvailableImages(t){let e=this.availableImages[t];return e||(e=[]),e}_getLayerIndex(t){let i=this.layerIndexes[t];return i||(i=this.layerIndexes[t]=new e),i}_getWorkerSource(t,e,i){if(this.workerSources[t]||(this.workerSources[t]={}),this.workerSources[t][e]||(this.workerSources[t][e]={}),!this.workerSources[t][e][i]){const r={sendAsync:(e,i)=>(e.targetMapId=t,this.actor.sendAsync(e,i))};switch(e){case"vector":this.workerSources[t][e][i]=new s(r,this._getLayerIndex(t),this._getAvailableImages(t));break;case"geojson":this.workerSources[t][e][i]=new ct(r,this._getLayerIndex(t),this._getAvailableImages(t));break;default:this.workerSources[t][e][i]=new this.externalWorkerSourceTypes[e](r,this._getLayerIndex(t),this._getAvailableImages(t))}}return this.workerSources[t][e][i]}_getDEMWorkerSource(t,e){return this.demWorkerSources[t]||(this.demWorkerSources[t]={}),this.demWorkerSources[t][e]||(this.demWorkerSources[t][e]=new o),this.demWorkerSources[t][e]}}return t.i(self)&&(self.worker=new ht(self)),ht})),i("index",["exports","./shared"],(function(t,e){var i="5.0.1";function r(){var t=new e.A(4);return e.A!=Float32Array&&(t[1]=0,t[2]=0),t[0]=1,t[3]=1,t}let n,s;const o={now:"undefined"!=typeof performance&&performance&&performance.now?performance.now.bind(performance):Date.now.bind(Date),frameAsync:t=>new Promise(((i,r)=>{const n=requestAnimationFrame(i);t.signal.addEventListener("abort",(()=>{cancelAnimationFrame(n),r(e.c())}))})),getImageData(t,e=0){return this.getImageCanvasContext(t).getImageData(-e,-e,t.width+2*e,t.height+2*e)},getImageCanvasContext(t){const e=window.document.createElement("canvas"),i=e.getContext("2d",{willReadFrequently:!0});if(!i)throw new Error("failed to create canvas 2d context");return e.width=t.width,e.height=t.height,i.drawImage(t,0,0,t.width,t.height),i},resolveURL:t=>(n||(n=document.createElement("a")),n.href=t,n.href),hardwareConcurrency:"undefined"!=typeof navigator&&navigator.hardwareConcurrency||4,get prefersReducedMotion(){return!!matchMedia&&(null==s&&(s=matchMedia("(prefers-reduced-motion: reduce)")),s.matches)}};class a{static testProp(t){if(!a.docStyle)return t[0];for(let e=0;e{window.removeEventListener("click",a.suppressClickInternal,!0)}),0)}static getScale(t){const e=t.getBoundingClientRect();return{x:e.width/t.offsetWidth||1,y:e.height/t.offsetHeight||1,boundingClientRect:e}}static getPoint(t,i,r){const n=i.boundingClientRect;return new e.P((r.clientX-n.left)/i.x-t.clientLeft,(r.clientY-n.top)/i.y-t.clientTop)}static mousePos(t,e){const i=a.getScale(t);return a.getPoint(t,i,e)}static touchPos(t,e){const i=[],r=a.getScale(t);for(let n=0;n{c&&p(c),c=null,d=!0},h.onerror=()=>{u=!0,c=null},h.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="),function(t){let i,r,n,s;t.resetRequestQueue=()=>{i=[],r=0,n=0,s={}},t.addThrottleControl=t=>{const e=n++;return s[e]=t,e},t.removeThrottleControl=t=>{delete s[t],a()},t.getImage=(t,r,n=!0)=>new Promise(((s,o)=>{l.supported&&(t.headers||(t.headers={}),t.headers.accept="image/webp,*/*"),e.e(t,{type:"image"}),i.push({abortController:r,requestParameters:t,supportImageRefresh:n,state:"queued",onError:t=>{o(t)},onSuccess:t=>{s(t)}}),a()}));const o=t=>e._(this,void 0,void 0,(function*(){t.state="running";const{requestParameters:i,supportImageRefresh:n,onError:s,onSuccess:o,abortController:l}=t,h=!1===n&&!e.i(self)&&!e.g(i.url)&&(!i.headers||Object.keys(i.headers).reduce(((t,e)=>t&&"accept"===e),!0));r++;const u=h?c(i,l):e.m(i,l);try{const i=yield u;delete t.abortController,t.state="completed",i.data instanceof HTMLImageElement||e.b(i.data)?o(i):i.data&&o({data:yield(d=i.data,"function"==typeof createImageBitmap?e.d(d):e.f(d)),cacheControl:i.cacheControl,expires:i.expires})}catch(e){delete t.abortController,s(e)}finally{r--,a()}var d})),a=()=>{const t=(()=>{for(const t of Object.keys(s))if(s[t]())return!0;return!1})()?e.a.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:e.a.MAX_PARALLEL_IMAGE_REQUESTS;for(let e=r;e0;e++){const t=i.shift();t.abortController.signal.aborted?e--:o(t)}},c=(t,i)=>new Promise(((r,n)=>{const s=new Image,o=t.url,a=t.credentials;a&&"include"===a?s.crossOrigin="use-credentials":(a&&"same-origin"===a||!e.s(o))&&(s.crossOrigin="anonymous"),i.signal.addEventListener("abort",(()=>{s.src="",n(e.c())})),s.fetchPriority="high",s.onload=()=>{s.onerror=s.onload=null,r({data:s})},s.onerror=()=>{s.onerror=s.onload=null,i.signal.aborted||n(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."))},s.src=o}))}(f||(f={})),f.resetRequestQueue();class m{constructor(t){this._transformRequestFn=t}transformRequest(t,e){return this._transformRequestFn&&this._transformRequestFn(t,e)||{url:t}}setTransformRequest(t){this._transformRequestFn=t}}function _(t){const e=[];if("string"==typeof t)e.push({id:"default",url:t});else if(t&&t.length>0){const i=[];for(const{id:r,url:n}of t){const t=`${r}${n}`;-1===i.indexOf(t)&&(i.push(t),e.push({id:r,url:n}))}}return e}function g(t,e,i){try{const r=new URL(t);return r.pathname+=`${e}${i}`,r.toString()}catch(e){throw new Error(`Invalid sprite URL "${t}", must be absolute. Modify style specification directly or use TransformStyleFunction to correct the issue dynamically`)}}class y{constructor(t,e,i,r){this.context=t,this.format=i,this.texture=t.gl.createTexture(),this.update(e,r)}update(t,i,r){const{width:n,height:s}=t,o=!(this.size&&this.size[0]===n&&this.size[1]===s||r),{context:a}=this,{gl:l}=a;if(this.useMipmap=Boolean(i&&i.useMipmap),l.bindTexture(l.TEXTURE_2D,this.texture),a.pixelStoreUnpackFlipY.set(!1),a.pixelStoreUnpack.set(1),a.pixelStoreUnpackPremultiplyAlpha.set(this.format===l.RGBA&&(!i||!1!==i.premultiply)),o)this.size=[n,s],t instanceof HTMLImageElement||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement||t instanceof ImageData||e.b(t)?l.texImage2D(l.TEXTURE_2D,0,this.format,this.format,l.UNSIGNED_BYTE,t):l.texImage2D(l.TEXTURE_2D,0,this.format,n,s,0,this.format,l.UNSIGNED_BYTE,t.data);else{const{x:i,y:o}=r||{x:0,y:0};t instanceof HTMLImageElement||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement||t instanceof ImageData||e.b(t)?l.texSubImage2D(l.TEXTURE_2D,0,i,o,l.RGBA,l.UNSIGNED_BYTE,t):l.texSubImage2D(l.TEXTURE_2D,0,i,o,n,s,l.RGBA,l.UNSIGNED_BYTE,t.data)}this.useMipmap&&this.isSizePowerOfTwo()&&l.generateMipmap(l.TEXTURE_2D)}bind(t,e,i){const{context:r}=this,{gl:n}=r;n.bindTexture(n.TEXTURE_2D,this.texture),i!==n.LINEAR_MIPMAP_NEAREST||this.isSizePowerOfTwo()||(i=n.LINEAR),t!==this.filter&&(n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,t),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,i||t),this.filter=t),e!==this.wrap&&(n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,e),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,e),this.wrap=e)}isSizePowerOfTwo(){return this.size[0]===this.size[1]&&Math.log(this.size[0])/Math.LN2%1==0}destroy(){const{gl:t}=this.context;t.deleteTexture(this.texture),this.texture=null}}function x(t){const{userImage:e}=t;return!!(e&&e.render&&e.render())&&(t.data.replace(new Uint8Array(e.data.buffer)),!0)}class v extends e.E{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new e.R({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(t){if(this.loaded!==t&&(this.loaded=t,t)){for(const{ids:t,promiseResolve:e}of this.requestors)e(this._getImagesForIds(t));this.requestors=[]}}getImage(t){const i=this.images[t];if(i&&!i.data&&i.spriteData){const t=i.spriteData;i.data=new e.R({width:t.width,height:t.height},t.context.getImageData(t.x,t.y,t.width,t.height).data),i.spriteData=null}return i}addImage(t,e){if(this.images[t])throw new Error(`Image id ${t} already exist, use updateImage instead`);this._validate(t,e)&&(this.images[t]=e)}_validate(t,i){let r=!0;const n=i.data||i.spriteData;return this._validateStretch(i.stretchX,n&&n.width)||(this.fire(new e.j(new Error(`Image "${t}" has invalid "stretchX" value`))),r=!1),this._validateStretch(i.stretchY,n&&n.height)||(this.fire(new e.j(new Error(`Image "${t}" has invalid "stretchY" value`))),r=!1),this._validateContent(i.content,i)||(this.fire(new e.j(new Error(`Image "${t}" has invalid "content" value`))),r=!1),r}_validateStretch(t,e){if(!t)return!0;let i=0;for(const r of t){if(r[0]{let r=!0;if(!this.isLoaded())for(const n of t)this.images[n]||(r=!1);this.isLoaded()||r?e(this._getImagesForIds(t)):this.requestors.push({ids:t,promiseResolve:e})}))}_getImagesForIds(t){const i={};for(const r of t){let t=this.getImage(r);t||(this.fire(new e.k("styleimagemissing",{id:r})),t=this.getImage(r)),t?i[r]={data:t.data.clone(),pixelRatio:t.pixelRatio,sdf:t.sdf,version:t.version,stretchX:t.stretchX,stretchY:t.stretchY,content:t.content,textFitWidth:t.textFitWidth,textFitHeight:t.textFitHeight,hasRenderCallback:Boolean(t.userImage&&t.userImage.render)}:e.w(`Image "${r}" could not be loaded. Please make sure you have added the image with map.addImage() or a "sprite" property in your style. You can provide missing images by listening for the "styleimagemissing" map event.`)}return i}getPixelSize(){const{width:t,height:e}=this.atlasImage;return{width:t,height:e}}getPattern(t){const i=this.patterns[t],r=this.getImage(t);if(!r)return null;if(i&&i.position.version===r.version)return i.position;if(i)i.position.version=r.version;else{const i={w:r.data.width+2,h:r.data.height+2,x:0,y:0},n=new e.I(i,r);this.patterns[t]={bin:i,position:n}}return this._updatePatternAtlas(),this.patterns[t].position}bind(t){const e=t.gl;this.atlasTexture?this.dirty&&(this.atlasTexture.update(this.atlasImage),this.dirty=!1):this.atlasTexture=new y(t,this.atlasImage,e.RGBA),this.atlasTexture.bind(e.LINEAR,e.CLAMP_TO_EDGE)}_updatePatternAtlas(){const t=[];for(const e in this.patterns)t.push(this.patterns[e].bin);const{w:i,h:r}=e.p(t),n=this.atlasImage;n.resize({width:i||1,height:r||1});for(const s in this.patterns){const{bin:t}=this.patterns[s],i=t.x+1,r=t.y+1,o=this.getImage(s).data,a=o.width,l=o.height;e.R.copy(o,n,{x:0,y:0},{x:i,y:r},{width:a,height:l}),e.R.copy(o,n,{x:0,y:l-1},{x:i,y:r-1},{width:a,height:1}),e.R.copy(o,n,{x:0,y:0},{x:i,y:r+l},{width:a,height:1}),e.R.copy(o,n,{x:a-1,y:0},{x:i-1,y:r},{width:1,height:l}),e.R.copy(o,n,{x:0,y:0},{x:i+a,y:r},{width:1,height:l})}this.dirty=!0}beginFrame(){this.callbackDispatchedThisFrame={}}dispatchRenderCallbacks(t){for(const i of t){if(this.callbackDispatchedThisFrame[i])continue;this.callbackDispatchedThisFrame[i]=!0;const t=this.getImage(i);t||e.w(`Image with ID: "${i}" was not found`),x(t)&&this.updateImage(i,t)}}}const b=1e20;function w(t,e,i,r,n,s,o,a,l){for(let c=e;c-1);l++,s[l]=a,o[l]=c,o[l+1]=b}for(let a=0,l=0;a65535)throw new Error("glyphs > 65535 not supported");if(e.ranges[n])return{stack:t,id:i,glyph:r};if(!this.url)throw new Error("glyphsUrl is not set");if(!e.requests[n]){const i=P.loadGlyphRange(t,n,this.url,this.requestManager);e.requests[n]=i}const s=yield e.requests[n];for(const t in s)this._doesCharSupportLocalGlyph(+t)||(e.glyphs[+t]=s[+t]);return e.ranges[n]=!0,{stack:t,id:i,glyph:s[i]||null}}))}_doesCharSupportLocalGlyph(t){return!!this.localIdeographFontFamily&&/\p{Ideo}|\p{sc=Hang}|\p{sc=Hira}|\p{sc=Kana}/u.test(String.fromCodePoint(t))}_tinySDF(t,i,r){const n=this.localIdeographFontFamily;if(!n)return;if(!this._doesCharSupportLocalGlyph(r))return;let s=t.tinySDF;if(!s){let e="400";/bold/i.test(i)?e="900":/medium/i.test(i)?e="500":/light/i.test(i)&&(e="200"),s=t.tinySDF=new P.TinySDF({fontSize:48,buffer:6,radius:16,cutoff:.25,fontFamily:n,fontWeight:e})}const o=s.draw(String.fromCharCode(r));return{id:r,bitmap:new e.o({width:o.width||60,height:o.height||60},o.data),metrics:{width:o.glyphWidth/2||24,height:o.glyphHeight/2||24,left:o.glyphLeft/2+.5||0,top:o.glyphTop/2-27.5||-8,advance:o.glyphAdvance/2||24,isDoubleResolution:!0}}}}P.loadGlyphRange=function(t,i,r,n){return e._(this,void 0,void 0,(function*(){const s=256*i,o=s+255,a=n.transformRequest(r.replace("{fontstack}",t).replace("{range}",`${s}-${o}`),"Glyphs"),l=yield e.l(a,new AbortController);if(!l||!l.data)throw new Error(`Could not load glyph range. range: ${i}, ${s}-${o}`);const c={};for(const t of e.n(l.data))c[t.id]=t;return c}))},P.TinySDF=class{constructor({fontSize:t=24,buffer:e=3,radius:i=8,cutoff:r=.25,fontFamily:n="sans-serif",fontWeight:s="normal",fontStyle:o="normal"}={}){this.buffer=e,this.cutoff=r,this.radius=i;const a=this.size=t+4*e,l=this._createCanvas(a),c=this.ctx=l.getContext("2d",{willReadFrequently:!0});c.font=`${o} ${s} ${t}px ${n}`,c.textBaseline="alphabetic",c.textAlign="left",c.fillStyle="black",this.gridOuter=new Float64Array(a*a),this.gridInner=new Float64Array(a*a),this.f=new Float64Array(a),this.z=new Float64Array(a+1),this.v=new Uint16Array(a)}_createCanvas(t){const e=document.createElement("canvas");return e.width=e.height=t,e}draw(t){const{width:e,actualBoundingBoxAscent:i,actualBoundingBoxDescent:r,actualBoundingBoxLeft:n,actualBoundingBoxRight:s}=this.ctx.measureText(t),o=Math.ceil(i),a=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(s-n))),l=Math.min(this.size-this.buffer,o+Math.ceil(r)),c=a+2*this.buffer,h=l+2*this.buffer,u=Math.max(c*h,0),d=new Uint8ClampedArray(u),p={data:d,width:c,height:h,glyphWidth:a,glyphHeight:l,glyphTop:o,glyphLeft:0,glyphAdvance:e};if(0===a||0===l)return p;const{ctx:f,buffer:m,gridInner:_,gridOuter:g}=this;f.clearRect(m,m,a,l),f.fillText(t,m,m+o);const y=f.getImageData(m,m,a,l);g.fill(b,0,u),_.fill(0,0,u);for(let x=0;x0?t*t:0,_[i]=t<0?t*t:0}}w(g,0,0,c,h,c,this.f,this.v,this.z),w(_,m,m,a,l,c,this.f,this.v,this.z);for(let x=0;x1&&(o=t[++s]);const l=Math.abs(a-o.left),c=Math.abs(a-o.right),h=Math.min(l,c);let u;const d=n/i*(r+1);if(o.isDash){const t=r-Math.abs(d);u=Math.sqrt(h*h+t*t)}else u=r-Math.sqrt(h*h+d*d);this.data[e+a]=Math.max(0,Math.min(255,u+128))}}}addRegularDash(t){for(let o=t.length-1;o>=0;--o){const e=t[o],i=t[o+1];e.zeroLength?t.splice(o,1):i&&i.isDash===e.isDash&&(i.left=e.left,t.splice(o,1))}const e=t[0],i=t[t.length-1];e.isDash===i.isDash&&(e.left=i.left-this.width,i.right=e.right+this.width);const r=this.width*this.nextRow;let n=0,s=t[n];for(let o=0;o1&&(s=t[++n]);const e=Math.abs(o-s.left),i=Math.abs(o-s.right),a=Math.min(e,i);this.data[r+o]=Math.max(0,Math.min(255,(s.isDash?a:-a)+128))}}addDash(t,i){const r=i?7:0,n=2*r+1;if(this.nextRow+n>this.height)return e.w("LineAtlas out of space"),null;let s=0;for(let e=0;e{t.terminate()})),this.workers=null)}isPreloaded(){return!!this.active[z]}numActive(){return Object.keys(this.active).length}}const D=Math.floor(o.hardwareConcurrency/2);let R,L;function F(){return R||(R=new k),R}k.workerCount=e.C(globalThis)?Math.max(Math.min(D,3),1):1;class B{constructor(t,i){this.workerPool=t,this.actors=[],this.currentActor=0,this.id=i;const r=this.workerPool.acquire(i);for(let n=0;n{t.remove()})),this.actors=[],t&&this.workerPool.release(this.id)}registerMessageHandler(t,e){for(const i of this.actors)i.registerMessageHandler(t,e)}}function O(){return L||(L=new B(F(),e.G),L.registerMessageHandler("GR",((t,i,r)=>e.m(i,r)))),L}function j(t,i){const r=e.H();return e.J(r,r,[1,1,0]),e.K(r,r,[.5*t.width,.5*t.height,1]),t.calculatePosMatrix?e.L(r,r,t.calculatePosMatrix(i.toUnwrapped())):r}function V(t,e,i,r,n,s){var o;const a=function(t,e,i){if(t)for(const r of t){const t=e[r];if(t&&t.source===i&&"fill-extrusion"===t.type)return!0}else for(const r in e){const t=e[r];if(t.source===i&&"fill-extrusion"===t.type)return!0}return!1}(null!==(o=null==n?void 0:n.layers)&&void 0!==o?o:null,e,t.id),l=s.maxPitchScaleFactor(),c=t.tilesIn(r,l,a);c.sort(N);const h=[];for(const u of c)h.push({wrappedTileID:u.tileID.wrapped().key,queryResults:u.tile.queryRenderedFeatures(e,i,t._state,u.queryGeometry,u.cameraQueryGeometry,u.scale,n,s,l,j(t.transform,u.tileID))});return function(t,e){for(const i in t)for(const r of t[i])U(r,e);return t}(function(t){const e={},i={};for(const r of t){const t=r.queryResults,n=r.wrappedTileID,s=i[n]=i[n]||{};for(const i in t){const r=t[i],n=s[i]=s[i]||{},o=e[i]=e[i]||[];for(const t of r)n[t.featureIndex]||(n[t.featureIndex]=!0,o.push(t))}}return e}(h),t)}function N(t,e){const i=t.tileID,r=e.tileID;return i.overscaledZ-r.overscaledZ||i.canonical.y-r.canonical.y||i.wrap-r.wrap||i.canonical.x-r.canonical.x}function U(t,e){const i=t.feature,r=e.getFeatureState(i.layer["source-layer"],i.id);i.source=i.layer.source,i.layer["source-layer"]&&(i.sourceLayer=i.layer["source-layer"]),i.state=r}function Z(t,i,r){return e._(this,void 0,void 0,(function*(){let n=t;if(t.url?n=(yield e.h(i.transformRequest(t.url,"Source"),r)).data:yield o.frameAsync(r),!n)return null;const s=e.M(e.e(n,t),["tiles","minzoom","maxzoom","attribution","bounds","scheme","tileSize","encoding"]);return"vector_layers"in n&&n.vector_layers&&(s.vectorLayerIds=n.vector_layers.map((t=>t.id))),s}))}class G{constructor(t,e){t&&(e?this.setSouthWest(t).setNorthEast(e):Array.isArray(t)&&(4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1])))}setNorthEast(t){return this._ne=t instanceof e.N?new e.N(t.lng,t.lat):e.N.convert(t),this}setSouthWest(t){return this._sw=t instanceof e.N?new e.N(t.lng,t.lat):e.N.convert(t),this}extend(t){const i=this._sw,r=this._ne;let n,s;if(t instanceof e.N)n=t,s=t;else{if(!(t instanceof G))return Array.isArray(t)?4===t.length||t.every(Array.isArray)?this.extend(G.convert(t)):this.extend(e.N.convert(t)):t&&("lng"in t||"lon"in t)&&"lat"in t?this.extend(e.N.convert(t)):this;if(n=t._sw,s=t._ne,!n||!s)return this}return i||r?(i.lng=Math.min(n.lng,i.lng),i.lat=Math.min(n.lat,i.lat),r.lng=Math.max(s.lng,r.lng),r.lat=Math.max(s.lat,r.lat)):(this._sw=new e.N(n.lng,n.lat),this._ne=new e.N(s.lng,s.lat)),this}getCenter(){return new e.N((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)}getSouthWest(){return this._sw}getNorthEast(){return this._ne}getNorthWest(){return new e.N(this.getWest(),this.getNorth())}getSouthEast(){return new e.N(this.getEast(),this.getSouth())}getWest(){return this._sw.lng}getSouth(){return this._sw.lat}getEast(){return this._ne.lng}getNorth(){return this._ne.lat}toArray(){return[this._sw.toArray(),this._ne.toArray()]}toString(){return`LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`}isEmpty(){return!(this._sw&&this._ne)}contains(t){const{lng:i,lat:r}=e.N.convert(t);let n=this._sw.lng<=i&&i<=this._ne.lng;return this._sw.lng>this._ne.lng&&(n=this._sw.lng>=i&&i>=this._ne.lng),this._sw.lat<=r&&r<=this._ne.lat&&n}static convert(t){return t instanceof G?t:t?new G(t):t}static fromLngLat(t,i=0){const r=360*i/40075017,n=r/Math.cos(Math.PI/180*t.lat);return new G(new e.N(t.lng-n,t.lat-r),new e.N(t.lng+n,t.lat+r))}adjustAntiMeridian(){const t=new e.N(this._sw.lng,this._sw.lat),i=new e.N(this._ne.lng,this._ne.lat);return new G(t,t.lng>i.lng?new e.N(i.lng+360,i.lat):i)}}class ${constructor(t,e,i){this.bounds=G.convert(this.validateBounds(t)),this.minzoom=e||0,this.maxzoom=i||24}validateBounds(t){return Array.isArray(t)&&4===t.length?[Math.max(-180,t[0]),Math.max(-90,t[1]),Math.min(180,t[2]),Math.min(90,t[3])]:[-180,-90,180,90]}contains(t){const i=Math.pow(2,t.z),r=Math.floor(e.O(this.bounds.getWest())*i),n=Math.floor(e.Q(this.bounds.getNorth())*i),s=Math.ceil(e.O(this.bounds.getEast())*i),o=Math.ceil(e.Q(this.bounds.getSouth())*i);return t.x>=r&&t.x=n&&t.y{this._options.tiles=t})),this}setUrl(t){return this.setSourceProperty((()=>{this.url=t,this._options.url=t})),this}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null)}serialize(){return e.e({},this._options)}loadTile(t){return e._(this,void 0,void 0,(function*(){const e=t.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),i={request:this.map._requestManager.transformRequest(e,"Tile"),uid:t.uid,tileID:t.tileID,zoom:t.tileID.overscaledZ,tileSize:this.tileSize*t.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,subdivisionGranularity:this.map.style.projection.subdivisionGranularity};i.request.collectResourceTiming=this._collectResourceTiming;let r="RT";if(t.actor&&"expired"!==t.state){if("loading"===t.state)return new Promise(((e,i)=>{t.reloadPromise={resolve:e,reject:i}}))}else t.actor=this.dispatcher.getActor(),r="LT";t.abortController=new AbortController;try{const e=yield t.actor.sendAsync({type:r,data:i},t.abortController);if(delete t.abortController,t.aborted)return;this._afterTileLoadWorkerResponse(t,e)}catch(e){if(delete t.abortController,t.aborted)return;if(e&&404!==e.status)throw e;this._afterTileLoadWorkerResponse(t,null)}}))}_afterTileLoadWorkerResponse(t,e){if(e&&e.resourceTiming&&(t.resourceTiming=e.resourceTiming),e&&this.map._refreshExpiredTiles&&t.setExpiryData(e),t.loadVectorData(e,this.map.painter),t.reloadPromise){const e=t.reloadPromise;t.reloadPromise=null,this.loadTile(t).then(e.resolve).catch(e.reject)}}abortTile(t){return e._(this,void 0,void 0,(function*(){t.abortController&&(t.abortController.abort(),delete t.abortController),t.actor&&(yield t.actor.sendAsync({type:"AT",data:{uid:t.uid,type:this.type,source:this.id}}))}))}unloadTile(t){return e._(this,void 0,void 0,(function*(){t.unloadVectorData(),t.actor&&(yield t.actor.sendAsync({type:"RMT",data:{uid:t.uid,type:this.type,source:this.id}}))}))}hasTransition(){return!1}}class H extends e.E{constructor(t,i,r,n){super(),this.id=t,this.dispatcher=r,this.setEventedParent(n),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=e.e({type:"raster"},i),e.e(this,e.M(i,["url","scheme","tileSize"]))}load(){return e._(this,arguments,void 0,(function*(t=!1){this._loaded=!1,this.fire(new e.k("dataloading",{dataType:"source"})),this._tileJSONRequest=new AbortController;try{const i=yield Z(this._options,this.map._requestManager,this._tileJSONRequest);this._tileJSONRequest=null,this._loaded=!0,i&&(e.e(this,i),i.bounds&&(this.tileBounds=new $(i.bounds,this.minzoom,this.maxzoom)),this.fire(new e.k("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new e.k("data",{dataType:"source",sourceDataType:"content",sourceDataChanged:t})))}catch(t){this._tileJSONRequest=null,this.fire(new e.j(t))}}))}loaded(){return this._loaded}onAdd(t){this.map=t,this.load()}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null)}setSourceProperty(t){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null),t(),this.load(!0)}setTiles(t){return this.setSourceProperty((()=>{this._options.tiles=t})),this}setUrl(t){return this.setSourceProperty((()=>{this.url=t,this._options.url=t})),this}serialize(){return e.e({},this._options)}hasTile(t){return!this.tileBounds||this.tileBounds.contains(t.canonical)}loadTile(t){return e._(this,void 0,void 0,(function*(){const e=t.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme);t.abortController=new AbortController;try{const i=yield f.getImage(this.map._requestManager.transformRequest(e,"Tile"),t.abortController,this.map._refreshExpiredTiles);if(delete t.abortController,t.aborted)return void(t.state="unloaded");if(i&&i.data){this.map._refreshExpiredTiles&&i.cacheControl&&i.expires&&t.setExpiryData({cacheControl:i.cacheControl,expires:i.expires});const e=this.map.painter.context,r=e.gl,n=i.data;t.texture=this.map.painter.getTileTexture(n.width),t.texture?t.texture.update(n,{useMipmap:!0}):(t.texture=new y(e,n,r.RGBA,{useMipmap:!0}),t.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE,r.LINEAR_MIPMAP_NEAREST)),t.state="loaded"}}catch(e){if(delete t.abortController,t.aborted)t.state="unloaded";else if(e)throw t.state="errored",e}}))}abortTile(t){return e._(this,void 0,void 0,(function*(){t.abortController&&(t.abortController.abort(),delete t.abortController)}))}unloadTile(t){return e._(this,void 0,void 0,(function*(){t.texture&&this.map.painter.saveTileTexture(t.texture)}))}hasTransition(){return!1}}class X extends H{constructor(t,i,r,n){super(t,i,r,n),this.type="raster-dem",this.maxzoom=22,this._options=e.e({type:"raster-dem"},i),this.encoding=i.encoding||"mapbox",this.redFactor=i.redFactor,this.greenFactor=i.greenFactor,this.blueFactor=i.blueFactor,this.baseShift=i.baseShift}loadTile(t){return e._(this,void 0,void 0,(function*(){const i=t.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),r=this.map._requestManager.transformRequest(i,"Tile");t.neighboringTiles=this._getNeighboringTiles(t.tileID),t.abortController=new AbortController;try{const i=yield f.getImage(r,t.abortController,this.map._refreshExpiredTiles);if(delete t.abortController,t.aborted)return void(t.state="unloaded");if(i&&i.data){const r=i.data;this.map._refreshExpiredTiles&&i.cacheControl&&i.expires&&t.setExpiryData({cacheControl:i.cacheControl,expires:i.expires});const n=e.b(r)&&e.U()?r:yield this.readImageNow(r),s={type:this.type,uid:t.uid,source:this.id,rawImageData:n,encoding:this.encoding,redFactor:this.redFactor,greenFactor:this.greenFactor,blueFactor:this.blueFactor,baseShift:this.baseShift};if(!t.actor||"expired"===t.state){t.actor=this.dispatcher.getActor();const e=yield t.actor.sendAsync({type:"LDT",data:s});t.dem=e,t.needsHillshadePrepare=!0,t.needsTerrainPrepare=!0,t.state="loaded"}}}catch(e){if(delete t.abortController,t.aborted)t.state="unloaded";else if(e)throw t.state="errored",e}}))}readImageNow(t){return e._(this,void 0,void 0,(function*(){if("undefined"!=typeof VideoFrame&&e.V()){const i=t.width+2,r=t.height+2;try{return new e.R({width:i,height:r},yield e.W(t,-1,-1,i,r))}catch(t){}}return o.getImageData(t,1)}))}_getNeighboringTiles(t){const i=t.canonical,r=Math.pow(2,i.z),n=(i.x-1+r)%r,s=0===i.x?t.wrap-1:t.wrap,o=(i.x+1+r)%r,a=i.x+1===r?t.wrap+1:t.wrap,l={};return l[new e.S(t.overscaledZ,s,i.z,n,i.y).key]={backfilled:!1},l[new e.S(t.overscaledZ,a,i.z,o,i.y).key]={backfilled:!1},i.y>0&&(l[new e.S(t.overscaledZ,s,i.z,n,i.y-1).key]={backfilled:!1},l[new e.S(t.overscaledZ,t.wrap,i.z,i.x,i.y-1).key]={backfilled:!1},l[new e.S(t.overscaledZ,a,i.z,o,i.y-1).key]={backfilled:!1}),i.y+10&&e.e(n,{resourceTiming:r}),this.fire(new e.k("data",Object.assign(Object.assign({},n),{sourceDataType:"metadata"}))),this.fire(new e.k("data",Object.assign(Object.assign({},n),{sourceDataType:"content"})))}catch(t){if(this._pendingLoads--,this._removed)return void this.fire(new e.k("dataabort",{dataType:"source"}));this.fire(new e.j(t))}}))}loaded(){return 0===this._pendingLoads}loadTile(t){return e._(this,void 0,void 0,(function*(){const e=t.actor?"RT":"LT";t.actor=this.actor;const i={type:this.type,uid:t.uid,tileID:t.tileID,zoom:t.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,subdivisionGranularity:this.map.style.projection.subdivisionGranularity};t.abortController=new AbortController;const r=yield this.actor.sendAsync({type:e,data:i},t.abortController);delete t.abortController,t.unloadVectorData(),t.aborted||t.loadVectorData(r,this.map.painter,"RT"===e)}))}abortTile(t){return e._(this,void 0,void 0,(function*(){t.abortController&&(t.abortController.abort(),delete t.abortController),t.aborted=!0}))}unloadTile(t){return e._(this,void 0,void 0,(function*(){t.unloadVectorData(),yield this.actor.sendAsync({type:"RMT",data:{uid:t.uid,type:this.type,source:this.id}})}))}onRemove(){this._removed=!0,this.actor.sendAsync({type:"RS",data:{type:this.type,source:this.id}})}serialize(){return e.e({},this._options,{type:this.type,data:this._data})}hasTransition(){return!1}}class K extends e.E{constructor(t,e,i,r){super(),this.flippedWindingOrder=!1,this.id=t,this.dispatcher=i,this.coordinates=e.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(r),this.options=e}load(t){return e._(this,void 0,void 0,(function*(){this._loaded=!1,this.fire(new e.k("dataloading",{dataType:"source"})),this.url=this.options.url,this._request=new AbortController;try{const e=yield f.getImage(this.map._requestManager.transformRequest(this.url,"Image"),this._request);this._request=null,this._loaded=!0,e&&e.data&&(this.image=e.data,t&&(this.coordinates=t),this._finishLoading())}catch(t){this._request=null,this._loaded=!0,this.fire(new e.j(t))}}))}loaded(){return this._loaded}updateImage(t){return t.url?(this._request&&(this._request.abort(),this._request=null),this.options.url=t.url,this.load(t.coordinates).finally((()=>{this.texture=null})),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new e.k("data",{dataType:"source",sourceDataType:"metadata"})))}onAdd(t){this.map=t,this.load()}onRemove(){this._request&&(this._request.abort(),this._request=null)}setCoordinates(t){this.coordinates=t;const i=t.map(e.Y.fromLngLat);var r;return this.tileID=function(t){let i=1/0,r=1/0,n=-1/0,s=-1/0;for(const e of t)i=Math.min(i,e.x),r=Math.min(r,e.y),n=Math.max(n,e.x),s=Math.max(s,e.y);const o=Math.max(n-i,s-r),a=Math.max(0,Math.floor(-Math.log(o)/Math.LN2)),l=Math.pow(2,a);return new e.Z(a,Math.floor((i+n)/2*l),Math.floor((r+s)/2*l))}(i),this.minzoom=this.maxzoom=this.tileID.z,this.tileCoords=i.map((t=>this.tileID.getTilePoint(t)._round())),this.flippedWindingOrder=((r=this.tileCoords)[1].x-r[0].x)*(r[2].y-r[0].y)-(r[1].y-r[0].y)*(r[2].x-r[0].x)<0,this.fire(new e.k("data",{dataType:"source",sourceDataType:"content"})),this}prepare(){if(0===Object.keys(this.tiles).length||!this.image)return;const t=this.map.painter.context,i=t.gl;this.texture||(this.texture=new y(t,this.image,i.RGBA),this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE));let r=!1;for(const e in this.tiles){const t=this.tiles[e];"loaded"!==t.state&&(t.state="loaded",t.texture=this.texture,r=!0)}r&&this.fire(new e.k("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}loadTile(t){return e._(this,void 0,void 0,(function*(){this.tileID&&this.tileID.equals(t.tileID.canonical)?(this.tiles[String(t.tileID.wrap)]=t,t.buckets={}):t.state="errored"}))}serialize(){return{type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}}class Y extends K{constructor(t,e,i,r){super(t,e,i,r),this.roundZoom=!0,this.type="video",this.options=e}load(){return e._(this,void 0,void 0,(function*(){this._loaded=!1;const t=this.options;this.urls=[];for(const e of t.urls)this.urls.push(this.map._requestManager.transformRequest(e,"Source").url);try{const t=yield e.a0(this.urls);if(this._loaded=!0,!t)return;this.video=t,this.video.loop=!0,this.video.addEventListener("playing",(()=>{this.map.triggerRepaint()})),this.map&&this.video.play(),this._finishLoading()}catch(t){this.fire(new e.j(t))}}))}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(t){if(this.video){const i=this.video.seekable;ti.end(0)?this.fire(new e.j(new e.$(`sources.${this.id}`,null,`Playback for this video can be set only between the ${i.start(0)} and ${i.end(0)}-second mark.`))):this.video.currentTime=t}}getVideo(){return this.video}onAdd(t){this.map||(this.map=t,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}prepare(){if(0===Object.keys(this.tiles).length||this.video.readyState<2)return;const t=this.map.painter.context,i=t.gl;this.texture?this.video.paused||(this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE),i.texSubImage2D(i.TEXTURE_2D,0,0,0,i.RGBA,i.UNSIGNED_BYTE,this.video)):(this.texture=new y(t,this.video,i.RGBA),this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE));let r=!1;for(const e in this.tiles){const t=this.tiles[e];"loaded"!==t.state&&(t.state="loaded",t.texture=this.texture,r=!0)}r&&this.fire(new e.k("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}serialize(){return{type:"video",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}}class J extends K{constructor(t,i,r,n){super(t,i,r,n),i.coordinates?Array.isArray(i.coordinates)&&4===i.coordinates.length&&!i.coordinates.some((t=>!Array.isArray(t)||2!==t.length||t.some((t=>"number"!=typeof t))))||this.fire(new e.j(new e.$(`sources.${t}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new e.j(new e.$(`sources.${t}`,null,'missing required property "coordinates"'))),i.animate&&"boolean"!=typeof i.animate&&this.fire(new e.j(new e.$(`sources.${t}`,null,'optional "animate" property must be a boolean value'))),i.canvas?"string"==typeof i.canvas||i.canvas instanceof HTMLCanvasElement||this.fire(new e.j(new e.$(`sources.${t}`,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new e.j(new e.$(`sources.${t}`,null,'missing required property "canvas"'))),this.options=i,this.animate=void 0===i.animate||i.animate}load(){return e._(this,void 0,void 0,(function*(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof HTMLCanvasElement?this.options.canvas:document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new e.j(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())}))}getCanvas(){return this.canvas}onAdd(t){this.map=t,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}prepare(){let t=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,t=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,t=!0),this._hasInvalidDimensions())return;if(0===Object.keys(this.tiles).length)return;const i=this.map.painter.context,r=i.gl;this.texture?(t||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new y(i,this.canvas,r.RGBA,{premultiply:!0});let n=!1;for(const e in this.tiles){const t=this.tiles[e];"loaded"!==t.state&&(t.state="loaded",t.texture=this.texture,n=!0)}n&&this.fire(new e.k("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}serialize(){return{type:"canvas",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const t of[this.canvas.width,this.canvas.height])if(isNaN(t)||t<=0)return!0;return!1}}const Q={},tt=t=>{switch(t){case"geojson":return W;case"image":return K;case"raster":return H;case"raster-dem":return X;case"vector":return q;case"video":return Y;case"canvas":return J}return Q[t]},et="RTLPluginLoaded";class it extends e.E{constructor(){super(...arguments),this.status="unavailable",this.url=null,this.dispatcher=O()}_syncState(t){return this.status=t,this.dispatcher.broadcast("SRPS",{pluginStatus:t,pluginURL:this.url}).catch((t=>{throw this.status="error",t}))}getRTLTextPluginStatus(){return this.status}clearRTLTextPlugin(){this.status="unavailable",this.url=null}setRTLTextPlugin(t){return e._(this,arguments,void 0,(function*(t,e=!1){if(this.url)throw new Error("setRTLTextPlugin cannot be called multiple times.");if(this.url=o.resolveURL(t),!this.url)throw new Error(`requested url ${t} is invalid`);if("unavailable"===this.status){if(!e)return this._requestImport();this.status="deferred",this._syncState(this.status)}else if("requested"===this.status)return this._requestImport()}))}_requestImport(){return e._(this,void 0,void 0,(function*(){yield this._syncState("loading"),this.status="loaded",this.fire(new e.k(et))}))}lazyLoad(){"unavailable"===this.status?this.status="requested":"deferred"===this.status&&this._requestImport()}}let rt=null;function nt(){return rt||(rt=new it),rt}class st{constructor(t,i){this.timeAdded=0,this.fadeEndTime=0,this.tileID=t,this.uid=e.a1(),this.uses=0,this.tileSize=i,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.rtt=[],this.rttCoords={},this.expiredRequestCount=0,this.state="loading"}registerFadeDuration(t){const e=t+this.timeAdded;ee.getLayer(t))).filter(Boolean);if(0!==t.length){r.layers=t,r.stateDependentLayerIds&&(r.stateDependentLayers=r.stateDependentLayerIds.map((e=>t.filter((t=>t.id===e))[0])));for(const e of t)i[e.id]=r}}return i}(t.buckets,null==i?void 0:i.style),this.hasSymbolBuckets=!1;for(const t in this.buckets){const i=this.buckets[t];if(i instanceof e.a3){if(this.hasSymbolBuckets=!0,!r)break;i.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const t in this.buckets){const i=this.buckets[t];if(i instanceof e.a3&&i.hasRTLText){this.hasRTLText=!0,nt().lazyLoad();break}}this.queryPadding=0;for(const t in this.buckets){const e=this.buckets[t];this.queryPadding=Math.max(this.queryPadding,i.style.getLayer(t).queryRadius(e))}t.imageAtlas&&(this.imageAtlas=t.imageAtlas),t.glyphAtlasImage&&(this.glyphAtlasImage=t.glyphAtlasImage)}else this.collisionBoxArray=new e.a2}unloadVectorData(){for(const t in this.buckets)this.buckets[t].destroy();this.buckets={},this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.imageAtlas&&(this.imageAtlas=null),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.latestFeatureIndex=null,this.state="unloaded"}getBucket(t){return this.buckets[t.id]}upload(t){for(const i in this.buckets){const e=this.buckets[i];e.uploadPending()&&e.upload(t)}const e=t.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new y(t,this.imageAtlas.image,e.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new y(t,this.glyphAtlasImage,e.ALPHA),this.glyphAtlasImage=null)}prepare(t){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(t,this.imageAtlasTexture)}queryRenderedFeatures(t,e,i,r,n,s,o,a,l,c){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:r,cameraQueryGeometry:n,scale:s,tileSize:this.tileSize,pixelPosMatrix:c,transform:a,params:o,queryPadding:this.queryPadding*l},t,e,i):{}}querySourceFeatures(t,i){const r=this.latestFeatureIndex;if(!r||!r.rawTileData)return;const n=r.loadVTLayers(),s=i&&i.sourceLayer?i.sourceLayer:"",o=n._geojsonTileLayer||n[s];if(!o)return;const a=e.a4(i&&i.filter),{z:l,x:c,y:h}=this.tileID.canonical,u={z:l,x:c,y:h};for(let d=0;dt)e=!1;else if(i)if(this.expirationTime{this.remove(t,n)}),i)),this.data[r].push(n),this.order.push(r),this.order.length>this.max){const t=this._getAndRemoveByKey(this.order[0]);t&&this.onRemove(t)}return this}has(t){return t.wrapped().key in this.data}getAndRemove(t){return this.has(t)?this._getAndRemoveByKey(t.wrapped().key):null}_getAndRemoveByKey(t){const e=this.data[t].shift();return e.timeout&&clearTimeout(e.timeout),0===this.data[t].length&&delete this.data[t],this.order.splice(this.order.indexOf(t),1),e.value}getByKey(t){const e=this.data[t];return e?e[0].value:null}get(t){return this.has(t)?this.data[t.wrapped().key][0].value:null}remove(t,e){if(!this.has(t))return this;const i=t.wrapped().key,r=void 0===e?0:this.data[i].indexOf(e),n=this.data[i][r];return this.data[i].splice(r,1),n.timeout&&clearTimeout(n.timeout),0===this.data[i].length&&delete this.data[i],this.onRemove(n.value),this.order.splice(this.order.indexOf(i),1),this}setMaxSize(t){for(this.max=t;this.order.length>this.max;){const t=this._getAndRemoveByKey(this.order[0]);t&&this.onRemove(t)}return this}filter(t){const e=[];for(const i in this.data)for(const r of this.data[i])t(r.value)||e.push(r);for(const i of e)this.remove(i.value.tileID,i)}}class at{constructor(){this.state={},this.stateChanges={},this.deletedStates={}}updateState(t,i,r){const n=String(i);if(this.stateChanges[t]=this.stateChanges[t]||{},this.stateChanges[t][n]=this.stateChanges[t][n]||{},e.e(this.stateChanges[t][n],r),null===this.deletedStates[t]){this.deletedStates[t]={};for(const e in this.state[t])e!==n&&(this.deletedStates[t][e]=null)}else if(this.deletedStates[t]&&null===this.deletedStates[t][n]){this.deletedStates[t][n]={};for(const e in this.state[t][n])r[e]||(this.deletedStates[t][n][e]=null)}else for(const e in r)this.deletedStates[t]&&this.deletedStates[t][n]&&null===this.deletedStates[t][n][e]&&delete this.deletedStates[t][n][e]}removeFeatureState(t,e,i){if(null===this.deletedStates[t])return;const r=String(e);if(this.deletedStates[t]=this.deletedStates[t]||{},i&&void 0!==e)null!==this.deletedStates[t][r]&&(this.deletedStates[t][r]=this.deletedStates[t][r]||{},this.deletedStates[t][r][i]=null);else if(void 0!==e)if(this.stateChanges[t]&&this.stateChanges[t][r])for(i in this.deletedStates[t][r]={},this.stateChanges[t][r])this.deletedStates[t][r][i]=null;else this.deletedStates[t][r]=null;else this.deletedStates[t]=null}getState(t,i){const r=String(i),n=e.e({},(this.state[t]||{})[r],(this.stateChanges[t]||{})[r]);if(null===this.deletedStates[t])return{};if(this.deletedStates[t]){const e=this.deletedStates[t][i];if(null===e)return{};for(const t in e)delete n[t]}return n}initializeTileState(t,e){t.setFeatureState(this.state,e)}coalesceChanges(t,i){const r={};for(const n in this.stateChanges){this.state[n]=this.state[n]||{};const t={};for(const i in this.stateChanges[n])this.state[n][i]||(this.state[n][i]={}),e.e(this.state[n][i],this.stateChanges[n][i]),t[i]=this.state[n][i];r[n]=t}for(const n in this.deletedStates){this.state[n]=this.state[n]||{};const t={};if(null===this.deletedStates[n])for(const e in this.state[n])t[e]={},this.state[n][e]={};else for(const e in this.deletedStates[n]){if(null===this.deletedStates[n][e])this.state[n][e]={};else for(const t of Object.keys(this.deletedStates[n][e]))delete this.state[n][e][t];t[e]=this.state[n][e]}r[n]=r[n]||{},e.e(r[n],t)}if(this.stateChanges={},this.deletedStates={},0!==Object.keys(r).length)for(const e in t)t[e].setFeatureState(r,i)}}function lt(t,e,i){const r=e.intersectsFrustum(t);if(!i)return r;const n=e.intersectsPlane(i);return 0===r||0===n?0:2===r&&2===n?2:1}function ct(t,i,r,n,s){let o=t;const a=Math.atan(i/r),l=Math.hypot(i,r);return o=t+e.a8(n/l/Math.max(.5,Math.cos(e.aa(s/2)))),o+=1*e.a8(Math.cos(a))/2,o+=e.ab(t-o,-0,0),o}function ht(t,i){const r=(i.roundZoom?Math.round:Math.floor)(t.zoom+e.a8(t.tileSize/i.tileSize));return Math.max(0,r)}function ut(t,i){const r=t.getCameraFrustum(),n=t.getClippingPlane(),s=t.screenPointToMercatorCoordinate(t.getCameraPoint()),o=e.Y.fromLngLat(t.center,t.elevation);s.z=o.z+Math.cos(t.pitchInRadians)*t.cameraToCenterDistance/t.worldSize;const a=t.getCoveringTilesDetailsProvider(),l=a.allowVariableZoom(t,i),c=ht(t,i),h=i.minzoom||0,u=void 0!==i.maxzoom?i.maxzoom:t.maxZoom,d=Math.min(Math.max(0,c),u),p=Math.pow(2,d),f=[p*s.x,p*s.y,0],m=[p*o.x,p*o.y,0],_=Math.hypot(o.x-s.x,o.y-s.y),g=Math.abs(o.z-s.z),y=Math.hypot(_,g),x=t=>({zoom:0,x:0,y:0,wrap:t,fullyVisible:!1}),v=[],b=[];if(t.renderWorldCopies&&a.allowWorldCopies())for(let e=1;e<=3;e++)v.push(x(-e)),v.push(x(e));for(v.push(x(0));v.length>0;){const p=v.pop(),_=p.x,x=p.y;let w=p.fullyVisible;const T={x:_,y:x,z:p.zoom},P=a.getTileAABB(T,p.wrap,t.elevation,i);if(!w){const t=lt(r,P,n);if(0===t)continue;w=2===t}const M=a.distanceToTile2d(s.x,s.y,T,P);let S=c;l&&(S=(i.calculateTileZoom||ct)(t.zoom+e.a8(t.tileSize/i.tileSize),M,g,y,t.fov)),S=(i.roundZoom?Math.round:Math.floor)(S),S=Math.max(0,S);const I=Math.min(S,u);if(p.wrap=a.getWrap(o,T,p.wrap),p.zoom>=I){if(p.zoom>1),wrap:p.wrap,fullyVisible:w})}return b.sort(((t,e)=>t.distanceSq-e.distanceSq)).map((t=>t.tileID))}class dt extends e.E{constructor(t,e,i){super(),this.id=t,this.dispatcher=i,this.on("data",(t=>this._dataHandler(t))),this.on("dataloading",(()=>{this._sourceErrored=!1})),this.on("error",(()=>{this._sourceErrored=this._source.loaded()})),this._source=((t,e,i,r)=>{const n=new(tt(e.type))(t,e,i,r);if(n.id!==t)throw new Error(`Expected Source id to be ${t} instead of ${n.id}`);return n})(t,e,i,this),this._tiles={},this._cache=new ot(0,(t=>this._unloadTile(t))),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._maxTileCacheZoomLevels=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new at,this._didEmitContent=!1,this._updated=!1}onAdd(t){this.map=t,this._maxTileCacheSize=t?t._maxTileCacheSize:null,this._maxTileCacheZoomLevels=t?t._maxTileCacheZoomLevels:null,this._source&&this._source.onAdd&&this._source.onAdd(t)}onRemove(t){this.clearTiles(),this._source&&this._source.onRemove&&this._source.onRemove(t)}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded)return!1;if(!this._source.loaded())return!1;if(!(void 0===this.used&&void 0===this.usedForTerrain||this.used||this.usedForTerrain))return!0;if(!this._updated)return!1;for(const t in this._tiles){const e=this._tiles[t];if("loaded"!==e.state&&"errored"!==e.state)return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;const t=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,t&&this.reload(),this.transform&&this.update(this.transform,this.terrain)}_loadTile(t,i,r){return e._(this,void 0,void 0,(function*(){try{yield this._source.loadTile(t),this._tileLoaded(t,i,r)}catch(i){t.state="errored",404!==i.status?this._source.fire(new e.j(i,{tile:t})):this.update(this.transform,this.terrain)}}))}_unloadTile(t){this._source.unloadTile&&this._source.unloadTile(t)}_abortTile(t){this._source.abortTile&&this._source.abortTile(t),this._source.fire(new e.k("dataabort",{tile:t,coord:t.tileID,dataType:"source"}))}serialize(){return this._source.serialize()}prepare(t){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(const e in this._tiles){const i=this._tiles[e];i.upload(t),i.prepare(this.map.style.imageManager)}}getIds(){return Object.values(this._tiles).map((t=>t.tileID)).sort(pt).map((t=>t.key))}getRenderableIds(t){const i=[];for(const e in this._tiles)this._isIdRenderable(e,t)&&i.push(this._tiles[e]);return t?i.sort(((t,i)=>{const r=t.tileID,n=i.tileID,s=new e.P(r.canonical.x,r.canonical.y)._rotate(-this.transform.bearingInRadians),o=new e.P(n.canonical.x,n.canonical.y)._rotate(-this.transform.bearingInRadians);return r.overscaledZ-n.overscaledZ||o.y-s.y||o.x-s.x})).map((t=>t.tileID.key)):i.map((t=>t.tileID)).sort(pt).map((t=>t.key))}hasRenderableParent(t){const e=this.findLoadedParent(t,0);return!!e&&this._isIdRenderable(e.tileID.key)}_isIdRenderable(t,e){return this._tiles[t]&&this._tiles[t].hasData()&&!this._coveredTiles[t]&&(e||!this._tiles[t].holdingForFade())}reload(t){if(this._paused)this._shouldReloadOnResume=!0;else{this._cache.reset();for(const e in this._tiles)(t||"errored"!==this._tiles[e].state)&&this._reloadTile(e,"reloading")}}_reloadTile(t,i){return e._(this,void 0,void 0,(function*(){const e=this._tiles[t];e&&("loading"!==e.state&&(e.state=i),yield this._loadTile(e,t,i))}))}_tileLoaded(t,i,r){t.timeAdded=o.now(),"expired"===r&&(t.refreshedUponExpiration=!0),this._setTileReloadTimer(i,t),"raster-dem"===this.getSource().type&&t.dem&&this._backfillDEM(t),this._state.initializeTileState(t,this.map?this.map.painter:null),t.aborted||this._source.fire(new e.k("data",{dataType:"source",tile:t,coord:t.tileID}))}_backfillDEM(t){const e=this.getRenderableIds();for(let r=0;r1||(Math.abs(i)>1&&(1===Math.abs(i+n)?i+=n:1===Math.abs(i-n)&&(i-=n)),e.dem&&t.dem&&(t.dem.backfillBorder(e.dem,i,r),t.neighboringTiles&&t.neighboringTiles[s]&&(t.neighboringTiles[s].backfilled=!0)))}}getTile(t){return this.getTileByID(t.key)}getTileByID(t){return this._tiles[t]}_retainLoadedChildren(t,e,i,r){for(const n in this._tiles){let s=this._tiles[n];if(r[n]||!s.hasData()||s.tileID.overscaledZ<=e||s.tileID.overscaledZ>i)continue;let o=s.tileID;for(;s&&s.tileID.overscaledZ>e+1;){const t=s.tileID.scaledTo(s.tileID.overscaledZ-1);s=this._tiles[t.key],s&&s.hasData()&&(o=t)}let a=o;for(;a.overscaledZ>e;)if(a=a.scaledTo(a.overscaledZ-1),t[a.key]||t[a.canonical.key]){r[o.key]=o;break}}}findLoadedParent(t,e){if(t.key in this._loadedParentTiles){const i=this._loadedParentTiles[t.key];return i&&i.tileID.overscaledZ>=e?i:null}for(let i=t.overscaledZ-1;i>=e;i--){const e=t.scaledTo(i),r=this._getLoadedTile(e);if(r)return r}}findLoadedSibling(t){return this._getLoadedTile(t)}_getLoadedTile(t){const e=this._tiles[t.key];return e&&e.hasData()?e:this._cache.getByKey(t.wrapped().key)}updateCacheSize(t){const i=Math.ceil(t.width/this._source.tileSize)+1,r=Math.ceil(t.height/this._source.tileSize)+1,n=Math.floor(i*r*(null===this._maxTileCacheZoomLevels?e.a.MAX_TILE_CACHE_ZOOM_LEVELS:this._maxTileCacheZoomLevels)),s="number"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,n):n;this._cache.setMaxSize(s)}handleWrapJump(t){const e=Math.round((t-(void 0===this._prevLng?t:this._prevLng))/360);if(this._prevLng=t,e){const t={};for(const i in this._tiles){const r=this._tiles[i];r.tileID=r.tileID.unwrapTo(r.tileID.wrap+e),t[r.tileID.key]=r}this._tiles=t;for(const e in this._timers)clearTimeout(this._timers[e]),delete this._timers[e];for(const e in this._tiles)this._setTileReloadTimer(e,this._tiles[e])}}_updateCoveredAndRetainedTiles(t,e,i,r,n,s){const a={},l={},c=Object.keys(t),h=o.now();for(const o of c){const i=t[o],r=this._tiles[o];if(!r||0!==r.fadeEndTime&&r.fadeEndTime<=h)continue;const n=this.findLoadedParent(i,e),s=this.findLoadedSibling(i),c=n||s||null;c&&(this._addTile(c.tileID),a[c.tileID.key]=c.tileID),l[o]=i}this._retainLoadedChildren(l,r,i,t);for(const o in a)t[o]||(this._coveredTiles[o]=!0,t[o]=a[o]);if(s){const e={},i={};for(const t of n)this._tiles[t.key].hasData()?e[t.key]=t:i[t.key]=t;for(const r in i){const n=i[r].children(this._source.maxzoom);this._tiles[n[0].key]&&this._tiles[n[1].key]&&this._tiles[n[2].key]&&this._tiles[n[3].key]&&(e[n[0].key]=t[n[0].key]=n[0],e[n[1].key]=t[n[1].key]=n[1],e[n[2].key]=t[n[2].key]=n[2],e[n[3].key]=t[n[3].key]=n[3],delete i[r])}for(const r in i){const n=i[r],s=this.findLoadedParent(n,this._source.minzoom),o=this.findLoadedSibling(n),a=s||o||null;if(a){e[a.tileID.key]=t[a.tileID.key]=a.tileID;for(const t in e)e[t].isChildOf(a.tileID)&&delete e[t]}}for(const t in this._tiles)e[t]||(this._coveredTiles[t]=!0)}}update(t,i){if(!this._sourceLoaded||this._paused)return;let r;this.transform=t,this.terrain=i,this.updateCacheSize(t),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?r=t.getVisibleUnwrappedCoordinates(this._source.tileID).map((t=>new e.S(t.canonical.z,t.wrap,t.canonical.z,t.canonical.x,t.canonical.y))):(r=ut(t,{tileSize:this.usedForTerrain?this.tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:!this.usedForTerrain&&this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled,terrain:i,calculateTileZoom:this._source.calculateTileZoom}),this._source.hasTile&&(r=r.filter((t=>this._source.hasTile(t))))):r=[];const n=ht(t,this._source),s=Math.max(n-dt.maxOverzooming,this._source.minzoom),o=Math.max(n+dt.maxUnderzooming,this._source.minzoom);if(this.usedForTerrain){const t={};for(const e of r)if(e.canonical.z>this._source.minzoom){const i=e.scaledTo(e.canonical.z-1);t[i.key]=i;const r=e.scaledTo(Math.max(this._source.minzoom,Math.min(e.canonical.z,5)));t[r.key]=r}r=r.concat(Object.values(t))}const a=0===r.length&&!this._updated&&this._didEmitContent;this._updated=!0,a&&this.fire(new e.k("data",{sourceDataType:"idle",dataType:"source",sourceId:this.id}));const l=this._updateRetainedTiles(r,n);ft(this._source.type)&&this._updateCoveredAndRetainedTiles(l,s,o,n,r,i);for(const e in l)this._tiles[e].clearFadeHold();const c=e.ac(this._tiles,l);for(const e of c){const t=this._tiles[e];t.hasSymbolBuckets&&!t.holdingForFade()?t.setHoldDuration(this.map._fadeDuration):t.hasSymbolBuckets&&!t.symbolFadeFinished()||this._removeTile(e)}this._updateLoadedParentTileCache(),this._updateLoadedSiblingTileCache()}releaseSymbolFadeTiles(){for(const t in this._tiles)this._tiles[t].holdingForFade()&&this._removeTile(t)}_updateRetainedTiles(t,e){var i;const r={},n={},s=Math.max(e-dt.maxOverzooming,this._source.minzoom),o=Math.max(e+dt.maxUnderzooming,this._source.minzoom),a={};for(const l of t){const t=this._addTile(l);r[l.key]=l,t.hasData()||ethis._source.maxzoom){const t=l.children(this._source.maxzoom)[0],e=this.getTile(t);if(e&&e.hasData()){r[t.key]=t;continue}}else{const t=l.children(this._source.maxzoom);if(r[t[0].key]&&r[t[1].key]&&r[t[2].key]&&r[t[3].key])continue}let o=t.wasRequested();for(let e=l.overscaledZ-1;e>=s;--e){const s=l.scaledTo(e);if(n[s.key])break;if(n[s.key]=!0,t=this.getTile(s),!t&&o&&(t=this._addTile(s)),t){const e=t.hasData();if((e||!(null===(i=this.map)||void 0===i?void 0:i.cancelPendingTileRequestsWhileZooming)||o)&&(r[s.key]=s),o=t.wasRequested(),e)break}}}return r}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(const t in this._tiles){const e=[];let i,r=this._tiles[t].tileID;for(;r.overscaledZ>0;){if(r.key in this._loadedParentTiles){i=this._loadedParentTiles[r.key];break}e.push(r.key);const t=r.scaledTo(r.overscaledZ-1);if(i=this._getLoadedTile(t),i)break;r=t}for(const t of e)this._loadedParentTiles[t]=i}}_updateLoadedSiblingTileCache(){this._loadedSiblingTiles={};for(const t in this._tiles){const e=this._tiles[t].tileID,i=this._getLoadedTile(e);this._loadedSiblingTiles[e.key]=i}}_addTile(t){let i=this._tiles[t.key];if(i)return i;i=this._cache.getAndRemove(t),i&&(this._setTileReloadTimer(t.key,i),i.tileID=t,this._state.initializeTileState(i,this.map?this.map.painter:null),this._cacheTimers[t.key]&&(clearTimeout(this._cacheTimers[t.key]),delete this._cacheTimers[t.key],this._setTileReloadTimer(t.key,i)));const r=i;return i||(i=new st(t,this._source.tileSize*t.overscaleFactor()),this._loadTile(i,t.key,i.state)),i.uses++,this._tiles[t.key]=i,r||this._source.fire(new e.k("dataloading",{tile:i,coord:i.tileID,dataType:"source"})),i}_setTileReloadTimer(t,e){t in this._timers&&(clearTimeout(this._timers[t]),delete this._timers[t]);const i=e.getExpiryTimeout();i&&(this._timers[t]=setTimeout((()=>{this._reloadTile(t,"expired"),delete this._timers[t]}),i))}_removeTile(t){const e=this._tiles[t];e&&(e.uses--,delete this._tiles[t],this._timers[t]&&(clearTimeout(this._timers[t]),delete this._timers[t]),e.uses>0||(e.hasData()&&"reloading"!==e.state?this._cache.add(e.tileID,e,e.getExpiryTimeout()):(e.aborted=!0,this._abortTile(e),this._unloadTile(e))))}_dataHandler(t){const e=t.sourceDataType;"source"===t.dataType&&"metadata"===e&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&"source"===t.dataType&&"content"===e&&(this.reload(t.sourceDataChanged),this.transform&&this.update(this.transform,this.terrain),this._didEmitContent=!0)}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(const t in this._tiles)this._removeTile(t);this._cache.reset()}tilesIn(t,i,r){const n=[],s=this.transform;if(!s)return n;const o=r?s.getCameraQueryGeometry(t):t,a=t.map((t=>s.screenPointToMercatorCoordinate(t,this.terrain))),l=o.map((t=>s.screenPointToMercatorCoordinate(t,this.terrain))),c=this.getIds();let h=1/0,u=1/0,d=-1/0,p=-1/0;for(const e of l)h=Math.min(h,e.x),u=Math.min(u,e.y),d=Math.max(d,e.x),p=Math.max(p,e.y);for(let f=0;f=0&&_[1].y+m>=0){const e=a.map((t=>r.getTilePoint(t))),i=l.map((t=>r.getTilePoint(t)));n.push({tile:t,tileID:r,queryGeometry:e,cameraQueryGeometry:i,scale:o})}}return n}getVisibleCoordinates(t){const e=this.getRenderableIds(t).map((t=>this._tiles[t].tileID));return this.transform&&this.transform.populateCache(e),e}hasTransition(){if(this._source.hasTransition())return!0;if(ft(this._source.type)){const t=o.now();for(const e in this._tiles)if(this._tiles[e].fadeEndTime>=t)return!0}return!1}setFeatureState(t,e,i){this._state.updateState(t=t||"_geojsonTileLayer",e,i)}removeFeatureState(t,e,i){this._state.removeFeatureState(t=t||"_geojsonTileLayer",e,i)}getFeatureState(t,e){return this._state.getState(t=t||"_geojsonTileLayer",e)}setDependencies(t,e,i){const r=this._tiles[t];r&&r.setDependencies(e,i)}reloadTilesForDependencies(t,e){for(const i in this._tiles)this._tiles[i].hasDependency(t,e)&&this._reloadTile(i,"reloading");this._cache.filter((i=>!i.hasDependency(t,e)))}}function pt(t,e){const i=Math.abs(2*t.wrap)-+(t.wrap<0),r=Math.abs(2*e.wrap)-+(e.wrap<0);return t.overscaledZ-e.overscaledZ||r-i||e.canonical.y-t.canonical.y||e.canonical.x-t.canonical.x}function ft(t){return"raster"===t||"image"===t||"video"===t}dt.maxOverzooming=10,dt.maxUnderzooming=3;class mt{constructor(t,e){this.reset(t,e)}reset(t,e){this.points=t||[],this._distances=[0];for(let i=1;i0?(n-o)/a:0;return this.points[s].mult(1-l).add(this.points[i].mult(l))}}function _t(t,e){let i=!0;return"always"===t||"never"!==t&&"never"!==e||(i=!1),i}class gt{constructor(t,e,i){const r=this.boxCells=[],n=this.circleCells=[];this.xCellCount=Math.ceil(t/i),this.yCellCount=Math.ceil(e/i);for(let s=0;sthis.width||r<0||e>this.height)return[];const a=[];if(t<=0&&e<=0&&this.width<=i&&this.height<=r){if(n)return[{key:null,x1:t,y1:e,x2:i,y2:r}];for(let t=0;t0}hitTestCircle(t,e,i,r,n){const s=t-i,o=t+i,a=e-i,l=e+i;if(o<0||s>this.width||l<0||a>this.height)return!1;const c=[];return this._forEachCell(s,a,o,l,this._queryCellCircle,c,{hitTest:!0,overlapMode:r,circle:{x:t,y:e,radius:i},seenUids:{box:{},circle:{}}},n),c.length>0}_queryCell(t,e,i,r,n,s,o,a){const{seenUids:l,hitTest:c,overlapMode:h}=o,u=this.boxCells[n];if(null!==u){const n=this.bboxes;for(const o of u)if(!l.box[o]){l.box[o]=!0;const u=4*o,d=this.boxKeys[o];if(t<=n[u+2]&&e<=n[u+3]&&i>=n[u+0]&&r>=n[u+1]&&(!a||a(d))&&(!c||!_t(h,d.overlapMode))&&(s.push({key:d,x1:n[u],y1:n[u+1],x2:n[u+2],y2:n[u+3]}),c))return!0}}const d=this.circleCells[n];if(null!==d){const n=this.circles;for(const o of d)if(!l.circle[o]){l.circle[o]=!0;const u=3*o,d=this.circleKeys[o];if(this._circleAndRectCollide(n[u],n[u+1],n[u+2],t,e,i,r)&&(!a||a(d))&&(!c||!_t(h,d.overlapMode))){const t=n[u],e=n[u+1],i=n[u+2];if(s.push({key:d,x1:t-i,y1:e-i,x2:t+i,y2:e+i}),c)return!0}}}return!1}_queryCellCircle(t,e,i,r,n,s,o,a){const{circle:l,seenUids:c,overlapMode:h}=o,u=this.boxCells[n];if(null!==u){const t=this.bboxes;for(const e of u)if(!c.box[e]){c.box[e]=!0;const i=4*e,r=this.boxKeys[e];if(this._circleAndRectCollide(l.x,l.y,l.radius,t[i+0],t[i+1],t[i+2],t[i+3])&&(!a||a(r))&&!_t(h,r.overlapMode))return s.push(!0),!0}}const d=this.circleCells[n];if(null!==d){const t=this.circles;for(const e of d)if(!c.circle[e]){c.circle[e]=!0;const i=3*e,r=this.circleKeys[e];if(this._circlesCollide(t[i],t[i+1],t[i+2],l.x,l.y,l.radius)&&(!a||a(r))&&!_t(h,r.overlapMode))return s.push(!0),!0}}}_forEachCell(t,e,i,r,n,s,o,a){const l=this._convertToXCellCoord(t),c=this._convertToYCellCoord(e),h=this._convertToXCellCoord(i),u=this._convertToYCellCoord(r);for(let d=l;d<=h;d++)for(let l=c;l<=u;l++)if(n.call(this,t,e,i,r,this.xCellCount*l+d,s,o,a))return}_convertToXCellCoord(t){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(t*this.xScale)))}_convertToYCellCoord(t){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(t*this.yScale)))}_circlesCollide(t,e,i,r,n,s){const o=r-t,a=n-e,l=i+s;return l*l>o*o+a*a}_circleAndRectCollide(t,e,i,r,n,s,o){const a=(s-r)/2,l=Math.abs(t-(r+a));if(l>a+i)return!1;const c=(o-n)/2,h=Math.abs(e-(n+c));if(h>c+i)return!1;if(l<=a||h<=c)return!0;const u=l-a,d=h-c;return u*u+d*d<=i*i}}function yt(t,i,n){const s=e.H();if(!t){const{vecSouth:t,vecEast:e}=vt(i),n=r();n[0]=e[0],n[1]=e[1],n[2]=t[0],n[3]=t[1],o=n,(d=(l=(a=n)[0])*(u=a[3])-(h=a[2])*(c=a[1]))&&(o[0]=u*(d=1/d),o[1]=-c*d,o[2]=-h*d,o[3]=l*d),s[0]=n[0],s[1]=n[1],s[4]=n[2],s[5]=n[3]}var o,a,l,c,h,u,d;return e.K(s,s,[1/n,1/n,1]),s}function xt(t,i,r,n){if(t){const t=e.H();if(!i){const{vecSouth:e,vecEast:i}=vt(r);t[0]=i[0],t[1]=i[1],t[4]=e[0],t[5]=e[1]}return e.K(t,t,[n,n,1]),t}return r.pixelsToClipSpaceMatrix}function vt(t){const i=Math.cos(t.rollInRadians),r=Math.sin(t.rollInRadians),n=Math.cos(t.pitchInRadians),s=Math.cos(t.bearingInRadians),o=Math.sin(t.bearingInRadians),a=e.ad();a[0]=-s*n*r-o*i,a[1]=-o*n*r+s*i;const l=e.ae(a);l<1e-9?e.af(a):e.ag(a,a,1/l);const c=e.ad();c[0]=s*n*i-o*r,c[1]=o*n*i+s*r;const h=e.ae(c);return h<1e-9?e.af(c):e.ag(c,c,1/h),{vecEast:c,vecSouth:a}}function bt(t,i,r,n){let s;n?(s=[t,i,n(t,i),1],e.al(s,s,r)):(s=[t,i,0,1],Ot(s,s,r));const o=s[3];return{point:new e.P(s[0]/o,s[1]/o),signedDistanceFromCamera:o,isOccluded:!1}}function wt(t,e){return.5+t/e*.5}function Tt(t,e){return t.x>=-e[0]&&t.x<=e[0]&&t.y>=-e[1]&&t.y<=e[1]}function Pt(t,i,r,n,s,o,a,l,c,h,u,d,p){const f=r?t.textSizeData:t.iconSizeData,m=e.ah(f,i.transform.zoom),_=[256/i.width*2+1,256/i.height*2+1],g=r?t.text.dynamicLayoutVertexArray:t.icon.dynamicLayoutVertexArray;g.clear();const y=t.lineVertexArray,x=r?t.text.placedSymbolArray:t.icon.placedSymbolArray,v=i.transform.width/i.transform.height;let b=!1;for(let w=0;wMath.abs(r.x-i.x)*n?{useVertical:!0}:(t===e.ai.vertical?i.yr.x)?{needsFlipping:!0}:null}function It(t){const{projectionContext:i,pitchedLabelPlaneMatrixInverse:r,symbol:n,fontSize:s,flip:o,keepUpright:a,glyphOffsetArray:l,dynamicLayoutVertexArray:c,aspectRatio:h,rotateToLine:u}=t,d=s/24,p=n.lineOffsetX*d,f=n.lineOffsetY*d;let m;if(n.numGlyphs>1){const t=n.glyphStartIndex+n.numGlyphs,e=n.lineStartIndex,s=n.lineStartIndex+n.lineLength,c=Mt(d,l,p,f,o,n,u,i);if(!c)return{notEnoughRoom:!0};const _=zt(c.first.point.x,c.first.point.y,i,r),g=zt(c.last.point.x,c.last.point.y,i,r);if(a&&!o){const t=St(n.writingMode,_,g,h);if(t)return t}m=[c.first];for(let r=n.glyphStartIndex+1;r0?a.point:Ct(i.tileAnchorPoint,o,t,1,i),c=zt(t.x,t.y,i,r),u=zt(l.x,l.y,i,r),d=St(n.writingMode,c,u,h);if(d)return d}const t=Lt(d*l.getoffsetX(n.glyphStartIndex),p,f,o,n.segment,n.lineStartIndex,n.lineStartIndex+n.lineLength,i,u);if(!t||i.projectionCache.anyProjectionOccluded)return{notEnoughRoom:!0};m=[t]}for(const _ of m)e.ak(c,_.point,_.angle);return{}}function Ct(t,e,i,r,n){const s=t.add(t.sub(e)._unit()),o=At(s.x,s.y,n).point,a=i.sub(o);return i.add(a._mult(r/a.mag()))}function Et(t,i,r){const n=i.projectionCache;if(n.projections[t])return n.projections[t];const s=new e.P(i.lineVertexArray.getx(t),i.lineVertexArray.gety(t)),o=At(s.x,s.y,i);if(o.signedDistanceFromCamera>0)return n.projections[t]=o.point,n.anyProjectionOccluded=n.anyProjectionOccluded||o.isOccluded,o.point;const a=t-r.direction;return Ct(0===r.distanceFromAnchor?i.tileAnchorPoint:new e.P(i.lineVertexArray.getx(a),i.lineVertexArray.gety(a)),s,r.previousVertex,r.absOffsetX-r.distanceFromAnchor+1,i)}function At(t,e,i){const r=t+i.translation[0],n=e+i.translation[1];let s;return i.pitchWithMap?(s=bt(r,n,i.pitchedLabelPlaneMatrix,i.getElevation),s.isOccluded=!1):(s=i.transform.projectTileCoordinates(r,n,i.unwrappedTileID,i.getElevation),s.point.x=(.5*s.point.x+.5)*i.width,s.point.y=(.5*-s.point.y+.5)*i.height),s}function zt(t,i,r,n){if(r.pitchWithMap){const s=[t,i,0,1];return e.al(s,s,n),r.transform.projectTileCoordinates(s[0]/s[3],s[1]/s[3],r.unwrappedTileID,r.getElevation).point}return{x:t/r.width*2-1,y:i/r.height*2-1}}function kt(t,e,i){return i.transform.projectTileCoordinates(t,e,i.unwrappedTileID,i.getElevation)}function Dt(t,e,i){return t._unit()._perp()._mult(e*i)}function Rt(t,i,r,n,s,o,a,l,c){if(l.projectionCache.offsets[t])return l.projectionCache.offsets[t];const h=r.add(i);if(t+c.direction=s)return l.projectionCache.offsets[t]=h,h;const u=Et(t+c.direction,l,c),d=Dt(u.sub(r),a,c.direction),p=r.add(d),f=u.add(d);return l.projectionCache.offsets[t]=e.am(o,h,p,f)||h,l.projectionCache.offsets[t]}function Lt(t,e,i,r,n,s,o,a,l){const c=r?t-e:t+e;let h=c>0?1:-1,u=0;r&&(h*=-1,u=Math.PI),h<0&&(u+=Math.PI);let d,p=h>0?s+n:s+n+1;a.projectionCache.cachedAnchorPoint?d=a.projectionCache.cachedAnchorPoint:(d=At(a.tileAnchorPoint.x,a.tileAnchorPoint.y,a).point,a.projectionCache.cachedAnchorPoint=d);let f,m,_=d,g=d,y=0,x=0;const v=Math.abs(c),b=[];let w;for(;y+x<=v;){if(p+=h,p=o)return null;y+=x,g=_,m=f;const t={absOffsetX:v,direction:h,distanceFromAnchor:y,previousVertex:g};if(_=Et(p,a,t),0===i)b.push(g),w=_.sub(g);else{let e;const r=_.sub(g);e=0===r.mag()?Dt(Et(p+h,a,t).sub(_),i,h):Dt(r,i,h),m||(m=g.add(e)),f=Rt(p,e,_,s,o,m,i,a,t),b.push(m),w=f.sub(m)}x=w.mag()}const T=w._mult((v-y)/x)._add(m||g),P=u+Math.atan2(_.y-g.y,_.x-g.x);return b.push(T),{point:T,angle:l?P:0,path:b}}const Ft=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function Bt(t,e){for(let i=0;i=1;t--)p.push(o.path[t]);for(let t=1;tt.signedDistanceFromCamera<=0))?[]:t.map((t=>t.point))}let _=[];if(p.length>0){const t=p[0].clone(),i=p[0].clone();for(let e=1;e=r.x&&i.x<=n.x&&t.y>=r.y&&i.y<=n.y?[p]:i.xn.x||i.yn.y?[]:e.ao([p],r.x,r.y,n.x,n.y)}for(const e of _){s.reset(e,.25*i);let r=0;r=s.length<=.5*i?1:Math.ceil(s.paddedLength/f)+1;for(let e=0;e{const e=bt(t.x,t.y,r,i.getElevation),n=i.transform.projectTileCoordinates(e.point.x,e.point.y,i.unwrappedTileID,i.getElevation);return n.point.x=(.5*n.point.x+.5)*i.width,n.point.y=(.5*-n.point.y+.5)*i.height,n}))}(t,i);return function(t){let e=0,i=0,r=0,n=0;for(let s=0;si&&(i=n,e=r));return t.slice(e,e+i)}(r)}queryRenderedSymbols(t){if(0===t.length||0===this.grid.keysLength()&&0===this.ignoredGrid.keysLength())return{};const i=[];let r=1/0,n=1/0,s=-1/0,o=-1/0;for(const h of t){const t=new e.P(h.x+jt,h.y+jt);r=Math.min(r,t.x),n=Math.min(n,t.y),s=Math.max(s,t.x),o=Math.max(o,t.y),i.push(t)}const a=this.grid.query(r,n,s,o).concat(this.ignoredGrid.query(r,n,s,o)),l={},c={};for(const h of a){const t=h.key;if(void 0===l[t.bucketInstanceId]&&(l[t.bucketInstanceId]={}),l[t.bucketInstanceId][t.featureIndex])continue;const r=[new e.P(h.x1,h.y1),new e.P(h.x2,h.y1),new e.P(h.x2,h.y2),new e.P(h.x1,h.y2)];e.ap(i,r)&&(l[t.bucketInstanceId][t.featureIndex]=!0,void 0===c[t.bucketInstanceId]&&(c[t.bucketInstanceId]=[]),c[t.bucketInstanceId].push(t.featureIndex))}return c}insertCollisionBox(t,e,i,r,n,s){(i?this.ignoredGrid:this.grid).insert({bucketInstanceId:r,featureIndex:n,collisionGroupID:s,overlapMode:e},t[0],t[1],t[2],t[3])}insertCollisionCircles(t,e,i,r,n,s){const o=i?this.ignoredGrid:this.grid,a={bucketInstanceId:r,featureIndex:n,collisionGroupID:s,overlapMode:e};for(let l=0;l=this.screenRightBoundary||rthis.screenBottomBoundary}isInsideGrid(t,e,i,r){return i>=0&&t=0&&ethis.projectAndGetPerspectiveRatio(t.x,t.y,n,c,u)));E=t.some((t=>!t.isOccluded)),C=t.map((t=>new e.P(t.x,t.y)))}else E=!0;return{box:e.ar(C),allPointsOccluded:!E}}}class Nt{constructor(t,e,i,r){this.opacity=t?Math.max(0,Math.min(1,t.opacity+(t.placed?e:-e))):r&&i?1:0,this.placed=i}isHidden(){return 0===this.opacity&&!this.placed}}class Ut{constructor(t,e,i,r,n){this.text=new Nt(t?t.text:null,e,i,n),this.icon=new Nt(t?t.icon:null,e,r,n)}isHidden(){return this.text.isHidden()&&this.icon.isHidden()}}class Zt{constructor(t,e,i){this.text=t,this.icon=e,this.skipFade=i}}class Gt{constructor(t,e,i,r,n){this.bucketInstanceId=t,this.featureIndex=e,this.sourceLayerIndex=i,this.bucketIndex=r,this.tileID=n}}class $t{constructor(t){this.crossSourceCollisions=t,this.maxGroupID=0,this.collisionGroups={}}get(t){if(this.crossSourceCollisions)return{ID:0,predicate:null};if(!this.collisionGroups[t]){const e=++this.maxGroupID;this.collisionGroups[t]={ID:e,predicate:t=>t.collisionGroupID===e}}return this.collisionGroups[t]}}function qt(t,i,r,n,s){const{horizontalAlign:o,verticalAlign:a}=e.ay(t);return new e.P(-(o-.5)*i+n[0]*s,-(a-.5)*r+n[1]*s)}class Ht{constructor(t,e,i,r,n){this.transform=t.clone(),this.terrain=e,this.collisionIndex=new Vt(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=i,this.retainedQueryData={},this.collisionGroups=new $t(r),this.collisionCircleArrays={},this.collisionBoxArrays=new Map,this.prevPlacement=n,n&&(n.prevPlacement=void 0),this.placedOrientations={}}_getTerrainElevationFunc(t){const e=this.terrain;return e?(i,r)=>e.getElevation(t,i,r):null}getBucketParts(t,i,r,n){const s=r.getBucket(i),o=r.latestFeatureIndex;if(!s||!o||i.id!==s.layerIds[0])return;const a=r.collisionBoxArray,l=s.layers[0].layout,c=s.layers[0].paint,h=Math.pow(2,this.transform.zoom-r.tileID.overscaledZ),u=r.tileSize/e.X,d=r.tileID.toUnwrapped(),p="map"===l.get("text-rotation-alignment"),f=e.at(r,1,this.transform.zoom),m=e.au(this.collisionIndex.transform,r,c.get("text-translate"),c.get("text-translate-anchor")),_=e.au(this.collisionIndex.transform,r,c.get("icon-translate"),c.get("icon-translate-anchor")),g=yt(p,this.transform,f);this.retainedQueryData[s.bucketInstanceId]=new Gt(s.bucketInstanceId,o,s.sourceLayerIndex,s.index,r.tileID);const y={bucket:s,layout:l,translationText:m,translationIcon:_,unwrappedTileID:d,pitchedLabelPlaneMatrix:g,scale:h,textPixelRatio:u,holdingForFade:r.holdingForFade(),collisionBoxArray:a,partiallyEvaluatedTextSize:e.ah(s.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(s.sourceID)};if(n)for(const e of s.sortKeyRanges){const{sortKey:i,symbolInstanceStart:r,symbolInstanceEnd:n}=e;t.push({sortKey:i,symbolInstanceStart:r,symbolInstanceEnd:n,parameters:y})}else t.push({symbolInstanceStart:0,symbolInstanceEnd:s.symbolInstances.length,parameters:y})}attemptAnchorPlacement(t,i,r,n,s,o,a,l,c,h,u,d,p,f,m,_,g,y,x,v){const b=e.av[t.textAnchor],w=[t.textOffset0,t.textOffset1],T=qt(b,r,n,w,s),P=this.collisionIndex.placeCollisionBox(i,d,l,c,h,a,o,_,u.predicate,x,T,v);if((!y||this.collisionIndex.placeCollisionBox(y,d,l,c,h,a,o,g,u.predicate,x,T,v).placeable)&&P.placeable){let t;if(this.prevPlacement&&this.prevPlacement.variableOffsets[p.crossTileID]&&this.prevPlacement.placements[p.crossTileID]&&this.prevPlacement.placements[p.crossTileID].text&&(t=this.prevPlacement.variableOffsets[p.crossTileID].anchor),0===p.crossTileID)throw new Error("symbolInstance.crossTileID can't be 0");return this.variableOffsets[p.crossTileID]={textOffset:w,width:r,height:n,anchor:b,textBoxScale:s,prevAnchor:t},this.markUsedJustification(f,b,p,m),f.allowVerticalPlacement&&(this.markUsedOrientation(f,m,p),this.placedOrientations[p.crossTileID]=m),{shift:T,placedGlyphBoxes:P}}}placeLayerBucketPart(t,i,r){const{bucket:n,layout:s,translationText:o,translationIcon:a,unwrappedTileID:l,pitchedLabelPlaneMatrix:c,textPixelRatio:h,holdingForFade:u,collisionBoxArray:d,partiallyEvaluatedTextSize:p,collisionGroup:f}=t.parameters,m=s.get("text-optional"),_=s.get("icon-optional"),g=e.aw(s,"text-overlap","text-allow-overlap"),y="always"===g,x=e.aw(s,"icon-overlap","icon-allow-overlap"),v="always"===x,b="map"===s.get("text-rotation-alignment"),w="map"===s.get("text-pitch-alignment"),T="none"!==s.get("icon-text-fit"),P="viewport-y"===s.get("symbol-z-order"),M=y&&(v||!n.hasIconData()||_),S=v&&(y||!n.hasTextData()||m);!n.collisionArrays&&d&&n.deserializeCollisionBoxes(d);const I=this.retainedQueryData[n.bucketInstanceId].tileID,C=this._getTerrainElevationFunc(I),E=this.transform.getFastPathSimpleProjectionMatrix(I),A=(t,d,v)=>{var P,A;if(i[t.crossTileID])return;if(u)return void(this.placements[t.crossTileID]=new Zt(!1,!1,!1));let z=!1,k=!1,D=!0,R=null,L={box:null,placeable:!1,offscreen:null,occluded:!1},F={box:null,placeable:!1,offscreen:null},B=null,O=null,j=null,V=0,N=0,U=0;d.textFeatureIndex?V=d.textFeatureIndex:t.useRuntimeCollisionCircles&&(V=t.featureIndex),d.verticalTextFeatureIndex&&(N=d.verticalTextFeatureIndex);const Z=d.textBox;if(Z){const i=i=>{let r=e.ai.horizontal;if(n.allowVerticalPlacement&&!i&&this.prevPlacement){const e=this.prevPlacement.placedOrientations[t.crossTileID];e&&(this.placedOrientations[t.crossTileID]=e,r=e,this.markUsedOrientation(n,r,t))}return r},s=(i,r)=>{if(n.allowVerticalPlacement&&t.numVerticalGlyphVertices>0&&d.verticalTextBox){for(const t of n.writingModes)if(t===e.ai.vertical?(L=r(),F=L):L=i(),L&&L.placeable)break}else L=i()},c=t.textAnchorOffsetStartIndex,u=t.textAnchorOffsetEndIndex;if(u===c){const r=(e,i)=>{const r=this.collisionIndex.placeCollisionBox(e,g,h,I,l,w,b,o,f.predicate,C,void 0,E);return r&&r.placeable&&(this.markUsedOrientation(n,i,t),this.placedOrientations[t.crossTileID]=i),r};s((()=>r(Z,e.ai.horizontal)),(()=>{const i=d.verticalTextBox;return n.allowVerticalPlacement&&t.numVerticalGlyphVertices>0&&i?r(i,e.ai.vertical):{box:null,offscreen:null}})),i(L&&L.placeable)}else{let p=e.av[null===(A=null===(P=this.prevPlacement)||void 0===P?void 0:P.variableOffsets[t.crossTileID])||void 0===A?void 0:A.anchor];const m=(e,i,s)=>{const d=e.x2-e.x1,m=e.y2-e.y1,_=t.textBoxScale,y=T&&"never"===x?i:null;let v=null,P="never"===g?1:2,M="never";p&&P++;for(let r=0;rm(Z,d.iconBox,e.ai.horizontal)),(()=>{const i=d.verticalTextBox;return n.allowVerticalPlacement&&(!L||!L.placeable)&&t.numVerticalGlyphVertices>0&&i?m(i,d.verticalIconBox,e.ai.vertical):{box:null,occluded:!0,offscreen:null}})),L&&(z=L.placeable,D=L.offscreen);const _=i(L&&L.placeable);if(!z&&this.prevPlacement){const e=this.prevPlacement.variableOffsets[t.crossTileID];e&&(this.variableOffsets[t.crossTileID]=e,this.markUsedJustification(n,e.anchor,t,_))}}}if(B=L,z=B&&B.placeable,D=B&&B.offscreen,t.useRuntimeCollisionCircles){const i=n.text.placedSymbolArray.get(t.centerJustifiedTextSymbolIndex),a=e.aj(n.textSizeData,p,i),h=s.get("text-padding");O=this.collisionIndex.placeCollisionCircles(g,i,n.lineVertexArray,n.glyphOffsetArray,a,l,c,r,w,f.predicate,t.collisionCircleDiameter,h,o,C),O.circles.length&&O.collisionDetected&&!r&&e.w("Collisions detected, but collision boxes are not shown"),z=y||O.circles.length>0&&!O.collisionDetected,D=D&&O.offscreen}if(d.iconFeatureIndex&&(U=d.iconFeatureIndex),d.iconBox){const t=t=>this.collisionIndex.placeCollisionBox(t,x,h,I,l,w,b,a,f.predicate,C,T&&R?R:void 0,E);F&&F.placeable&&d.verticalIconBox?(j=t(d.verticalIconBox),k=j.placeable):(j=t(d.iconBox),k=j.placeable),D=D&&j.offscreen}const G=m||0===t.numHorizontalGlyphVertices&&0===t.numVerticalGlyphVertices,$=_||0===t.numIconVertices;G||$?$?G||(k=k&&z):z=k&&z:k=z=k&&z;const q=k&&j.placeable;if(z&&B.placeable&&this.collisionIndex.insertCollisionBox(B.box,g,s.get("text-ignore-placement"),n.bucketInstanceId,F&&F.placeable&&N?N:V,f.ID),q&&this.collisionIndex.insertCollisionBox(j.box,x,s.get("icon-ignore-placement"),n.bucketInstanceId,U,f.ID),O&&z&&this.collisionIndex.insertCollisionCircles(O.circles,g,s.get("text-ignore-placement"),n.bucketInstanceId,V,f.ID),r&&this.storeCollisionData(n.bucketInstanceId,v,d,B,j,O),0===t.crossTileID)throw new Error("symbolInstance.crossTileID can't be 0");if(0===n.bucketInstanceId)throw new Error("bucket.bucketInstanceId can't be 0");this.placements[t.crossTileID]=new Zt((z||M)&&!(null==B?void 0:B.occluded),(k||S)&&!(null==j?void 0:j.occluded),D||n.justReloaded),i[t.crossTileID]=!0};if(P){if(0!==t.symbolInstanceStart)throw new Error("bucket.bucketInstanceId should be 0");const e=n.getSortedSymbolIndexes(-this.transform.bearingInRadians);for(let t=e.length-1;t>=0;--t){const i=e[t];A(n.symbolInstances.get(i),n.collisionArrays[i],i)}}else for(let e=t.symbolInstanceStart;e=0&&(t.text.placedSymbolArray.get(e).crossTileID=s>=0&&e!==s?0:r.crossTileID)}markUsedOrientation(t,i,r){const n=i===e.ai.horizontal||i===e.ai.horizontalOnly?i:0,s=i===e.ai.vertical?i:0,o=[r.leftJustifiedTextSymbolIndex,r.centerJustifiedTextSymbolIndex,r.rightJustifiedTextSymbolIndex];for(const e of o)t.text.placedSymbolArray.get(e).placedOrientation=n;r.verticalPlacedTextSymbolIndex&&(t.text.placedSymbolArray.get(r.verticalPlacedTextSymbolIndex).placedOrientation=s)}commit(t){this.commitTime=t,this.zoomAtLastRecencyCheck=this.transform.zoom;const e=this.prevPlacement;let i=!1;this.prevZoomAdjustment=e?e.zoomAdjustment(this.transform.zoom):0;const r=e?e.symbolFadeChange(t):1,n=e?e.opacities:{},s=e?e.variableOffsets:{},o=e?e.placedOrientations:{};for(const a in this.placements){const t=this.placements[a],e=n[a];e?(this.opacities[a]=new Ut(e,r,t.text,t.icon),i=i||t.text!==e.text.placed||t.icon!==e.icon.placed):(this.opacities[a]=new Ut(null,r,t.text,t.icon,t.skipFade),i=i||t.text||t.icon)}for(const a in n){const t=n[a];if(!this.opacities[a]){const e=new Ut(t,r,!1,!1);e.isHidden()||(this.opacities[a]=e,i=i||t.text.placed||t.icon.placed)}}for(const a in s)this.variableOffsets[a]||!this.opacities[a]||this.opacities[a].isHidden()||(this.variableOffsets[a]=s[a]);for(const a in o)this.placedOrientations[a]||!this.opacities[a]||this.opacities[a].isHidden()||(this.placedOrientations[a]=o[a]);if(e&&void 0===e.lastPlacementChangeTime)throw new Error("Last placement time for previous placement is not defined");i?this.lastPlacementChangeTime=t:"number"!=typeof this.lastPlacementChangeTime&&(this.lastPlacementChangeTime=e?e.lastPlacementChangeTime:t)}updateLayerOpacities(t,e){const i={};for(const r of e){const e=r.getBucket(t);e&&r.latestFeatureIndex&&t.id===e.layerIds[0]&&this.updateBucketOpacities(e,r.tileID,i,r.collisionBoxArray)}}updateBucketOpacities(t,i,r,n){t.hasTextData()&&(t.text.opacityVertexArray.clear(),t.text.hasVisibleVertices=!1),t.hasIconData()&&(t.icon.opacityVertexArray.clear(),t.icon.hasVisibleVertices=!1),t.hasIconCollisionBoxData()&&t.iconCollisionBox.collisionVertexArray.clear(),t.hasTextCollisionBoxData()&&t.textCollisionBox.collisionVertexArray.clear();const s=t.layers[0],o=s.layout,a=new Ut(null,0,!1,!1,!0),l=o.get("text-allow-overlap"),c=o.get("icon-allow-overlap"),h=s._unevaluatedLayout.hasValue("text-variable-anchor")||s._unevaluatedLayout.hasValue("text-variable-anchor-offset"),u="map"===o.get("text-rotation-alignment"),d="map"===o.get("text-pitch-alignment"),p="none"!==o.get("icon-text-fit"),f=new Ut(null,0,l&&(c||!t.hasIconData()||o.get("icon-optional")),c&&(l||!t.hasTextData()||o.get("text-optional")),!0);!t.collisionArrays&&n&&(t.hasIconCollisionBoxData()||t.hasTextCollisionBoxData())&&t.deserializeCollisionBoxes(n);const m=(t,e,i)=>{for(let r=0;r0,y=this.placedOrientations[i.crossTileID],x=y===e.ai.vertical,v=y===e.ai.horizontal||y===e.ai.horizontalOnly;if(n>0||s>0){const e=ie(l.text);m(t.text,n,x?re:e),m(t.text,s,v?re:e);const r=l.text.isHidden();[i.rightJustifiedTextSymbolIndex,i.centerJustifiedTextSymbolIndex,i.leftJustifiedTextSymbolIndex].forEach((e=>{e>=0&&(t.text.placedSymbolArray.get(e).hidden=r||x?1:0)})),i.verticalPlacedTextSymbolIndex>=0&&(t.text.placedSymbolArray.get(i.verticalPlacedTextSymbolIndex).hidden=r||v?1:0);const o=this.variableOffsets[i.crossTileID];o&&this.markUsedJustification(t,o.anchor,i,y);const a=this.placedOrientations[i.crossTileID];a&&(this.markUsedJustification(t,"left",i,a),this.markUsedOrientation(t,a,i))}if(c){const e=ie(l.icon),r=!(p&&i.verticalPlacedIconSymbolIndex&&x);i.placedIconSymbolIndex>=0&&(m(t.icon,i.numIconVertices,r?e:re),t.icon.placedSymbolArray.get(i.placedIconSymbolIndex).hidden=l.icon.isHidden()),i.verticalPlacedIconSymbolIndex>=0&&(m(t.icon,i.numVerticalIconVertices,r?re:e),t.icon.placedSymbolArray.get(i.verticalPlacedIconSymbolIndex).hidden=l.icon.isHidden())}const b=_&&_.has(g)?_.get(g):{text:null,icon:null};if(t.hasIconCollisionBoxData()||t.hasTextCollisionBoxData()){const i=t.collisionArrays[g];if(i){let r=new e.P(0,0);if(i.textBox||i.verticalTextBox){let e=!0;if(h){const t=this.variableOffsets[o];t?(r=qt(t.anchor,t.width,t.height,t.textOffset,t.textBoxScale),u&&r._rotate(d?-this.transform.bearingInRadians:this.transform.bearingInRadians)):e=!1}if(i.textBox||i.verticalTextBox){let n;i.textBox&&(n=x),i.verticalTextBox&&(n=v),Xt(t.textCollisionBox.collisionVertexArray,l.text.placed,!e||n,b.text,r.x,r.y)}}if(i.iconBox||i.verticalIconBox){const e=Boolean(!v&&i.verticalIconBox);let n;i.iconBox&&(n=e),i.verticalIconBox&&(n=!e),Xt(t.iconCollisionBox.collisionVertexArray,l.icon.placed,n,b.icon,p?r.x:0,p?r.y:0)}}}}if(t.sortFeatures(-this.transform.bearingInRadians),this.retainedQueryData[t.bucketInstanceId]&&(this.retainedQueryData[t.bucketInstanceId].featureSortOrder=t.featureSortOrder),t.hasTextData()&&t.text.opacityVertexBuffer&&t.text.opacityVertexBuffer.updateData(t.text.opacityVertexArray),t.hasIconData()&&t.icon.opacityVertexBuffer&&t.icon.opacityVertexBuffer.updateData(t.icon.opacityVertexArray),t.hasIconCollisionBoxData()&&t.iconCollisionBox.collisionVertexBuffer&&t.iconCollisionBox.collisionVertexBuffer.updateData(t.iconCollisionBox.collisionVertexArray),t.hasTextCollisionBoxData()&&t.textCollisionBox.collisionVertexBuffer&&t.textCollisionBox.collisionVertexBuffer.updateData(t.textCollisionBox.collisionVertexArray),t.text.opacityVertexArray.length!==t.text.layoutVertexArray.length/4)throw new Error(`bucket.text.opacityVertexArray.length (= ${t.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${t.text.layoutVertexArray.length}) / 4`);if(t.icon.opacityVertexArray.length!==t.icon.layoutVertexArray.length/4)throw new Error(`bucket.icon.opacityVertexArray.length (= ${t.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${t.icon.layoutVertexArray.length}) / 4`);t.bucketInstanceId in this.collisionCircleArrays&&(t.collisionCircleArray=this.collisionCircleArrays[t.bucketInstanceId],delete this.collisionCircleArrays[t.bucketInstanceId])}symbolFadeChange(t){return 0===this.fadeDuration?1:(t-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(t){return Math.max(0,(this.transform.zoom-t)/1.5)}hasTransitions(t){return this.stale||t-this.lastPlacementChangeTimet}setStale(){this.stale=!0}}function Xt(t,e,i,r,n,s){r&&0!==r.length||(r=[0,0,0,0]);const o=r[0]-jt,a=r[1]-jt,l=r[2]-jt,c=r[3]-jt;t.emplaceBack(e?1:0,i?1:0,n||0,s||0,o,a),t.emplaceBack(e?1:0,i?1:0,n||0,s||0,l,a),t.emplaceBack(e?1:0,i?1:0,n||0,s||0,l,c),t.emplaceBack(e?1:0,i?1:0,n||0,s||0,o,c)}const Wt=Math.pow(2,25),Kt=Math.pow(2,24),Yt=Math.pow(2,17),Jt=Math.pow(2,16),Qt=Math.pow(2,9),te=Math.pow(2,8),ee=Math.pow(2,1);function ie(t){if(0===t.opacity&&!t.placed)return 0;if(1===t.opacity&&t.placed)return 4294967295;const e=t.placed?1:0,i=Math.floor(127*t.opacity);return i*Wt+e*Kt+i*Yt+e*Jt+i*Qt+e*te+i*ee+e}const re=0;class ne{constructor(t){this._sortAcrossTiles="viewport-y"!==t.layout.get("symbol-z-order")&&!t.layout.get("symbol-sort-key").isConstant(),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(t,e,i,r,n){const s=this._bucketParts;for(;this._currentTileIndext.sortKey-e.sortKey)));this._currentPartIndex!this._forceFullPlacement&&o.now()-r>2;for(;this._currentPlacementIndex>=0;){const r=e[t[this._currentPlacementIndex]],s=this.placement.collisionIndex.transform.zoom;if("symbol"===r.type&&(!r.minzoom||r.minzoom<=s)&&(!r.maxzoom||r.maxzoom>s)){if(this._inProgressLayer||(this._inProgressLayer=new ne(r)),this._inProgressLayer.continuePlacement(i[r.source],this.placement,this._showCollisionBoxes,r,n))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(t){return this.placement.commit(t),this.placement}}const oe=512/e.X/2;class ae{constructor(t,i,r){this.tileID=t,this.bucketInstanceId=r,this._symbolsByKey={};const n=new Map;for(let e=0;e({x:Math.floor(t.anchorX*oe),y:Math.floor(t.anchorY*oe)}))),crossTileIDs:o.map((t=>t.crossTileID))};if(t.positions.length>128){const i=new e.az(t.positions.length,16,Uint16Array);for(const{x:e,y:r}of t.positions)i.add(e,r);i.finish(),delete t.positions,t.index=i}this._symbolsByKey[s]=t}}getScaledCoordinates(t,i){const{x:r,y:n,z:s}=this.tileID.canonical,{x:o,y:a,z:l}=i.canonical,c=oe/Math.pow(2,l-s),h=(a*e.X+t.anchorY)*c,u=n*e.X*oe;return{x:Math.floor((o*e.X+t.anchorX)*c-r*e.X*oe),y:Math.floor(h-u)}}findMatches(t,e,i){const r=this.tileID.canonical.zt))}}class le{constructor(){this.maxCrossTileID=0}generate(){return++this.maxCrossTileID}}class ce{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0}handleWrapJump(t){const e=Math.round((t-this.lng)/360);if(0!==e)for(const i in this.indexes){const t=this.indexes[i],r={};for(const i in t){const n=t[i];n.tileID=n.tileID.unwrapTo(n.tileID.wrap+e),r[n.tileID.key]=n}this.indexes[i]=r}this.lng=t}addBucket(t,e,i){if(this.indexes[t.overscaledZ]&&this.indexes[t.overscaledZ][t.key]){if(this.indexes[t.overscaledZ][t.key].bucketInstanceId===e.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(t.overscaledZ,this.indexes[t.overscaledZ][t.key])}for(let n=0;nt.overscaledZ)for(const n in i){const s=i[n];s.tileID.isChildOf(t)&&s.findMatches(e.symbolInstances,t,r)}else{const s=i[t.scaledTo(Number(n)).key];s&&s.findMatches(e.symbolInstances,t,r)}}for(let n=0;n{e[t]=!0}));for(const i in this.layerIndexes)e[i]||delete this.layerIndexes[i]}}var ue="void main() {fragColor=vec4(1.0);}";const de={prelude:pe("#ifdef GL_ES\nprecision mediump float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif\nout highp vec4 fragColor;","#ifdef GL_ES\nprecision highp float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}mat3 rotationMatrixFromAxisAngle(vec3 u,float angle) {float c=cos(angle);float s=sin(angle);float c2=1.0-c;return mat3(u.x*u.x*c2+ c,u.x*u.y*c2-u.z*s,u.x*u.z*c2+u.y*s,u.y*u.x*c2+u.z*s,u.y*u.y*c2+ c,u.y*u.z*c2-u.x*s,u.z*u.x*c2-u.y*s,u.z*u.y*c2+u.x*s,u.z*u.z*c2+ c\n);}\n#ifdef TERRAIN3D\nuniform sampler2D u_terrain;uniform float u_terrain_dim;uniform mat4 u_terrain_matrix;uniform vec4 u_terrain_unpack;uniform float u_terrain_exaggeration;uniform highp sampler2D u_depth;\n#endif\nconst highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitShifts=vec4(1.)/bitSh;highp float unpack(highp vec4 color) {return dot(color,bitShifts);}highp float depthOpacity(vec3 frag) {\n#ifdef TERRAIN3D\nhighp float d=unpack(texture(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0));\n#else\nreturn 1.0;\n#endif\n}float calculate_visibility(vec4 pos) {\n#ifdef TERRAIN3D\nvec3 frag=pos.xyz/pos.w;highp float d=depthOpacity(frag);if (d > 0.95) return 1.0;return (d+depthOpacity(frag+vec3(0.0,0.01,0.0)))/2.0;\n#else\nreturn 1.0;\n#endif\n}float ele(vec2 pos) {\n#ifdef TERRAIN3D\nvec4 rgb=(texture(u_terrain,pos)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a;\n#else\nreturn 0.0;\n#endif\n}float get_elevation(vec2 pos) {\n#ifdef TERRAIN3D\n#ifdef GLOBE\nif ((pos.y <-32767.5) || (pos.y > 32766.5)) {return 0.0;}\n#endif\nvec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.0;vec2 f=fract(coord);vec2 c=(floor(coord)+0.5)/(u_terrain_dim+2.0);float d=1.0/(u_terrain_dim+2.0);float tl=ele(c);float tr=ele(c+vec2(d,0.0));float bl=ele(c+vec2(0.0,d));float br=ele(c+vec2(d,d));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return elevation*u_terrain_exaggeration;\n#else\nreturn 0.0;\n#endif\n}const float PI=3.141592653589793;uniform mat4 u_projection_matrix;"),projectionMercator:pe("","float projectLineThickness(float tileY) {return 1.0;}float projectCircleRadius(float tileY) {return 1.0;}vec4 projectTile(vec2 p) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);return result;}vec4 projectTile(vec2 p,vec2 rawPos) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);if (rawPos.y <-32767.5 || rawPos.y > 32766.5) {result.z=-10000000.0;}return result;}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_projection_matrix*vec4(posInTile,elevation,1.0);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {return projectTileWithElevation(posInTile,elevation);}"),projectionGlobe:pe("","#define GLOBE_RADIUS 6371008.8\nuniform highp vec4 u_projection_tile_mercator_coords;uniform highp vec4 u_projection_clipping_plane;uniform highp float u_projection_transition;uniform mat4 u_projection_fallback_matrix;vec3 globeRotateVector(vec3 vec,vec2 angles) {vec3 axisRight=vec3(vec.z,0.0,-vec.x);vec3 axisUp=cross(axisRight,vec);axisRight=normalize(axisRight);axisUp=normalize(axisUp);vec2 t=tan(angles);return normalize(vec+axisRight*t.x+axisUp*t.y);}mat3 globeGetRotationMatrix(vec3 spherePos) {vec3 axisRight=vec3(spherePos.z,0.0,-spherePos.x);vec3 axisDown=cross(axisRight,spherePos);axisRight=normalize(axisRight);axisDown=normalize(axisDown);return mat3(axisRight,axisDown,spherePos\n);}float circumferenceRatioAtTileY(float tileY) {float mercator_pos_y=u_projection_tile_mercator_coords.y+u_projection_tile_mercator_coords.w*tileY;float spherical_y=2.0*atan(exp(PI-(mercator_pos_y*PI*2.0)))-PI*0.5;return cos(spherical_y);}float projectLineThickness(float tileY) {float thickness=1.0/circumferenceRatioAtTileY(tileY); \nif (u_projection_transition < 0.999) {return mix(1.0,thickness,u_projection_transition);} else {return thickness;}}vec3 projectToSphere(vec2 translatedPos,vec2 rawPos) {vec2 mercator_pos=u_projection_tile_mercator_coords.xy+u_projection_tile_mercator_coords.zw*translatedPos;vec2 spherical;spherical.x=mercator_pos.x*PI*2.0+PI;spherical.y=2.0*atan(exp(PI-(mercator_pos.y*PI*2.0)))-PI*0.5;float len=cos(spherical.y);vec3 pos=vec3(sin(spherical.x)*len,sin(spherical.y),cos(spherical.x)*len\n);if (rawPos.y <-32767.5) {pos=vec3(0.0,1.0,0.0);}if (rawPos.y > 32766.5) {pos=vec3(0.0,-1.0,0.0);}return pos;}vec3 projectToSphere(vec2 posInTile) {return projectToSphere(posInTile,vec2(0.0,0.0));}float globeComputeClippingZ(vec3 spherePos) {return (1.0-(dot(spherePos,u_projection_clipping_plane.xyz)+u_projection_clipping_plane.w));}vec4 interpolateProjection(vec2 posInTile,vec3 spherePos,float elevation) {vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);globePosition.z=globeComputeClippingZ(elevatedPos)*globePosition.w;if (u_projection_transition > 0.999) {return globePosition;}vec4 flatPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);const float z_globeness_threshold=0.2;vec4 result=globePosition;result.z=mix(0.0,globePosition.z,clamp((u_projection_transition-z_globeness_threshold)/(1.0-z_globeness_threshold),0.0,1.0));result.xyw=mix(flatPosition.xyw,globePosition.xyw,u_projection_transition);if ((posInTile.y <-32767.5) || (posInTile.y > 32766.5)) {result=globePosition;const float poles_hidden_anim_percentage=0.02;result.z=mix(globePosition.z,100.0,pow(max((1.0-u_projection_transition)/poles_hidden_anim_percentage,0.0),8.0));}return result;}vec4 interpolateProjectionFor3D(vec2 posInTile,vec3 spherePos,float elevation) {vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);if (u_projection_transition > 0.999) {return globePosition;}vec4 fallbackPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);return mix(fallbackPosition,globePosition,u_projection_transition);}vec4 projectTile(vec2 posInTile) {return interpolateProjection(posInTile,projectToSphere(posInTile),0.0);}vec4 projectTile(vec2 posInTile,vec2 rawPos) {return interpolateProjection(posInTile,projectToSphere(posInTile,rawPos),0.0);}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return interpolateProjection(posInTile,projectToSphere(posInTile),elevation);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {vec3 spherePos=projectToSphere(posInTile,posInTile);return interpolateProjectionFor3D(posInTile,spherePos,elevation);}"),background:pe("uniform vec4 u_color;uniform float u_opacity;void main() {fragColor=u_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\nfragColor=vec4(1.0);\n#endif\n}","in vec2 a_pos;void main() {gl_Position=projectTile(a_pos);}"),backgroundPattern:pe("uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);fragColor=mix(color1,color2,u_mix)*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\nfragColor=vec4(1.0);\n#endif\n}","uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;void main() {gl_Position=projectTile(a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}"),circle:pe("in vec3 v_data;in float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);float antialiased_blur=v_data.z;float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));fragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);const float epsilon=0.5/255.0;if (fragColor.r < epsilon && fragColor.g < epsilon && fragColor.b < epsilon && fragColor.a < epsilon) {discard;}\n#ifdef OVERDRAW_INSPECTOR\nfragColor=vec4(1.0);\n#endif\n}","uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform highp float u_globe_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;uniform vec2 u_translate;in vec2 a_pos;out vec3 v_data;out float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main(void) {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 pos_raw=a_pos+32768.0;vec2 extrude=vec2(mod(pos_raw,8.0)/7.0*2.0-1.0);vec2 circle_center=floor(pos_raw/8.0)+u_translate;float ele=get_elevation(circle_center);v_visibility=calculate_visibility(projectTileWithElevation(circle_center,ele));if (u_pitch_with_map) {\n#ifdef GLOBE\nvec3 center_vector=projectToSphere(circle_center);\n#endif\nfloat angle_scale=u_globe_extrude_scale;vec2 corner_position=circle_center;if (u_scale_with_map) {angle_scale*=(radius+stroke_width);corner_position+=extrude*u_extrude_scale*(radius+stroke_width);} else {\n#ifdef GLOBE\nvec4 projected_center=interpolateProjection(circle_center,center_vector,ele);\n#else\nvec4 projected_center=projectTileWithElevation(circle_center,ele);\n#endif\ncorner_position+=extrude*u_extrude_scale*(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);angle_scale*=(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);}\n#ifdef GLOBE\nvec2 angles=extrude*angle_scale;vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(corner_position,corner_vector,ele);\n#else\ngl_Position=projectTileWithElevation(corner_position,ele);\n#endif\n} else {gl_Position=projectTileWithElevation(circle_center,ele);if (gl_Position.z/gl_Position.w > 1.0) {gl_Position.xy=vec2(10000.0);}if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}float antialiasblur=-max(1.0/u_device_pixel_ratio/(radius+stroke_width),blur);v_data=vec3(extrude.x,extrude.y,antialiasblur);}"),clippingMask:pe(ue,"in vec2 a_pos;void main() {gl_Position=projectTile(a_pos);}"),heatmap:pe("uniform highp float u_intensity;in vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#define GAUSS_COEF 0.3989422804014327\nvoid main() {\n#pragma mapbox: initialize highp float weight\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);fragColor=vec4(val,1.0,1.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\nfragColor=vec4(1.0);\n#endif\n}","uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;uniform highp float u_globe_extrude_scale;in vec2 a_pos;out vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#pragma mapbox: define mediump float radius\nconst highp float ZERO=1.0/255.0/16.0;\n#define GAUSS_COEF 0.3989422804014327\nvoid main(void) {\n#pragma mapbox: initialize highp float weight\n#pragma mapbox: initialize mediump float radius\nvec2 pos_raw=a_pos+32768.0;vec2 unscaled_extrude=vec2(mod(pos_raw,8.0)/7.0*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 circle_center=floor(pos_raw/8.0);\n#ifdef GLOBE\nvec2 angles=v_extrude*radius*u_globe_extrude_scale;vec3 center_vector=projectToSphere(circle_center);vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(circle_center+extrude,corner_vector,0.0);\n#else\ngl_Position=projectTileFor3D(circle_center+extrude,get_elevation(circle_center));\n#endif\n}"),heatmapTexture:pe("uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;in vec2 v_pos;void main() {float t=texture(u_image,v_pos).r;vec4 color=texture(u_color_ramp,vec2(t,0.5));fragColor=color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\nfragColor=vec4(0.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_world;in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}"),collisionBox:pe("in float v_placed;in float v_notUsed;void main() {float alpha=0.5;fragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {fragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {fragColor*=.1;}}","in vec2 a_anchor_pos;in vec2 a_placed;in vec2 a_box_real;uniform vec2 u_pixel_extrude_scale;out float v_placed;out float v_notUsed;void main() {gl_Position=projectTileWithElevation(a_anchor_pos,get_elevation(a_anchor_pos));gl_Position.xy=((a_box_real+0.5)*u_pixel_extrude_scale*2.0-1.0)*vec2(1.0,-1.0)*gl_Position.w;if (gl_Position.z/gl_Position.w < 1.1) {gl_Position.z=0.5;}v_placed=a_placed.x;v_notUsed=a_placed.y;}"),collisionCircle:pe("in float v_radius;in vec2 v_extrude;in float v_collision;void main() {float alpha=0.5;float stroke_radius=0.9;float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);fragColor=color*alpha*opacity_t;}","in vec2 a_pos;in float a_radius;in vec2 a_flags;uniform vec2 u_viewport_size;out float v_radius;out vec2 v_extrude;out float v_collision;void main() {float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_collision=collision;gl_Position=vec4((a_pos/u_viewport_size*2.0-1.0)*vec2(1.0,-1.0),0.0,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),debug:pe("uniform highp vec4 u_color;uniform sampler2D u_overlay;in vec2 v_uv;void main() {vec4 overlay_color=texture(u_overlay,v_uv);fragColor=mix(u_color,overlay_color,overlay_color.a);}","in vec2 a_pos;out vec2 v_uv;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=projectTileWithElevation(a_pos*u_overlay_scale,get_elevation(a_pos));}"),depth:pe(ue,"in vec2 a_pos;void main() {\n#ifdef GLOBE\ngl_Position=projectTileFor3D(a_pos,0.0);\n#else\ngl_Position=u_projection_matrix*vec4(a_pos,0.0,1.0);\n#endif\n}"),fill:pe("#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\nfragColor=color*opacity;\n#ifdef OVERDRAW_INSPECTOR\nfragColor=vec4(1.0);\n#endif\n}","uniform vec2 u_fill_translate;in vec2 a_pos;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=projectTile(a_pos+u_fill_translate,a_pos);}"),fillOutline:pe("in vec2 v_pos;\n#ifdef GLOBE\nin float v_depth;\n#endif\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);fragColor=outline_color*(alpha*opacity);\n#ifdef GLOBE\nif (v_depth > 1.0) {discard;}\n#endif\n#ifdef OVERDRAW_INSPECTOR\nfragColor=vec4(1.0);\n#endif\n}","uniform vec2 u_world;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos;\n#ifdef GLOBE\nout float v_depth;\n#endif\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=projectTile(a_pos+u_fill_translate,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;\n#ifdef GLOBE\nv_depth=gl_Position.z/gl_Position.w;\n#endif\n}"),fillOutlinePattern:pe("uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;in vec2 v_pos_a;in vec2 v_pos_b;in vec2 v_pos;\n#ifdef GLOBE\nin float v_depth;\n#endif\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);fragColor=mix(color1,color2,u_fade)*alpha*opacity;\n#ifdef GLOBE\nif (v_depth > 1.0) {discard;}\n#endif\n#ifdef OVERDRAW_INSPECTOR\nfragColor=vec4(1.0);\n#endif\n}","uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;out vec2 v_pos;\n#ifdef GLOBE\nout float v_depth;\n#endif\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=projectTile(a_pos+u_fill_translate,a_pos);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;\n#ifdef GLOBE\nv_depth=gl_Position.z/gl_Position.w;\n#endif\n}"),fillPattern:pe("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);fragColor=mix(color1,color2,u_fade)*opacity;\n#ifdef OVERDRAW_INSPECTOR\nfragColor=vec4(1.0);\n#endif\n}","uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=projectTile(a_pos+u_fill_translate,a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}"),fillExtrusion:pe("in vec4 v_color;void main() {fragColor=v_color;\n#ifdef OVERDRAW_INSPECTOR\nfragColor=vec4(1.0);\n#endif\n}","uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;in vec2 a_pos;in vec4 a_normal_ed;\n#ifdef TERRAIN3D\nin vec2 a_centroid;\n#endif\nout vec4 v_color;\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec3 normal=a_normal_ed.xyz;\n#ifdef TERRAIN3D\nfloat height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);\n#else\nfloat height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;\n#endif\nbase=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate;\n#ifdef GLOBE\nvec3 spherePos=projectToSphere(posInTile,a_pos);gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation);\n#else\ngl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0);\n#endif\nfloat colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;vec3 normalForLighting=normal/16384.0;float directional=clamp(dot(normalForLighting,u_lightpos),0.0,1.0);\n#ifdef GLOBE\nmat3 rotMatrix=globeGetRotationMatrix(spherePos);normalForLighting=rotMatrix*normalForLighting;directional=mix(directional,clamp(dot(normalForLighting,u_lightpos_globe),0.0,1.0),u_projection_transition);\n#endif\ndirectional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}"),fillExtrusionPattern:pe("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;in vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);fragColor=mixedColor*v_lighting;\n#ifdef OVERDRAW_INSPECTOR\nfragColor=vec4(1.0);\n#endif\n}","uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;in vec2 a_pos;in vec4 a_normal_ed;\n#ifdef TERRAIN3D\nin vec2 a_centroid;\n#endif\n#ifdef GLOBE\nout vec3 v_sphere_pos;\n#endif\nout vec2 v_pos_a;out vec2 v_pos_b;out vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;\n#ifdef TERRAIN3D\nfloat height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);\n#else\nfloat height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;\n#endif\nbase=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate;\n#ifdef GLOBE\nvec3 spherePos=projectToSphere(posInTile,a_pos);vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);v_sphere_pos=elevatedPos;gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation);\n#else\ngl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0);\n#endif\nvec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\n? a_pos\n: vec2(edgedistance,elevation*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}"),hillshadePrepare:pe("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));fragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\nfragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_dimension;in vec2 a_pos;in vec2 a_texture_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),hillshade:pe("uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\n#define PI 3.141592653589793\nvoid main() {vec4 pixel=texture(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);fragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef OVERDRAW_INSPECTOR\nfragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);v_pos=a_pos/8192.0;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}"),line:pe("uniform lowp float u_device_pixel_ratio;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;\n#ifdef GLOBE\nin float v_depth;\n#endif\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);fragColor=color*(alpha*opacity);\n#ifdef GLOBE\nif (v_depth > 1.0) {discard;}\n#endif\n#ifdef OVERDRAW_INSPECTOR\nfragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\nin vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp float v_linesofar;\n#ifdef GLOBE\nout float v_depth;\n#endif\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;\n#ifdef GLOBE\nv_depth=gl_Position.z/gl_Position.w;\n#endif\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_width2=vec2(outset,inset);}"),lineGradient:pe("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;in highp vec2 v_uv;\n#ifdef GLOBE\nin float v_depth;\n#endif\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture(u_image,v_uv);fragColor=color*(alpha*opacity);\n#ifdef GLOBE\nif (v_depth > 1.0) {discard;}\n#endif\n#ifdef OVERDRAW_INSPECTOR\nfragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\nin vec2 a_pos_normal;in vec4 a_data;in float a_uv_x;in float a_split_index;uniform vec2 u_translation;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp vec2 v_uv;\n#ifdef GLOBE\nout float v_depth;\n#endif\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;\n#ifdef GLOBE\nv_depth=gl_Position.z/gl_Position.w;\n#endif\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_width2=vec2(outset,inset);}"),linePattern:pe("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;in vec2 v_normal;in vec2 v_width2;in float v_linesofar;in float v_gamma_scale;in float v_width;\n#ifdef GLOBE\nin float v_depth;\n#endif\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture(u_image,pos_a),texture(u_image,pos_b),u_fade);fragColor=color*alpha*opacity;\n#ifdef GLOBE\nif (v_depth > 1.0) {discard;}\n#endif\n#ifdef OVERDRAW_INSPECTOR\nfragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nin vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;out vec2 v_normal;out vec2 v_width2;out float v_linesofar;out float v_gamma_scale;out float v_width;\n#ifdef GLOBE\nout float v_depth;\n#endif\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;\n#ifdef GLOBE\nv_depth=gl_Position.z/gl_Position.w;\n#endif\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}"),lineSDF:pe("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;in vec2 v_normal;in vec2 v_width2;in vec2 v_tex_a;in vec2 v_tex_b;in float v_gamma_scale;\n#ifdef GLOBE\nin float v_depth;\n#endif\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture(u_image,v_tex_a).a;float sdfdist_b=texture(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);fragColor=color*(alpha*opacity);\n#ifdef GLOBE\nif (v_depth > 1.0) {discard;}\n#endif\n#ifdef OVERDRAW_INSPECTOR\nfragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nin vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;out vec2 v_normal;out vec2 v_width2;out vec2 v_tex_a;out vec2 v_tex_b;out float v_gamma_scale;\n#ifdef GLOBE\nout float v_depth;\n#endif\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;\n#ifdef GLOBE\nv_depth=gl_Position.z/gl_Position.w;\n#endif\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}"),raster:pe("uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;in vec2 v_pos0;in vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture(u_image0,v_pos0);vec4 color1=texture(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);fragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\nfragColor=vec4(1.0);\n#endif\n}","uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;uniform vec4 u_coords_top;uniform vec4 u_coords_bottom;in vec2 a_pos;out vec2 v_pos0;out vec2 v_pos1;void main() {vec2 fractionalPos=a_pos/8192.0;vec2 position=mix(mix(u_coords_top.xy,u_coords_top.zw,fractionalPos.x),mix(u_coords_bottom.xy,u_coords_bottom.zw,fractionalPos.x),fractionalPos.y);gl_Position=projectTile(position,position);v_pos0=((fractionalPos-0.5)/u_buffer_scale)+0.5;\n#ifdef GLOBE\nif (a_pos.y <-32767.5) {v_pos0.y=0.0;}if (a_pos.y > 32766.5) {v_pos0.y=1.0;}\n#endif\nv_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}"),symbolIcon:pe("uniform sampler2D u_texture;in vec2 v_tex;in float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;fragColor=texture(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\nfragColor=vec4(1.0);\n#endif\n}","in vec4 a_pos_offset;in vec4 a_data;in vec4 a_pixeloffset;in vec3 a_projected_pos;in float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;out vec2 v_tex;out float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;\n#ifdef GLOBE\nif(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);}\n#endif\nvec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}gl_Position=finalPos;v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float visibility=calculate_visibility(projectedPoint);v_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));}"),symbolSDF:pe("#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;in vec2 v_data0;in vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float inner_edge=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);inner_edge=inner_edge+gamma*gamma_scale;}lowp float dist=texture(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(inner_edge-gamma_scaled,inner_edge+gamma_scaled,dist);if (u_is_halo) {lowp float halo_edge=(6.0-halo_width/fontScale)/SDF_PX;alpha=min(smoothstep(halo_edge-gamma_scaled,halo_edge+gamma_scaled,dist),1.0-alpha);}fragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\nfragColor=vec4(1.0);\n#endif\n}","in vec4 a_pos_offset;in vec4 a_data;in vec4 a_pixeloffset;in vec3 a_projected_pos;in float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_translation;uniform float u_pitched_scale;out vec2 v_data0;out vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;\n#ifdef GLOBE\nif(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);}\n#endif\nvec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}"),symbolTextAndIcon:pe("#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;in vec4 v_data0;in vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;fragColor=texture(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\nfragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);fragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\nfragColor=vec4(1.0);\n#endif\n}","in vec4 a_pos_offset;in vec4 a_data;in vec3 a_projected_pos;in float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;out vec4 v_data0;out vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;\n#ifdef GLOBE\nif(u_pitch_with_map && !u_is_along_line) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);}\n#endif\nvec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}"),terrain:pe("uniform sampler2D u_texture;uniform vec4 u_fog_color;uniform vec4 u_horizon_color;uniform float u_fog_ground_blend;uniform float u_fog_ground_blend_opacity;uniform float u_horizon_fog_blend;uniform bool u_is_globe_mode;in vec2 v_texture_pos;in float v_fog_depth;const float gamma=2.2;vec4 gammaToLinear(vec4 color) {return pow(color,vec4(gamma));}vec4 linearToGamma(vec4 color) {return pow(color,vec4(1.0/gamma));}void main() {vec4 surface_color=texture(u_texture,vec2(v_texture_pos.x,1.0-v_texture_pos.y));if (!u_is_globe_mode && v_fog_depth > u_fog_ground_blend) {vec4 surface_color_linear=gammaToLinear(surface_color);float blend_color=smoothstep(0.0,1.0,max((v_fog_depth-u_horizon_fog_blend)/(1.0-u_horizon_fog_blend),0.0));vec4 fog_horizon_color_linear=mix(gammaToLinear(u_fog_color),gammaToLinear(u_horizon_color),blend_color);float factor_fog=max(v_fog_depth-u_fog_ground_blend,0.0)/(1.0-u_fog_ground_blend);fragColor=linearToGamma(mix(surface_color_linear,fog_horizon_color_linear,pow(factor_fog,2.0)*u_fog_ground_blend_opacity));} else {fragColor=surface_color;}}","in vec3 a_pos3d;uniform mat4 u_fog_matrix;uniform float u_ele_delta;out vec2 v_texture_pos;out float v_fog_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=projectTileFor3D(a_pos3d.xy,get_elevation(a_pos3d.xy)-ele_delta);vec4 pos=u_fog_matrix*vec4(a_pos3d.xy,ele,1.0);v_fog_depth=pos.z/pos.w*0.5+0.5;}"),terrainDepth:pe("in float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {fragColor=pack(v_depth);}","in vec3 a_pos3d;uniform float u_ele_delta;out float v_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);v_depth=gl_Position.z/gl_Position.w;}"),terrainCoords:pe("precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;in vec2 v_texture_pos;void main() {vec4 rgba=texture(u_texture,v_texture_pos);fragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}","in vec3 a_pos3d;uniform float u_ele_delta;out vec2 v_texture_pos;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);}"),projectionErrorMeasurement:pe("in vec4 v_output_error_encoded;void main() {fragColor=v_output_error_encoded;}","in vec2 a_pos;uniform highp float u_input;uniform highp float u_output_expected;out vec4 v_output_error_encoded;void main() {float real_output=2.0*atan(exp(PI-(u_input*PI*2.0)))-PI*0.5;float error=real_output-u_output_expected;float abs_error=abs(error)*128.0;v_output_error_encoded.x=min(floor(abs_error*256.0),255.0)/255.0;abs_error-=v_output_error_encoded.x;v_output_error_encoded.y=min(floor(abs_error*65536.0),255.0)/255.0;abs_error-=v_output_error_encoded.x/255.0;v_output_error_encoded.z=min(floor(abs_error*16777216.0),255.0)/255.0;v_output_error_encoded.w=error >=0.0 ? 1.0 : 0.0;gl_Position=vec4(a_pos,0.0,1.0);}"),atmosphere:pe("in vec3 view_direction;uniform vec3 u_sun_pos;uniform vec3 u_globe_position;uniform float u_globe_radius;uniform float u_atmosphere_blend;/**Shader use from https:*Made some change to adapt to MapLibre Globe geometry*/const float PI=3.141592653589793;const int iSteps=5;const int jSteps=3;/*radius of the planet*/const float EARTH_RADIUS=6371e3;/*radius of the atmosphere*/const float ATMOS_RADIUS=6471e3;vec2 rsi(vec3 r0,vec3 rd,float sr) {float a=dot(rd,rd);float b=2.0*dot(rd,r0);float c=dot(r0,r0)-(sr*sr);float d=(b*b)-4.0*a*c;if (d < 0.0) return vec2(1e5,-1e5);return vec2((-b-sqrt(d))/(2.0*a),(-b+sqrt(d))/(2.0*a));}vec4 atmosphere(vec3 r,vec3 r0,vec3 pSun,float iSun,float rPlanet,float rAtmos,vec3 kRlh,float kMie,float shRlh,float shMie,float g) {pSun=normalize(pSun);r=normalize(r);vec2 p=rsi(r0,r,rAtmos);if (p.x > p.y) {return vec4(0.0,0.0,0.0,1.0);}if (p.x < 0.0) {p.x=0.0;}vec3 pos=r0+r*p.x;vec2 p2=rsi(r0,r,rPlanet);if (p2.x <=p2.y && p2.x > 0.0) {p.y=min(p.y,p2.x);}float iStepSize=(p.y-p.x)/float(iSteps);float iTime=p.x+iStepSize*0.5;vec3 totalRlh=vec3(0,0,0);vec3 totalMie=vec3(0,0,0);float iOdRlh=0.0;float iOdMie=0.0;float mu=dot(r,pSun);float mumu=mu*mu;float gg=g*g;float pRlh=3.0/(16.0*PI)*(1.0+mumu);float pMie=3.0/(8.0*PI)*((1.0-gg)*(mumu+1.0))/(pow(1.0+gg-2.0*mu*g,1.5)*(2.0+gg));for (int i=0; i < iSteps; i++) {vec3 iPos=r0+r*iTime;float iHeight=length(iPos)-rPlanet;float odStepRlh=exp(-iHeight/shRlh)*iStepSize;float odStepMie=exp(-iHeight/shMie)*iStepSize;iOdRlh+=odStepRlh;iOdMie+=odStepMie;float jStepSize=rsi(iPos,pSun,rAtmos).y/float(jSteps);float jTime=jStepSize*0.5;float jOdRlh=0.0;float jOdMie=0.0;for (int j=0; j < jSteps; j++) {vec3 jPos=iPos+pSun*jTime;float jHeight=length(jPos)-rPlanet;jOdRlh+=exp(-jHeight/shRlh)*jStepSize;jOdMie+=exp(-jHeight/shMie)*jStepSize;jTime+=jStepSize;}vec3 attn=exp(-(kMie*(iOdMie+jOdMie)+kRlh*(iOdRlh+jOdRlh)));totalRlh+=odStepRlh*attn;totalMie+=odStepMie*attn;iTime+=iStepSize;}float opacity=exp(-(length(kRlh)*length(totalRlh)+kMie*length(totalMie)));vec3 color=iSun*(pRlh*kRlh*totalRlh+pMie*kMie*totalMie);return vec4(color,opacity);}void main() {vec3 scale_camera_pos=-u_globe_position*EARTH_RADIUS/u_globe_radius;vec4 color=atmosphere(normalize(view_direction),scale_camera_pos,u_sun_pos,22.0,EARTH_RADIUS,ATMOS_RADIUS,vec3(5.5e-6,13.0e-6,22.4e-6),21e-6,8e3,1.2e3,0.758\n);color.rgb=1.0-exp(-1.0*color.rgb);color=pow(color,vec4(1.0/2.2));fragColor=vec4(color.rgb,1.0-color.a)*u_atmosphere_blend;}","in vec2 a_pos;uniform mat4 u_inv_proj_matrix;out vec3 view_direction;void main() {view_direction=(u_inv_proj_matrix*vec4(a_pos,0.0,1.0)).xyz;gl_Position=vec4(a_pos,0.0,1.0);}"),sky:pe("uniform vec4 u_sky_color;uniform vec4 u_horizon_color;uniform vec2 u_horizon;uniform vec2 u_horizon_normal;uniform float u_sky_horizon_blend;uniform float u_sky_blend;void main() {float x=gl_FragCoord.x;float y=gl_FragCoord.y;float blend=(y-u_horizon.y)*u_horizon_normal.y+(x-u_horizon.x)*u_horizon_normal.x;if (blend > 0.0) {if (blend < u_sky_horizon_blend) {fragColor=mix(u_sky_color,u_horizon_color,pow(1.0-blend/u_sky_horizon_blend,2.0));} else {fragColor=u_sky_color;}}fragColor=mix(fragColor,vec4(vec3(0.0),0.0),u_sky_blend);}","in vec2 a_pos;void main() {gl_Position=vec4(a_pos,1.0,1.0);}")};function pe(t,e){const i=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,r=e.match(/in ([\w]+) ([\w]+)/g),n=t.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),s=e.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),o=s?s.concat(n):n,a={};return{fragmentSource:t=t.replace(i,((t,e,i,r,n)=>(a[n]=!0,"define"===e?`\n#ifndef HAS_UNIFORM_u_${n}\nin ${i} ${r} ${n};\n#else\nuniform ${i} ${r} u_${n};\n#endif\n`:`\n#ifdef HAS_UNIFORM_u_${n}\n ${i} ${r} ${n} = u_${n};\n#endif\n`))),vertexSource:e=e.replace(i,((t,e,i,r,n)=>{const s="float"===r?"vec2":"vec4",o=n.match(/color/)?"color":s;return a[n]?"define"===e?`\n#ifndef HAS_UNIFORM_u_${n}\nuniform lowp float u_${n}_t;\nin ${i} ${s} a_${n};\nout ${i} ${r} ${n};\n#else\nuniform ${i} ${r} u_${n};\n#endif\n`:"vec4"===o?`\n#ifndef HAS_UNIFORM_u_${n}\n ${n} = a_${n};\n#else\n ${i} ${r} ${n} = u_${n};\n#endif\n`:`\n#ifndef HAS_UNIFORM_u_${n}\n ${n} = unpack_mix_${o}(a_${n}, u_${n}_t);\n#else\n ${i} ${r} ${n} = u_${n};\n#endif\n`:"define"===e?`\n#ifndef HAS_UNIFORM_u_${n}\nuniform lowp float u_${n}_t;\nin ${i} ${s} a_${n};\n#else\nuniform ${i} ${r} u_${n};\n#endif\n`:"vec4"===o?`\n#ifndef HAS_UNIFORM_u_${n}\n ${i} ${r} ${n} = a_${n};\n#else\n ${i} ${r} ${n} = u_${n};\n#endif\n`:`\n#ifndef HAS_UNIFORM_u_${n}\n ${i} ${r} ${n} = unpack_mix_${o}(a_${n}, u_${n}_t);\n#else\n ${i} ${r} ${n} = u_${n};\n#endif\n`})),staticAttributes:r,staticUniforms:o}}class fe{constructor(t,e,i){this.vertexBuffer=t,this.indexBuffer=e,this.segments=i}destroy(){this.vertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.vertexBuffer=null,this.indexBuffer=null,this.segments=null}}var me=e.aA([{name:"a_pos",type:"Int16",components:2}]);const _e="#define PROJECTION_MERCATOR",ge="mercator";class ye{constructor(){this._cachedMesh=null}get name(){return"mercator"}get useSubdivision(){return!1}get shaderVariantName(){return ge}get shaderDefine(){return _e}get shaderPreludeCode(){return de.projectionMercator}get vertexShaderPreludeCode(){return de.projectionMercator.vertexSource}get subdivisionGranularity(){return e.aB.noSubdivision}get useGlobeControls(){return!1}get transitionState(){return 0}get latitudeErrorCorrectionRadians(){return 0}destroy(){}updateGPUdependent(t){}getMeshFromTileID(t,i,r,n,s){if(this._cachedMesh)return this._cachedMesh;const o=new e.aC;o.emplaceBack(0,0),o.emplaceBack(e.X,0),o.emplaceBack(0,e.X),o.emplaceBack(e.X,e.X);const a=t.createVertexBuffer(o,me.members),l=e.aD.simpleSegment(0,0,4,2),c=new e.aE;c.emplaceBack(1,0,2),c.emplaceBack(1,2,3);const h=t.createIndexBuffer(c);return this._cachedMesh=new fe(a,h,l),this._cachedMesh}recalculate(){}hasTransition(){return!1}setErrorQueryLatitudeDegrees(t){}}function xe(t,i){const r=e.ab(i.lat,-85.051129,e.aF);return new e.P(e.O(i.lng)*t,e.Q(r)*t)}function ve(t,i){return new e.Y(i.x/t,i.y/t).toLngLat()}function be(t){return t.cameraToCenterDistance*Math.min(.85*Math.tan(e.aa(90-t.pitch)),Math.tan(e.aa(89.25-t.pitch)))}function we(t,i){const r=t.canonical,n=i/e.aG(r.z),s=r.x+Math.pow(2,r.z)*t.wrap,o=e.aq(new Float64Array(16));return e.J(o,o,[s*n,r.y*n,0]),e.K(o,o,[n/e.X,n/e.X,1]),o}function Te(t,i,r,n,s){const o=e.Y.fromLngLat(t,i),a=s*e.aH(1,t.lat),l=a*Math.cos(e.aa(r)),c=Math.sqrt(a*a-l*l),h=c*Math.sin(e.aa(-n)),u=c*Math.cos(e.aa(-n));return new e.Y(o.x+h,o.y+u,o.z+l)}class Pe{constructor(t=0,e=0,i=0,r=0){if(isNaN(t)||t<0||isNaN(e)||e<0||isNaN(i)||i<0||isNaN(r)||r<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=t,this.bottom=e,this.left=i,this.right=r}interpolate(t,i,r){return null!=i.top&&null!=t.top&&(this.top=e.y.number(t.top,i.top,r)),null!=i.bottom&&null!=t.bottom&&(this.bottom=e.y.number(t.bottom,i.bottom,r)),null!=i.left&&null!=t.left&&(this.left=e.y.number(t.left,i.left,r)),null!=i.right&&null!=t.right&&(this.right=e.y.number(t.right,i.right,r)),this}getCenter(t,i){const r=e.ab((this.left+t-this.right)/2,0,t),n=e.ab((this.top+i-this.bottom)/2,0,i);return new e.P(r,n)}equals(t){return this.top===t.top&&this.bottom===t.bottom&&this.left===t.left&&this.right===t.right}clone(){return new Pe(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}function Me(t,e){if(!t.renderWorldCopies||t.lngRange)return;const i=e.lng-t.center.lng;e.lng+=i>180?-360:i<-180?360:0}function Se(t){return Math.max(0,Math.floor(t))}class Ie{constructor(t,i,r,n,s,o){this._callbacks=t,this._tileSize=512,this._renderWorldCopies=void 0===o||!!o,this._minZoom=i||0,this._maxZoom=r||22,this._minPitch=null==n?0:n,this._maxPitch=null==s?60:s,this.setMaxBounds(),this._width=0,this._height=0,this._center=new e.N(0,0),this._elevation=0,this._zoom=0,this._tileZoom=Se(this._zoom),this._scale=e.aG(this._zoom),this._bearingInRadians=0,this._fovInRadians=.6435011087932844,this._pitchInRadians=0,this._rollInRadians=0,this._unmodified=!0,this._edgeInsets=new Pe,this._minElevationForCurrentTile=0,this._autoCalculateNearFarZ=!0}apply(t,i,r){this._latRange=t.latRange,this._lngRange=t.lngRange,this._width=t.width,this._height=t.height,this._center=t.center,this._elevation=t.elevation,this._minElevationForCurrentTile=t.minElevationForCurrentTile,this._zoom=t.zoom,this._tileZoom=Se(this._zoom),this._scale=e.aG(this._zoom),this._bearingInRadians=t.bearingInRadians,this._fovInRadians=t.fovInRadians,this._pitchInRadians=t.pitchInRadians,this._rollInRadians=t.rollInRadians,this._unmodified=t.unmodified,this._edgeInsets=new Pe(t.padding.top,t.padding.bottom,t.padding.left,t.padding.right),this._minZoom=t.minZoom,this._maxZoom=t.maxZoom,this._minPitch=t.minPitch,this._maxPitch=t.maxPitch,this._renderWorldCopies=t.renderWorldCopies,this._cameraToCenterDistance=t.cameraToCenterDistance,this._nearZ=t.nearZ,this._farZ=t.farZ,this._autoCalculateNearFarZ=!r&&t.autoCalculateNearFarZ,i&&this._constrain(),this._calcMatrices()}get pixelsToClipSpaceMatrix(){return this._pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._clipSpaceToPixelsMatrix}get minElevationForCurrentTile(){return this._minElevationForCurrentTile}setMinElevationForCurrentTile(t){this._minElevationForCurrentTile=t}get tileSize(){return this._tileSize}get tileZoom(){return this._tileZoom}get scale(){return this._scale}get width(){return this._width}get height(){return this._height}get bearingInRadians(){return this._bearingInRadians}get lngRange(){return this._lngRange}get latRange(){return this._latRange}get pixelsToGLUnits(){return this._pixelsToGLUnits}get minZoom(){return this._minZoom}setMinZoom(t){this._minZoom!==t&&(this._minZoom=t,this.setZoom(this.getConstrained(this._center,this.zoom).zoom))}get maxZoom(){return this._maxZoom}setMaxZoom(t){this._maxZoom!==t&&(this._maxZoom=t,this.setZoom(this.getConstrained(this._center,this.zoom).zoom))}get minPitch(){return this._minPitch}setMinPitch(t){this._minPitch!==t&&(this._minPitch=t,this.setPitch(Math.max(this.pitch,t)))}get maxPitch(){return this._maxPitch}setMaxPitch(t){this._maxPitch!==t&&(this._maxPitch=t,this.setPitch(Math.min(this.pitch,t)))}get renderWorldCopies(){return this._renderWorldCopies}setRenderWorldCopies(t){void 0===t?t=!0:null===t&&(t=!1),this._renderWorldCopies=t}get worldSize(){return this._tileSize*this._scale}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new e.P(this._width,this._height)}get bearing(){return this._bearingInRadians/Math.PI*180}setBearing(t){const i=e.aI(t,-180,180)*Math.PI/180;var n,s,o,a,l,c,h,u,d;this._bearingInRadians!==i&&(this._unmodified=!1,this._bearingInRadians=i,this._calcMatrices(),this._rotationMatrix=r(),n=this._rotationMatrix,o=-this._bearingInRadians,a=(s=this._rotationMatrix)[0],l=s[1],c=s[2],h=s[3],u=Math.sin(o),d=Math.cos(o),n[0]=a*d+c*u,n[1]=l*d+h*u,n[2]=a*-u+c*d,n[3]=l*-u+h*d)}get rotationMatrix(){return this._rotationMatrix}get pitchInRadians(){return this._pitchInRadians}get pitch(){return this._pitchInRadians/Math.PI*180}setPitch(t){const i=e.ab(t,this.minPitch,this.maxPitch)/180*Math.PI;this._pitchInRadians!==i&&(this._unmodified=!1,this._pitchInRadians=i,this._calcMatrices())}get rollInRadians(){return this._rollInRadians}get roll(){return this._rollInRadians/Math.PI*180}setRoll(t){const e=t/180*Math.PI;this._rollInRadians!==e&&(this._unmodified=!1,this._rollInRadians=e,this._calcMatrices())}get fovInRadians(){return this._fovInRadians}get fov(){return e.aJ(this._fovInRadians)}setFov(t){t=e.ab(t,.1,150),this.fov!==t&&(this._unmodified=!1,this._fovInRadians=e.aa(t),this._calcMatrices())}get zoom(){return this._zoom}setZoom(t){const i=this.getConstrained(this._center,t).zoom;this._zoom!==i&&(this._unmodified=!1,this._zoom=i,this._tileZoom=Math.max(0,Math.floor(i)),this._scale=e.aG(i),this._constrain(),this._calcMatrices())}get center(){return this._center}setCenter(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices())}get elevation(){return this._elevation}setElevation(t){t!==this._elevation&&(this._elevation=t,this._constrain(),this._calcMatrices())}get padding(){return this._edgeInsets.toJSON()}setPadding(t){this._edgeInsets.equals(t)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,t,1),this._calcMatrices())}get centerPoint(){return this._edgeInsets.getCenter(this._width,this._height)}get pixelsPerMeter(){return this._pixelPerMeter}get unmodified(){return this._unmodified}get cameraToCenterDistance(){return this._cameraToCenterDistance}get nearZ(){return this._nearZ}get farZ(){return this._farZ}get autoCalculateNearFarZ(){return this._autoCalculateNearFarZ}overrideNearFarZ(t,e){this._autoCalculateNearFarZ=!1,this._nearZ=t,this._farZ=e,this._calcMatrices()}clearNearFarZOverride(){this._autoCalculateNearFarZ=!0,this._calcMatrices()}isPaddingEqual(t){return this._edgeInsets.equals(t)}interpolatePadding(t,e,i){this._unmodified=!1,this._edgeInsets.interpolate(t,e,i),this._constrain(),this._calcMatrices()}resize(t,e,i=!0){this._width=t,this._height=e,i&&this._constrain(),this._calcMatrices()}getMaxBounds(){return this._latRange&&2===this._latRange.length&&this._lngRange&&2===this._lngRange.length?new G([this._lngRange[0],this._latRange[0]],[this._lngRange[1],this._latRange[1]]):null}setMaxBounds(t){t?(this._lngRange=[t.getWest(),t.getEast()],this._latRange=[t.getSouth(),t.getNorth()],this._constrain()):(this._lngRange=null,this._latRange=[-85.051129,e.aF])}getConstrained(t,e){return this._callbacks.getConstrained(t,e)}getCameraQueryGeometry(t,i){if(1===i.length)return[i[0],t];{let r=t.x,n=t.y,s=t.x,o=t.y;for(const t of i)r=Math.min(r,t.x),n=Math.min(n,t.y),s=Math.max(s,t.x),o=Math.max(o,t.y);return[new e.P(r,n),new e.P(s,n),new e.P(s,o),new e.P(r,o),new e.P(r,n)]}}_constrain(){if(!this.center||!this._width||!this._height||this._constraining)return;this._constraining=!0;const t=this._unmodified,{center:e,zoom:i}=this.getConstrained(this.center,this.zoom);this.setCenter(e),this.setZoom(i),this._unmodified=t,this._constraining=!1}_calcMatrices(){if(this._width&&this._height){this._pixelsToGLUnits=[2/this._width,-2/this._height];let t=e.aq(new Float64Array(16));e.K(t,t,[this._width/2,-this._height/2,1]),e.J(t,t,[1,-1,0]),this._clipSpaceToPixelsMatrix=t,t=e.aq(new Float64Array(16)),e.K(t,t,[1,-1,1]),e.J(t,t,[-1,-1,0]),e.K(t,t,[2/this._width,2/this._height,1]),this._pixelsToClipSpaceMatrix=t,this._cameraToCenterDistance=.5/Math.tan(this.fovInRadians/2)*this._height}this._callbacks.calcMatrices()}calculateCenterFromCameraLngLatAlt(t,i,r,n){const s=void 0!==r?r:this.bearing,o=n=void 0!==n?n:this.pitch,a=e.Y.fromLngLat(t,i),l=-Math.cos(e.aa(o)),c=Math.sin(e.aa(o)),h=c*Math.sin(e.aa(s)),u=-c*Math.cos(e.aa(s));let d=this.elevation;const p=i-d;let f;l*p>=0||Math.abs(l)<.1?(f=1e4,d=i+f*l):f=-p/l;let m,_,g=e.aK(1,a.y),y=0;do{if(y+=1,y>10)break;_=f/g,m=new e.Y(a.x+h*_,a.y+u*_),g=1/m.meterInMercatorCoordinateUnits()}while(Math.abs(f-_*g)>1e-12);return{center:m.toLngLat(),elevation:d,zoom:e.a8(this.height/2/Math.tan(this.fovInRadians/2)/_/this.tileSize)}}recalculateZoomAndCenter(t){if(this.elevation-t==0)return;const i=e.aH(1,this.center.lat)*this.worldSize,r=this.cameraToCenterDistance/i,n=e.Y.fromLngLat(this.center,this.elevation),s=Te(this.center,this.elevation,this.pitch,this.bearing,r);this._elevation=t;const o=this.calculateCenterFromCameraLngLatAlt(s.toLngLat(),e.aK(s.z,n.y),this.bearing,this.pitch);this._elevation=o.elevation,this._center=o.center,this.setZoom(o.zoom)}getCameraPoint(){const t=Math.tan(this.pitchInRadians)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new e.P(t*Math.sin(this.rollInRadians),t*Math.cos(this.rollInRadians)))}getCameraAltitude(){return Math.cos(this.pitchInRadians)*this._cameraToCenterDistance/this._pixelPerMeter+this.elevation}getCameraLngLat(){const t=e.aH(1,this.center.lat)*this.worldSize;return Te(this.center,this.elevation,this.pitch,this.bearing,this.cameraToCenterDistance/t).toLngLat()}getMercatorTileCoordinates(t){if(!t)return[0,0,1,1];const i=t.canonical.z>=0?1<this.max[0]||t.aabb.min[1]>this.max[1]||t.aabb.min[2]>this.max[2]||t.aabb.max[0]0?(e+=t[r]*this.min[r],i+=t[r]*this.max[r]):(i+=t[r]*this.min[r],e+=t[r]*this.max[r]);return e>=0?2:i<0?0:1}}class Ee{distanceToTile2d(t,e,i,r){const n=r.distanceX([t,e]),s=r.distanceY([t,e]);return Math.hypot(n,s)}getWrap(t,e,i){return i}getTileAABB(t,i,r,n){var s,o;let a=r,l=r;if(n.terrain){const c=new e.S(t.z,i,t.z,t.x,t.y),h=n.terrain.getMinMaxElevation(c);a=null!==(s=h.minElevation)&&void 0!==s?s:r,l=null!==(o=h.maxElevation)&&void 0!==o?o:r}const c=1<n||t.padding.top>=.1}allowWorldCopies(){return!0}recalculateCache(){}}class Ae{constructor(t,e,i){this.points=t,this.planes=e,this.aabb=i}static fromInvProjectionMatrix(t,i=1,r=0){const n=Math.pow(2,r),s=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map((r=>{const s=1/(r=e.al([],r,t))[3]/i*n;return e.aO(r,r,[s,s,1/r[3],s])})),o=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map((t=>{const i=e.aP([],s[t[0]],s[t[1]]),r=e.aP([],s[t[2]],s[t[1]]),n=e.aQ([],e.aR([],i,r)),o=-e.aS(n,s[t[1]]);return n.concat(o)})),a=[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY],l=[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY];for(const e of s)for(let t=0;t<3;t++)a[t]=Math.min(a[t],e[t]),l[t]=Math.max(l[t],e[t]);return new Ae(s,o,new Ce(a,l))}}class ze{get pixelsToClipSpaceMatrix(){return this._helper.pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._helper.clipSpaceToPixelsMatrix}get pixelsToGLUnits(){return this._helper.pixelsToGLUnits}get centerOffset(){return this._helper.centerOffset}get size(){return this._helper.size}get rotationMatrix(){return this._helper.rotationMatrix}get centerPoint(){return this._helper.centerPoint}get pixelsPerMeter(){return this._helper.pixelsPerMeter}setMinZoom(t){this._helper.setMinZoom(t)}setMaxZoom(t){this._helper.setMaxZoom(t)}setMinPitch(t){this._helper.setMinPitch(t)}setMaxPitch(t){this._helper.setMaxPitch(t)}setRenderWorldCopies(t){this._helper.setRenderWorldCopies(t)}setBearing(t){this._helper.setBearing(t)}setPitch(t){this._helper.setPitch(t)}setRoll(t){this._helper.setRoll(t)}setFov(t){this._helper.setFov(t)}setZoom(t){this._helper.setZoom(t)}setCenter(t){this._helper.setCenter(t)}setElevation(t){this._helper.setElevation(t)}setMinElevationForCurrentTile(t){this._helper.setMinElevationForCurrentTile(t)}setPadding(t){this._helper.setPadding(t)}interpolatePadding(t,e,i){return this._helper.interpolatePadding(t,e,i)}isPaddingEqual(t){return this._helper.isPaddingEqual(t)}resize(t,e,i=!0){this._helper.resize(t,e,i)}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(t){this._helper.setMaxBounds(t)}overrideNearFarZ(t,e){this._helper.overrideNearFarZ(t,e)}clearNearFarZOverride(){this._helper.clearNearFarZOverride()}getCameraQueryGeometry(t){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),t)}get tileSize(){return this._helper.tileSize}get tileZoom(){return this._helper.tileZoom}get scale(){return this._helper.scale}get worldSize(){return this._helper.worldSize}get width(){return this._helper.width}get height(){return this._helper.height}get lngRange(){return this._helper.lngRange}get latRange(){return this._helper.latRange}get minZoom(){return this._helper.minZoom}get maxZoom(){return this._helper.maxZoom}get zoom(){return this._helper.zoom}get center(){return this._helper.center}get minPitch(){return this._helper.minPitch}get maxPitch(){return this._helper.maxPitch}get pitch(){return this._helper.pitch}get pitchInRadians(){return this._helper.pitchInRadians}get roll(){return this._helper.roll}get rollInRadians(){return this._helper.rollInRadians}get bearing(){return this._helper.bearing}get bearingInRadians(){return this._helper.bearingInRadians}get fov(){return this._helper.fov}get fovInRadians(){return this._helper.fovInRadians}get elevation(){return this._helper.elevation}get minElevationForCurrentTile(){return this._helper.minElevationForCurrentTile}get padding(){return this._helper.padding}get unmodified(){return this._helper.unmodified}get renderWorldCopies(){return this._helper.renderWorldCopies}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}get nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}setTransitionState(t,e){}constructor(t,e,i,r,n){this._posMatrixCache=new Map,this._alignedPosMatrixCache=new Map,this._fogMatrixCacheF32=new Map,this._helper=new Ie({calcMatrices:()=>{this._calcMatrices()},getConstrained:(t,e)=>this.getConstrained(t,e)},t,e,i,r,n),this._coveringTilesDetailsProvider=new Ee}clone(){const t=new ze;return t.apply(this),t}apply(t,e,i){this._helper.apply(t,e,i)}get cameraPosition(){return this._cameraPosition}get projectionMatrix(){return this._projectionMatrix}get modelViewProjectionMatrix(){return this._viewProjMatrix}get inverseProjectionMatrix(){return this._invProjMatrix}get mercatorMatrix(){return this._mercatorMatrix}getVisibleUnwrappedCoordinates(t){const i=[new e.aT(0,t)];if(this._helper._renderWorldCopies){const r=this.screenPointToMercatorCoordinate(new e.P(0,0)),n=this.screenPointToMercatorCoordinate(new e.P(this._helper._width,0)),s=this.screenPointToMercatorCoordinate(new e.P(this._helper._width,this._helper._height)),o=this.screenPointToMercatorCoordinate(new e.P(0,this._helper._height)),a=Math.floor(Math.min(r.x,n.x,s.x,o.x)),l=Math.floor(Math.max(r.x,n.x,s.x,o.x)),c=1;for(let h=a-c;h<=l+c;h++)0!==h&&i.push(new e.aT(h,t))}return i}getCameraFrustum(){return Ae.fromInvProjectionMatrix(this._invViewProjMatrix,this.worldSize)}getClippingPlane(){return null}getCoveringTilesDetailsProvider(){return this._coveringTilesDetailsProvider}recalculateZoomAndCenter(t){const e=this.screenPointToLocation(this.centerPoint,t),i=t?t.getElevationForLngLatZoom(e,this._helper._tileZoom):0;this._helper.recalculateZoomAndCenter(i)}setLocationAtPoint(t,i){const r=e.aH(this.elevation,this.center.lat),n=this.screenPointToMercatorCoordinateAtZ(i,r),s=this.screenPointToMercatorCoordinateAtZ(this.centerPoint,r),o=e.Y.fromLngLat(t),a=new e.Y(o.x-(n.x-s.x),o.y-(n.y-s.y));this.setCenter(null==a?void 0:a.toLngLat()),this._helper._renderWorldCopies&&this.setCenter(this.center.wrap())}locationToScreenPoint(t,i){return i?this.coordinatePoint(e.Y.fromLngLat(t),i.getElevationForLngLatZoom(t,this._helper._tileZoom),this._pixelMatrix3D):this.coordinatePoint(e.Y.fromLngLat(t))}screenPointToLocation(t,e){var i;return null===(i=this.screenPointToMercatorCoordinate(t,e))||void 0===i?void 0:i.toLngLat()}screenPointToMercatorCoordinate(t,e){if(e){const i=e.pointCoordinate(t);if(null!=i)return i}return this.screenPointToMercatorCoordinateAtZ(t)}screenPointToMercatorCoordinateAtZ(t,i){const r=i||0,n=[t.x,t.y,0,1],s=[t.x,t.y,1,1];e.al(n,n,this._pixelMatrixInverse),e.al(s,s,this._pixelMatrixInverse);const o=n[3],a=s[3],l=n[1]/o,c=s[1]/a,h=n[2]/o,u=s[2]/a,d=h===u?0:(r-h)/(u-h);return new e.Y(e.y.number(n[0]/o,s[0]/a,d)/this.worldSize,e.y.number(l,c,d)/this.worldSize,r)}coordinatePoint(t,i=0,r=this._pixelMatrix){const n=[t.x*this.worldSize,t.y*this.worldSize,i,1];return e.al(n,n,r),new e.P(n[0]/n[3],n[1]/n[3])}getBounds(){const t=Math.max(0,this._helper._height/2-be(this));return(new G).extend(this.screenPointToLocation(new e.P(0,t))).extend(this.screenPointToLocation(new e.P(this._helper._width,t))).extend(this.screenPointToLocation(new e.P(this._helper._width,this._helper._height))).extend(this.screenPointToLocation(new e.P(0,this._helper._height)))}isPointOnMapSurface(t,e){return e?null!=e.pointCoordinate(t):t.y>this.height/2-be(this)}calculatePosMatrix(t,i=!1,r){var n;const s=null!==(n=t.key)&&void 0!==n?n:e.aU(t.wrap,t.canonical.z,t.canonical.z,t.canonical.x,t.canonical.y),o=i?this._alignedPosMatrixCache:this._posMatrixCache;if(o.has(s)){const t=o.get(s);return r?t.f32:t.f64}const a=we(t,this.worldSize);e.L(a,i?this._alignedProjMatrix:this._viewProjMatrix,a);const l={f64:a,f32:new Float32Array(a)};return o.set(s,l),r?l.f32:l.f64}calculateFogMatrix(t){const i=t.key,r=this._fogMatrixCacheF32;if(r.has(i))return r.get(i);const n=we(t,this.worldSize);return e.L(n,this._fogMatrix,n),r.set(i,new Float32Array(n)),r.get(i)}getConstrained(t,i){i=e.ab(+i,this.minZoom,this.maxZoom);const r={center:new e.N(t.lng,t.lat),zoom:i};let n=this._helper._lngRange;this._helper._renderWorldCopies||null!==n||(n=[-179.9999999999,180-1e-10]);const s=this.tileSize*e.aG(r.zoom);let o=0,a=s,l=0,c=s,h=0,u=0;const{x:d,y:p}=this.size;if(this._helper._latRange){const t=this._helper._latRange;o=e.Q(t[1])*s,a=e.Q(t[0])*s,a-oa&&(g=a-t)}if(n){const t=(l+c)/2;let i=f;this._helper._renderWorldCopies&&(i=e.aI(f,t-s/2,t+s/2));const r=d/2;i-rc&&(_=c-r)}if(void 0!==_||void 0!==g){const t=new e.P(null!=_?_:f,null!=g?g:m);r.center=ve(s,t).wrap()}return r}calculateCenterFromCameraLngLatAlt(t,e,i,r){return this._helper.calculateCenterFromCameraLngLatAlt(t,e,i,r)}_calculateNearFarZIfNeeded(t,i,r){if(!this._helper.autoCalculateNearFarZ)return;const n=Math.min(this.elevation,this.minElevationForCurrentTile,this.getCameraAltitude()-100),s=t-n*this._helper._pixelPerMeter/Math.cos(i),o=n<0?s:t,a=Math.PI/2+this.pitchInRadians,l=e.aa(this.fov)*(Math.abs(Math.cos(e.aa(this.roll)))*this.height+Math.abs(Math.sin(e.aa(this.roll)))*this.width)/this.height*(.5+r.y/this.height),c=Math.sin(l)*o/Math.sin(e.ab(Math.PI-a-l,.01,Math.PI-.01)),h=be(this),u=Math.atan(h/this._helper.cameraToCenterDistance),d=e.aa(.75),p=u>d?2*u*(.5+r.y/(2*h)):d,f=Math.sin(p)*o/Math.sin(e.ab(Math.PI-a-p,.01,Math.PI-.01)),m=Math.min(c,f);this._helper._farZ=1.01*(Math.cos(Math.PI/2-i)*m+o),this._helper._nearZ=this._helper._height/50}_calcMatrices(){if(!this._helper._height)return;const t=this.centerOffset,i=xe(this.worldSize,this.center),r=i.x,n=i.y;this._helper._pixelPerMeter=e.aH(1,this.center.lat)*this.worldSize;const s=e.aa(Math.min(this.pitch,89.25)),o=Math.max(this._helper.cameraToCenterDistance/2,this._helper.cameraToCenterDistance+this._helper._elevation*this._helper._pixelPerMeter/Math.cos(s));let a;this._calculateNearFarZIfNeeded(o,s,t),a=new Float64Array(16),e.aV(a,this.fovInRadians,this._helper._width/this._helper._height,this._helper._nearZ,this._helper._farZ),this._invProjMatrix=new Float64Array(16),e.an(this._invProjMatrix,a),a[8]=2*-t.x/this._helper._width,a[9]=2*t.y/this._helper._height,this._projectionMatrix=e.aW(a),e.K(a,a,[1,-1,1]),e.J(a,a,[0,0,-this._helper.cameraToCenterDistance]),e.aX(a,a,-this.rollInRadians),e.aY(a,a,this.pitchInRadians),e.aX(a,a,-this.bearingInRadians),e.J(a,a,[-r,-n,0]),this._mercatorMatrix=e.K([],a,[this.worldSize,this.worldSize,this.worldSize]),e.K(a,a,[1,1,this._helper._pixelPerMeter]),this._pixelMatrix=e.L(new Float64Array(16),this.clipSpaceToPixelsMatrix,a),e.J(a,a,[0,0,-this.elevation]),this._viewProjMatrix=a,this._invViewProjMatrix=e.an([],a);const l=[0,0,-1,1];e.al(l,l,this._invViewProjMatrix),this._cameraPosition=[l[0]/l[3],l[1]/l[3],l[2]/l[3]],this._fogMatrix=new Float64Array(16),e.aV(this._fogMatrix,this.fovInRadians,this.width/this.height,o,this._helper._farZ),this._fogMatrix[8]=2*-t.x/this.width,this._fogMatrix[9]=2*t.y/this.height,e.K(this._fogMatrix,this._fogMatrix,[1,-1,1]),e.J(this._fogMatrix,this._fogMatrix,[0,0,-this.cameraToCenterDistance]),e.aX(this._fogMatrix,this._fogMatrix,-this.rollInRadians),e.aY(this._fogMatrix,this._fogMatrix,this.pitchInRadians),e.aX(this._fogMatrix,this._fogMatrix,-this.bearingInRadians),e.J(this._fogMatrix,this._fogMatrix,[-r,-n,0]),e.K(this._fogMatrix,this._fogMatrix,[1,1,this._helper._pixelPerMeter]),e.J(this._fogMatrix,this._fogMatrix,[0,0,-this.elevation]),this._pixelMatrix3D=e.L(new Float64Array(16),this.clipSpaceToPixelsMatrix,a);const c=this._helper._width%2/2,h=this._helper._height%2/2,u=Math.cos(this.bearingInRadians),d=Math.sin(-this.bearingInRadians),p=r-Math.round(r)+u*c+d*h,f=n-Math.round(n)+u*h+d*c,m=new Float64Array(a);if(e.J(m,m,[p>.5?p-1:p,f>.5?f-1:f,0]),this._alignedProjMatrix=m,a=e.an(new Float64Array(16),this._pixelMatrix),!a)throw new Error("failed to invert matrix");this._pixelMatrixInverse=a,this._clearMatrixCaches()}_clearMatrixCaches(){this._posMatrixCache.clear(),this._alignedPosMatrixCache.clear(),this._fogMatrixCacheF32.clear()}maxPitchScaleFactor(){if(!this._pixelMatrixInverse)return 1;const t=this.screenPointToMercatorCoordinate(new e.P(0,0)),i=[t.x*this.worldSize,t.y*this.worldSize,0,1];return e.al(i,i,this._pixelMatrix)[3]/this._helper.cameraToCenterDistance}getCameraPoint(){return this._helper.getCameraPoint()}getCameraAltitude(){return this._helper.getCameraAltitude()}getCameraLngLat(){const t=e.aH(1,this.center.lat)*this.worldSize;return Te(this.center,this.elevation,this.pitch,this.bearing,this._helper.cameraToCenterDistance/t).toLngLat()}lngLatToCameraDepth(t,i){const r=e.Y.fromLngLat(t),n=[r.x*this.worldSize,r.y*this.worldSize,i,1];return e.al(n,n,this._viewProjMatrix),n[2]/n[3]}getProjectionData(t){const{overscaledTileID:i,aligned:r,applyTerrainMatrix:n}=t,s=this._helper.getMercatorTileCoordinates(i),o=i?this.calculatePosMatrix(i,r,!0):null;let a;return a=i&&i.terrainRttPosMatrix32f&&n?i.terrainRttPosMatrix32f:o||e.aZ(),{mainMatrix:a,tileMercatorCoords:s,clippingPlane:[0,0,0,0],projectionTransition:0,fallbackMatrix:a}}isLocationOccluded(t){return!1}getPixelScale(){return 1}getCircleRadiusCorrection(){return 1}getPitchedTextCorrection(t,e,i){return 1}transformLightDirection(t){return e.aN(t)}getRayDirectionFromPixel(t){throw new Error("Not implemented.")}projectTileCoordinates(t,i,r,n){const s=this.calculatePosMatrix(r);let o;n?(o=[t,i,n(t,i),1],e.al(o,o,s)):(o=[t,i,0,1],Ot(o,o,s));const a=o[3];return{point:new e.P(o[0]/a,o[1]/a),signedDistanceFromCamera:a,isOccluded:!1}}populateCache(t){for(const e of t)this.calculatePosMatrix(e)}getMatrixForModel(t,i){const r=e.Y.fromLngLat(t,i),n=r.meterInMercatorCoordinateUnits(),s=e.a_();return e.J(s,s,[r.x,r.y,r.z]),e.aX(s,s,Math.PI),e.aY(s,s,Math.PI/2),e.K(s,s,[-n,n,n]),s}getProjectionDataForCustomLayer(t=!0){const i=new e.S(0,0,0,0,0),r=this.getProjectionData({overscaledTileID:i,applyGlobeMatrix:t}),n=we(i,this.worldSize);e.L(n,this._viewProjMatrix,n),r.tileMercatorCoords=[0,0,1,1];const s=[e.X,e.X,this.worldSize/this._helper.pixelsPerMeter],o=e.a$();return e.K(o,n,s),r.fallbackMatrix=o,r.mainMatrix=o,r}getFastPathSimpleProjectionMatrix(t){return this.calculatePosMatrix(t)}}function ke(){e.w("Map cannot fit within canvas with the given bounds, padding, and/or offset.")}function De(t){if(t.useSlerp)if(t.k<1){const i=e.b0(t.startEulerAngles.roll,t.startEulerAngles.pitch,t.startEulerAngles.bearing),r=e.b0(t.endEulerAngles.roll,t.endEulerAngles.pitch,t.endEulerAngles.bearing),n=new Float64Array(4);e.b1(n,i,r,t.k);const s=e.b2(n);t.tr.setRoll(s.roll),t.tr.setPitch(s.pitch),t.tr.setBearing(s.bearing)}else t.tr.setRoll(t.endEulerAngles.roll),t.tr.setPitch(t.endEulerAngles.pitch),t.tr.setBearing(t.endEulerAngles.bearing);else t.tr.setRoll(e.y.number(t.startEulerAngles.roll,t.endEulerAngles.roll,t.k)),t.tr.setPitch(e.y.number(t.startEulerAngles.pitch,t.endEulerAngles.pitch,t.k)),t.tr.setBearing(e.y.number(t.startEulerAngles.bearing,t.endEulerAngles.bearing,t.k))}function Re(t,i,r,n,s){const o=s.padding,a=xe(s.worldSize,r.getNorthWest()),l=xe(s.worldSize,r.getNorthEast()),c=xe(s.worldSize,r.getSouthEast()),h=xe(s.worldSize,r.getSouthWest()),u=e.aa(-n),d=a.rotate(u),p=l.rotate(u),f=c.rotate(u),m=h.rotate(u),_=new e.P(Math.max(d.x,p.x,m.x,f.x),Math.max(d.y,p.y,m.y,f.y)),g=new e.P(Math.min(d.x,p.x,m.x,f.x),Math.min(d.y,p.y,m.y,f.y)),y=_.sub(g),x=(s.width-(o.left+o.right+i.left+i.right))/y.x,v=(s.height-(o.top+o.bottom+i.top+i.bottom))/y.y;if(v<0||x<0)return void ke();const b=Math.min(e.a8(s.scale*Math.min(x,v)),t.maxZoom),w=e.P.convert(t.offset),T=new e.P((i.left-i.right)/2,(i.top-i.bottom)/2).rotate(e.aa(n)),P=w.add(T).mult(s.scale/e.aG(b));return{center:ve(s.worldSize,a.add(c).div(2).sub(P)),zoom:b,bearing:n}}class Le{get useGlobeControls(){return!1}handlePanInertia(t,e){return{easingOffset:t,easingCenter:e.center}}handleMapControlsRollPitchBearingZoom(t,e){t.bearingDelta&&e.setBearing(e.bearing+t.bearingDelta),t.pitchDelta&&e.setPitch(e.pitch+t.pitchDelta),t.rollDelta&&e.setRoll(e.roll+t.rollDelta),t.zoomDelta&&e.setZoom(e.zoom+t.zoomDelta)}handleMapControlsPan(t,e,i){t.around.distSqr(e.centerPoint)<.01||e.setLocationAtPoint(i,t.around)}cameraForBoxAndBearing(t,e,i,r,n){return Re(t,e,i,r,n)}handleJumpToCenterZoom(t,i){t.zoom!==(void 0!==i.zoom?+i.zoom:t.zoom)&&t.setZoom(+i.zoom),void 0!==i.center&&t.setCenter(e.N.convert(i.center))}handleEaseTo(t,i){const r=t.zoom,n=t.padding,s={roll:t.roll,pitch:t.pitch,bearing:t.bearing},o={roll:void 0===i.roll?t.roll:i.roll,pitch:void 0===i.pitch?t.pitch:i.pitch,bearing:void 0===i.bearing?t.bearing:i.bearing},a=void 0!==i.zoom,l=!t.isPaddingEqual(i.padding);let c=!1;const h=a?+i.zoom:t.zoom;let u=t.centerPoint.add(i.offsetAsPoint);const d=t.screenPointToLocation(u),{center:p,zoom:f}=t.getConstrained(e.N.convert(i.center||d),null!=h?h:r);Me(t,p);const m=xe(t.worldSize,d),_=xe(t.worldSize,p).sub(m),g=e.aG(f-r);return c=f!==r,{easeFunc:a=>{if(c&&t.setZoom(e.y.number(r,f,a)),e.b3(s,o)||De({startEulerAngles:s,endEulerAngles:o,tr:t,k:a,useSlerp:s.roll!=o.roll}),l&&(t.interpolatePadding(n,i.padding,a),u=t.centerPoint.add(i.offsetAsPoint)),i.around)t.setLocationAtPoint(i.around,i.aroundPoint);else{const i=e.aG(t.zoom-r),n=f>r?Math.min(2,g):Math.max(.5,g),s=Math.pow(n,1-a),o=ve(t.worldSize,m.add(_.mult(a*s)).mult(i));t.setLocationAtPoint(t.renderWorldCopies?o.wrap():o,u)}},isZooming:c,elevationCenter:p}}handleFlyTo(t,i){const r=void 0!==i.zoom,n=t.zoom,s=t.getConstrained(e.N.convert(i.center||i.locationAtOffset),r?+i.zoom:n),o=s.center,a=s.zoom;Me(t,o);const l=xe(t.worldSize,i.locationAtOffset),c=xe(t.worldSize,o).sub(l),h=c.mag(),u=e.aG(a-n);let d;if(void 0!==i.minZoom){const r=Math.min(+i.minZoom,n,a),s=t.getConstrained(o,r).zoom;d=e.aG(s-n)}return{easeFunc:(i,r,s,h)=>{t.setZoom(1===i?a:n+e.a8(r));const u=1===i?o:ve(t.worldSize,l.add(c.mult(s)).mult(r));t.setLocationAtPoint(t.renderWorldCopies?u.wrap():u,h)},scaleOfZoom:u,targetCenter:o,scaleOfMinZoom:d,pixelPathLength:h}}}class Fe{constructor(t,e,i){this.blendFunction=t,this.blendColor=e,this.mask=i}}Fe.Replace=[1,0],Fe.disabled=new Fe(Fe.Replace,e.b4.transparent,[!1,!1,!1,!1]),Fe.unblended=new Fe(Fe.Replace,e.b4.transparent,[!0,!0,!0,!0]),Fe.alphaBlended=new Fe([1,771],e.b4.transparent,[!0,!0,!0,!0]);const Be=2305;class Oe{constructor(t,e,i){this.enable=t,this.mode=e,this.frontFace=i}}Oe.disabled=new Oe(!1,1029,Be),Oe.backCCW=new Oe(!0,1029,Be),Oe.frontCCW=new Oe(!0,1028,Be);class je{constructor(t,e,i){this.func=t,this.mask=e,this.range=i}}je.ReadOnly=!1,je.ReadWrite=!0,je.disabled=new je(519,je.ReadOnly,[0,1]);const Ve=7680;class Ne{constructor(t,e,i,r,n,s){this.test=t,this.ref=e,this.mask=i,this.fail=r,this.depthFail=n,this.pass=s}}Ne.disabled=new Ne({func:519,mask:0},0,0,Ve,Ve,Ve);const Ue=new WeakMap;function Ze(t){var e;if(Ue.has(t))return Ue.get(t);{const i=null===(e=t.getParameter(t.VERSION))||void 0===e?void 0:e.startsWith("WebGL 2.0");return Ue.set(t,i),i}}class Ge{get awaitingQuery(){return!!this._readbackQueue}constructor(t){this._readbackWaitFrames=4,this._measureWaitFrames=6,this._texWidth=1,this._texHeight=1,this._measuredError=0,this._updateCount=0,this._lastReadbackFrame=-1e3,this._readbackQueue=null,this._cachedRenderContext=t;const i=t.context,r=i.gl;this._texFormat=r.RGBA,this._texType=r.UNSIGNED_BYTE;const n=new e.aC;n.emplaceBack(-1,-1),n.emplaceBack(2,-1),n.emplaceBack(-1,2);const s=new e.aE;s.emplaceBack(0,1,2),this._fullscreenTriangle=new fe(i.createVertexBuffer(n,me.members),i.createIndexBuffer(s),e.aD.simpleSegment(0,0,n.length,s.length)),this._resultBuffer=new Uint8Array(4),i.activeTexture.set(r.TEXTURE1);const o=r.createTexture();r.bindTexture(r.TEXTURE_2D,o),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.NEAREST),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.NEAREST),r.texImage2D(r.TEXTURE_2D,0,this._texFormat,this._texWidth,this._texHeight,0,this._texFormat,this._texType,null),this._fbo=i.createFramebuffer(this._texWidth,this._texHeight,!1,!1),this._fbo.colorAttachment.set(o),Ze(r)&&(this._pbo=r.createBuffer(),r.bindBuffer(r.PIXEL_PACK_BUFFER,this._pbo),r.bufferData(r.PIXEL_PACK_BUFFER,4,r.STREAM_READ),r.bindBuffer(r.PIXEL_PACK_BUFFER,null))}destroy(){const t=this._cachedRenderContext.context.gl;this._fullscreenTriangle.destroy(),this._fbo.destroy(),t.deleteBuffer(this._pbo),this._fullscreenTriangle=null,this._fbo=null,this._pbo=null,this._resultBuffer=null}updateErrorLoop(t,e){const i=this._updateCount;return this._readbackQueue?i>=this._readbackQueue.frameNumberIssued+this._readbackWaitFrames&&this._tryReadback():i>=this._lastReadbackFrame+this._measureWaitFrames&&this._renderErrorTexture(t,e),this._updateCount++,this._measuredError}_bindFramebuffer(){const t=this._cachedRenderContext.context,e=t.gl;t.activeTexture.set(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,this._fbo.colorAttachment.get()),t.bindFramebuffer.set(this._fbo.framebuffer)}_renderErrorTexture(t,i){const r=this._cachedRenderContext.context,n=r.gl;if(this._bindFramebuffer(),r.viewport.set([0,0,this._texWidth,this._texHeight]),r.clear({color:e.b4.transparent}),this._cachedRenderContext.useProgram("projectionErrorMeasurement").draw(r,n.TRIANGLES,je.disabled,Ne.disabled,Fe.unblended,Oe.disabled,((t,e)=>({u_input:t,u_output_expected:e}))(t,i),null,null,"$clipping",this._fullscreenTriangle.vertexBuffer,this._fullscreenTriangle.indexBuffer,this._fullscreenTriangle.segments),this._pbo&&Ze(n)){n.bindBuffer(n.PIXEL_PACK_BUFFER,this._pbo),n.readBuffer(n.COLOR_ATTACHMENT0),n.readPixels(0,0,this._texWidth,this._texHeight,this._texFormat,this._texType,0),n.bindBuffer(n.PIXEL_PACK_BUFFER,null);const t=n.fenceSync(n.SYNC_GPU_COMMANDS_COMPLETE,0);n.flush(),this._readbackQueue={frameNumberIssued:this._updateCount,sync:t}}else this._readbackQueue={frameNumberIssued:this._updateCount,sync:null}}_tryReadback(){const t=this._cachedRenderContext.context.gl;if(this._pbo&&this._readbackQueue&&Ze(t)){const i=t.clientWaitSync(this._readbackQueue.sync,0,0);if(i===t.WAIT_FAILED)return e.w("WebGL2 clientWaitSync failed."),this._readbackQueue=null,void(this._lastReadbackFrame=this._updateCount);if(i===t.TIMEOUT_EXPIRED)return;t.bindBuffer(t.PIXEL_PACK_BUFFER,this._pbo),t.getBufferSubData(t.PIXEL_PACK_BUFFER,0,this._resultBuffer,0,4),t.bindBuffer(t.PIXEL_PACK_BUFFER,null)}else this._bindFramebuffer(),t.readPixels(0,0,this._texWidth,this._texHeight,this._texFormat,this._texType,this._resultBuffer);this._readbackQueue=null,this._measuredError=Ge._parseRGBA8float(this._resultBuffer),this._lastReadbackFrame=this._updateCount}static _parseRGBA8float(t){let e=0;return e+=t[0]/256,e+=t[1]/65536,e+=t[2]/16777216,t[3]<127&&(e=-e),e/128}}const $e=e.X/128;function qe(t,i){const r=void 0!==t.granularity?Math.max(t.granularity,1):1,n=r+(t.generateBorders?2:0),s=r+(t.extendToNorthPole||t.generateBorders?1:0)+(t.extendToSouthPole||t.generateBorders?1:0),o=n+1,a=s+1,l=t.generateBorders?-1:0,c=t.generateBorders||t.extendToNorthPole?-1:0,h=r+(t.generateBorders?1:0),u=r+(t.generateBorders||t.extendToSouthPole?1:0),d=o*a,p=n*s*6,f=o*a>65536;if(f&&"16bit"===i)throw new Error("Granularity is too large and meshes would not fit inside 16 bit vertex indices.");const m=f||"32bit"===i,_=new Int16Array(2*d);let g=0;for(let v=c;v<=u;v++)for(let i=l;i<=h;i++){let n=i/r*e.X;-1===i&&(n=-64),i===r+1&&(n=e.X+$e);let s=v/r*e.X;-1===v&&(s=t.extendToNorthPole?e.b6:-64),v===r+1&&(s=t.extendToSouthPole?e.b7:e.X+$e),_[g++]=n,_[g++]=s}const y=m?new Uint32Array(p):new Uint16Array(p);let x=0;for(let e=0;e0}get latitudeErrorCorrectionRadians(){return this._verticalPerspectiveProjection.latitudeErrorCorrectionRadians}get currentProjection(){return this.useGlobeRendering?this._verticalPerspectiveProjection:this._mercatorProjection}get name(){return"globe"}get useSubdivision(){return this.currentProjection.useSubdivision}get shaderVariantName(){return this.currentProjection.shaderVariantName}get shaderDefine(){return this.currentProjection.shaderDefine}get shaderPreludeCode(){return this.currentProjection.shaderPreludeCode}get vertexShaderPreludeCode(){return this.currentProjection.vertexShaderPreludeCode}get subdivisionGranularity(){return this.currentProjection.subdivisionGranularity}get useGlobeControls(){return this.transitionState>0}destroy(){this._mercatorProjection.destroy(),this._verticalPerspectiveProjection.destroy()}updateGPUdependent(t){this._mercatorProjection.updateGPUdependent(t),this._verticalPerspectiveProjection.updateGPUdependent(t)}getMeshFromTileID(t,e,i,r,n){return this.currentProjection.getMeshFromTileID(t,e,i,r,n)}setProjection(t){this._transitionable.setValue("type",(null==t?void 0:t.type)||"mercator")}updateTransitions(t){this._transitioning=this._transitionable.transitioned(t,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()||this.currentProjection.hasTransition()}recalculate(t){this.properties=this._transitioning.possiblyEvaluate(t)}setErrorQueryLatitudeDegrees(t){this._verticalPerspectiveProjection.setErrorQueryLatitudeDegrees(t),this._mercatorProjection.setErrorQueryLatitudeDegrees(t)}}function Ye(t){const e=ti(t.worldSize,t.center.lat);return 2*Math.PI*e}function Je(t,i,r,n,s){const o=1/(1<1e-6){const n=t[0]/r,s=Math.acos(t[2]/r),o=(n>0?s:-s)/Math.PI*180;return new e.N(e.aI(o,-180,180),i)}return new e.N(0,i)}function ii(t){return Math.cos(t*Math.PI/180)}function ri(t,i){const r=ii(t),n=ii(i);return e.a8(n/r)}function ni(t,i){const r=t.rotate(i.bearingInRadians),n=i.zoom+ri(i.center.lat,0),s=e.b9(1/ii(i.center.lat),1/ii(Math.min(Math.abs(i.center.lat),60)),e.bc(n,7,3,0,1)),o=360/Ye({worldSize:i.worldSize,center:{lat:i.center.lat}});return new e.N(i.center.lng-r.x*o*s,e.ab(i.center.lat+r.y*o,-85.051129,e.aF))}function si(t){const e=.5*t,i=Math.sin(e),r=Math.cos(e);return Math.log(i+r)-Math.log(r-i)}function oi(t,i,r,n){const s=t.lat+r*n;if(Math.abs(r)>1){const o=(Math.sign(t.lat+r)!==Math.sign(t.lat)?-Math.abs(t.lat):Math.abs(t.lat))*Math.PI/180,a=Math.abs(t.lat+r)*Math.PI/180,l=si(o+n*(a-o)),c=si(o),h=si(a);return new e.N(t.lng+i*((l-c)/(h-c)),s)}return new e.N(t.lng+i*n,s)}class ai{constructor(t){this._cachePrevious=new Map,this._cache=new Map,this._hadAnyChanges=!1,this._aabbFactory=t}recalculateCache(){if(!this._hadAnyChanges)return;const t=this._cachePrevious;this._cachePrevious=this._cache,this._cache=t,this._cache.clear(),this._hadAnyChanges=!1}getTileAABB(t,e,i,r){const n=`${t.z}_${t.x}_${t.y}`,s=this._cache.get(n);if(s)return s;const o=this._cachePrevious.get(n);if(o)return this._cache.set(n,o),o;const a=this._aabbFactory(t,e,i,r);return this._cache.set(n,a),this._hadAnyChanges=!0,a}}function li(t,e,i){const r=t-e;return r<0?-r:Math.max(0,r-i)}function ci(t,e,i,r,n){const s=t-i;let o;return o=s<0?Math.min(-s,1+s-n):s>1?Math.min(Math.max(s-n,0),1-s):0,Math.max(o,li(e,r,n))}class hi{constructor(){this._aabbCache=new ai(this._computeTileAABB)}recalculateCache(){this._aabbCache.recalculateCache()}distanceToTile2d(t,e,i,r){const n=1<4}allowWorldCopies(){return!1}getTileAABB(t,e,i,r){return this._aabbCache.getTileAABB(t,e,i,r)}_computeTileAABB(t,i,r,n){if(t.z<=0)return new Ce([-1,-1,-1],[1,1,1]);if(1===t.z)return new Ce([0===t.x?-1:0,0===t.y?0:-1,-1],[0===t.x?0:1,0===t.y?1:0,1]);{const i=[Je(0,0,t.x,t.y,t.z),Je(e.X,0,t.x,t.y,t.z),Je(e.X,e.X,t.x,t.y,t.z),Je(0,e.X,t.x,t.y,t.z)],r=[1,1,1],n=[-1,-1,-1];for(const t of i)for(let e=0;e<3;e++)r[e]=Math.min(r[e],t[e]),n[e]=Math.max(n[e],t[e]);if(0===t.y||t.y===(1<{this._calcMatrices()},getConstrained:(t,e)=>this.getConstrained(t,e)}),this._coveringTilesDetailsProvider=new hi}clone(){const t=new ui;return t.apply(this),t}apply(t,e){this._globeLatitudeErrorCorrectionRadians=e||0,this._helper.apply(t)}get projectionMatrix(){return this._projectionMatrix}get modelViewProjectionMatrix(){return this._globeViewProjMatrixNoCorrection}get inverseProjectionMatrix(){return this._globeProjMatrixInverted}get cameraPosition(){const t=e.bf();return t[0]=this._cameraPosition[0],t[1]=this._cameraPosition[1],t[2]=this._cameraPosition[2],t}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}getProjectionData(t){const{overscaledTileID:e,applyGlobeMatrix:i}=t,r=this._helper.getMercatorTileCoordinates(e);return{mainMatrix:this._globeViewProjMatrix32f,tileMercatorCoords:r,clippingPlane:this._cachedClippingPlane,projectionTransition:i?1:0,fallbackMatrix:this._globeViewProjMatrix32f}}_computeClippingPlane(t){const i=this.pitchInRadians,r=this.cameraToCenterDistance/t,n=Math.sin(i)*r,s=Math.cos(i)*r+1,o=1/Math.sqrt(n*n+s*s)*1;let a=-n,l=s;const c=Math.sqrt(a*a+l*l);a/=c,l/=c;const h=[0,a,l];return e.bg(h,h,[0,0,0],-this.bearingInRadians),e.bh(h,h,[0,0,0],-1*this.center.lat*Math.PI/180),e.bi(h,h,[0,0,0],this.center.lng*Math.PI/180),e.aL(h,h,.25),[...h,.25*-o]}isLocationOccluded(t){return!this.isSurfacePointVisible(Qe(t))}transformLightDirection(t){const i=this._helper._center.lng*Math.PI/180,r=this._helper._center.lat*Math.PI/180,n=Math.cos(r),s=[Math.sin(i)*n,Math.sin(r),Math.cos(i)*n],o=[s[2],0,-s[0]],a=[0,0,0];e.aR(a,o,s),e.aQ(o,o),e.aQ(a,a);const l=[0,0,0];return e.aQ(l,[o[0]*t[0]+a[0]*t[1]+s[0]*t[2],o[1]*t[0]+a[1]*t[1]+s[1]*t[2],o[2]*t[0]+a[2]*t[1]+s[2]*t[2]]),l}getPixelScale(){return 1/Math.cos(this._helper._center.lat*Math.PI/180)}getCircleRadiusCorrection(){return Math.cos(this._helper._center.lat*Math.PI/180)}getPitchedTextCorrection(t,i,r){const n=function(t,i,r){const n=1/(1<s&&(s=t),ia&&(a=i)}const h=[c.lng+o,c.lat+l,c.lng+s,c.lat+a];return this.isSurfacePointOnScreen([0,1,0])&&(h[3]=90,h[0]=-180,h[2]=180),this.isSurfacePointOnScreen([0,-1,0])&&(h[1]=-90,h[0]=-180,h[2]=180),new G(h)}getConstrained(t,i){const r=e.ab(t.lat,-85.051129,e.aF),n=e.ab(+i,this.minZoom+ri(0,r),this.maxZoom);return{center:new e.N(t.lng,r),zoom:n}}calculateCenterFromCameraLngLatAlt(t,e,i,r){return this._helper.calculateCenterFromCameraLngLatAlt(t,e,i,r)}setLocationAtPoint(t,i){const r=Qe(this.unprojectScreenPoint(i)),n=Qe(t),s=e.bf();e.bl(s);const o=e.bf();e.bi(o,r,s,-this.center.lng*Math.PI/180),e.bh(o,o,s,this.center.lat*Math.PI/180);const a=n[0]*n[0]+n[2]*n[2],l=o[0]*o[0];if(a=-g&&f<=g,x=_>=-g&&_<=g;let v,b;if(y&&x){const t=this.center.lng*Math.PI/180,i=this.center.lat*Math.PI/180;e.bp(u,t)+e.bp(f,i)=0}isSurfacePointOnScreen(t){if(!this.isSurfacePointVisible(t))return!1;const i=e.be();return e.al(i,[...t,1],this._globeViewProjMatrixNoCorrection),i[0]/=i[3],i[1]/=i[3],i[2]/=i[3],i[0]>-1&&i[0]<1&&i[1]>-1&&i[1]<1&&i[2]>-1&&i[2]<1}rayPlanetIntersection(t,i){const r=e.aS(t,i),n=e.bf(),s=e.bf();e.aL(s,i,r),e.aP(n,t,s);const o=1-e.aS(n,n);if(o<0)return null;const a=e.aS(t,t)-1,l=-r+(r<0?1:-1)*Math.sqrt(o),c=a/l,h=l;return{tMin:Math.min(c,h),tMax:Math.max(c,h)}}unprojectScreenPoint(t){const i=this._cameraPosition,r=this.getRayDirectionFromPixel(t),n=this.rayPlanetIntersection(i,r);if(n){const t=e.bf();e.aM(t,i,[r[0]*n.tMin,r[1]*n.tMin,r[2]*n.tMin]);const s=e.bf();return e.aQ(s,t),ei(s)}const s=this._cachedClippingPlane[0]*r[0]+this._cachedClippingPlane[1]*r[1]+this._cachedClippingPlane[2]*r[2],o=-e.bn(this._cachedClippingPlane,i)/s,a=e.bf();if(o>0)e.aM(a,i,[r[0]*o,r[1]*o,r[2]*o]);else{const t=e.bf();e.aM(t,i,[2*r[0],2*r[1],2*r[2]]);const n=e.bn(this._cachedClippingPlane,t);e.aP(a,t,[this._cachedClippingPlane[0]*n,this._cachedClippingPlane[1]*n,this._cachedClippingPlane[2]*n])}const l=e.bf();return e.aQ(l,a),ei(l)}getMatrixForModel(t,i){const r=e.N.convert(t),n=1/e.bo,s=e.a_();return e.bj(s,s,r.lng/180*Math.PI),e.aY(s,s,-r.lat/180*Math.PI),e.J(s,s,[0,0,1+i/e.bo]),e.aY(s,s,.5*Math.PI),e.K(s,s,[n,n,n]),s}getProjectionDataForCustomLayer(t=!0){const i=this.getProjectionData({overscaledTileID:new e.S(0,0,0,0,0),applyGlobeMatrix:t});return i.tileMercatorCoords=[0,0,1,1],i}getFastPathSimpleProjectionMatrix(t){}}class di{get pixelsToClipSpaceMatrix(){return this._helper.pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._helper.clipSpaceToPixelsMatrix}get pixelsToGLUnits(){return this._helper.pixelsToGLUnits}get centerOffset(){return this._helper.centerOffset}get size(){return this._helper.size}get rotationMatrix(){return this._helper.rotationMatrix}get centerPoint(){return this._helper.centerPoint}get pixelsPerMeter(){return this._helper.pixelsPerMeter}setMinZoom(t){this._helper.setMinZoom(t)}setMaxZoom(t){this._helper.setMaxZoom(t)}setMinPitch(t){this._helper.setMinPitch(t)}setMaxPitch(t){this._helper.setMaxPitch(t)}setRenderWorldCopies(t){this._helper.setRenderWorldCopies(t)}setBearing(t){this._helper.setBearing(t)}setPitch(t){this._helper.setPitch(t)}setRoll(t){this._helper.setRoll(t)}setFov(t){this._helper.setFov(t)}setZoom(t){this._helper.setZoom(t)}setCenter(t){this._helper.setCenter(t)}setElevation(t){this._helper.setElevation(t)}setMinElevationForCurrentTile(t){this._helper.setMinElevationForCurrentTile(t)}setPadding(t){this._helper.setPadding(t)}interpolatePadding(t,e,i){return this._helper.interpolatePadding(t,e,i)}isPaddingEqual(t){return this._helper.isPaddingEqual(t)}resize(t,e,i=!0){this._helper.resize(t,e,i)}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(t){this._helper.setMaxBounds(t)}overrideNearFarZ(t,e){this._helper.overrideNearFarZ(t,e)}clearNearFarZOverride(){this._helper.clearNearFarZOverride()}getCameraQueryGeometry(t){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),t)}get tileSize(){return this._helper.tileSize}get tileZoom(){return this._helper.tileZoom}get scale(){return this._helper.scale}get worldSize(){return this._helper.worldSize}get width(){return this._helper.width}get height(){return this._helper.height}get lngRange(){return this._helper.lngRange}get latRange(){return this._helper.latRange}get minZoom(){return this._helper.minZoom}get maxZoom(){return this._helper.maxZoom}get zoom(){return this._helper.zoom}get center(){return this._helper.center}get minPitch(){return this._helper.minPitch}get maxPitch(){return this._helper.maxPitch}get pitch(){return this._helper.pitch}get pitchInRadians(){return this._helper.pitchInRadians}get roll(){return this._helper.roll}get rollInRadians(){return this._helper.rollInRadians}get bearing(){return this._helper.bearing}get bearingInRadians(){return this._helper.bearingInRadians}get fov(){return this._helper.fov}get fovInRadians(){return this._helper.fovInRadians}get elevation(){return this._helper.elevation}get minElevationForCurrentTile(){return this._helper.minElevationForCurrentTile}get padding(){return this._helper.padding}get unmodified(){return this._helper.unmodified}get renderWorldCopies(){return this._helper.renderWorldCopies}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}get nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}get isGlobeRendering(){return this._globeness>0}setTransitionState(t,e){this._globeness=t,this._globeLatitudeErrorCorrectionRadians=e,this._calcMatrices(),this._verticalPerspectiveTransform.getCoveringTilesDetailsProvider().recalculateCache(),this._mercatorTransform.getCoveringTilesDetailsProvider().recalculateCache()}get currentTransform(){return this.isGlobeRendering?this._verticalPerspectiveTransform:this._mercatorTransform}constructor(){this._globeLatitudeErrorCorrectionRadians=0,this._globeness=1,this._helper=new Ie({calcMatrices:()=>{this._calcMatrices()},getConstrained:(t,e)=>this.getConstrained(t,e)}),this._globeness=1,this._mercatorTransform=new ze,this._verticalPerspectiveTransform=new ui}clone(){const t=new di;return t._globeness=this._globeness,t._globeLatitudeErrorCorrectionRadians=this._globeLatitudeErrorCorrectionRadians,t.apply(this),t}apply(t){this._helper.apply(t),this._mercatorTransform.apply(this),this._verticalPerspectiveTransform.apply(this,this._globeLatitudeErrorCorrectionRadians)}get projectionMatrix(){return this.currentTransform.projectionMatrix}get modelViewProjectionMatrix(){return this.currentTransform.modelViewProjectionMatrix}get inverseProjectionMatrix(){return this.currentTransform.inverseProjectionMatrix}get cameraPosition(){return this.currentTransform.cameraPosition}getProjectionData(t){const e=this._mercatorTransform.getProjectionData(t),i=this._verticalPerspectiveTransform.getProjectionData(t);return{mainMatrix:this.isGlobeRendering?i.mainMatrix:e.mainMatrix,clippingPlane:i.clippingPlane,tileMercatorCoords:i.tileMercatorCoords,projectionTransition:t.applyGlobeMatrix?this._globeness:0,fallbackMatrix:e.fallbackMatrix}}isLocationOccluded(t){return this.currentTransform.isLocationOccluded(t)}transformLightDirection(t){return this.currentTransform.transformLightDirection(t)}getPixelScale(){return e.b9(this._mercatorTransform.getPixelScale(),this._verticalPerspectiveTransform.getPixelScale(),this._globeness)}getCircleRadiusCorrection(){return e.b9(this._mercatorTransform.getCircleRadiusCorrection(),this._verticalPerspectiveTransform.getCircleRadiusCorrection(),this._globeness)}getPitchedTextCorrection(t,i,r){const n=this._mercatorTransform.getPitchedTextCorrection(t,i,r),s=this._verticalPerspectiveTransform.getPitchedTextCorrection(t,i,r);return e.b9(n,s,this._globeness)}projectTileCoordinates(t,e,i,r){return this.currentTransform.projectTileCoordinates(t,e,i,r)}_calcMatrices(){this._helper._width&&this._helper._height&&(this._verticalPerspectiveTransform.apply(this,this._globeLatitudeErrorCorrectionRadians),this._helper._nearZ=this._verticalPerspectiveTransform.nearZ,this._helper._farZ=this._verticalPerspectiveTransform.farZ,this._mercatorTransform.apply(this,!0,this.isGlobeRendering),this._helper._nearZ=this._mercatorTransform.nearZ,this._helper._farZ=this._mercatorTransform.farZ)}calculateFogMatrix(t){return this.currentTransform.calculateFogMatrix(t)}getVisibleUnwrappedCoordinates(t){return this.currentTransform.getVisibleUnwrappedCoordinates(t)}getCameraFrustum(){return this.currentTransform.getCameraFrustum()}getClippingPlane(){return this.currentTransform.getClippingPlane()}getCoveringTilesDetailsProvider(){return this.currentTransform.getCoveringTilesDetailsProvider()}recalculateZoomAndCenter(t){this._mercatorTransform.recalculateZoomAndCenter(t),this._verticalPerspectiveTransform.recalculateZoomAndCenter(t)}maxPitchScaleFactor(){return this._mercatorTransform.maxPitchScaleFactor()}getCameraPoint(){return this._helper.getCameraPoint()}getCameraAltitude(){return this._helper.getCameraAltitude()}getCameraLngLat(){return this._helper.getCameraLngLat()}lngLatToCameraDepth(t,e){return this.currentTransform.lngLatToCameraDepth(t,e)}populateCache(t){this._mercatorTransform.populateCache(t),this._verticalPerspectiveTransform.populateCache(t)}getBounds(){return this.currentTransform.getBounds()}getConstrained(t,e){return this.currentTransform.getConstrained(t,e)}calculateCenterFromCameraLngLatAlt(t,e,i,r){return this._helper.calculateCenterFromCameraLngLatAlt(t,e,i,r)}setLocationAtPoint(t,e){if(!this.isGlobeRendering)return this._mercatorTransform.setLocationAtPoint(t,e),void this.apply(this._mercatorTransform);this._verticalPerspectiveTransform.setLocationAtPoint(t,e),this.apply(this._verticalPerspectiveTransform)}locationToScreenPoint(t,e){return this.currentTransform.locationToScreenPoint(t,e)}screenPointToMercatorCoordinate(t,e){return this.currentTransform.screenPointToMercatorCoordinate(t,e)}screenPointToLocation(t,e){return this.currentTransform.screenPointToLocation(t,e)}isPointOnMapSurface(t,e){return this.currentTransform.isPointOnMapSurface(t,e)}getRayDirectionFromPixel(t){return this._verticalPerspectiveTransform.getRayDirectionFromPixel(t)}getMatrixForModel(t,e){return this.currentTransform.getMatrixForModel(t,e)}getProjectionDataForCustomLayer(t=!0){const e=this._mercatorTransform.getProjectionDataForCustomLayer(t);if(!this.isGlobeRendering)return e;const i=this._verticalPerspectiveTransform.getProjectionDataForCustomLayer(t);return i.fallbackMatrix=e.mainMatrix,i}getFastPathSimpleProjectionMatrix(t){return this.currentTransform.getFastPathSimpleProjectionMatrix(t)}}class pi{get useGlobeControls(){return!0}handlePanInertia(t,i){const r=ni(t,i);return Math.abs(r.lng-i.center.lng)>180&&(r.lng=i.center.lng+179.5*Math.sign(r.lng-i.center.lng)),{easingCenter:r,easingOffset:new e.P(0,0)}}handleMapControlsRollPitchBearingZoom(t,i){const r=t.around,n=i.screenPointToLocation(r);t.bearingDelta&&i.setBearing(i.bearing+t.bearingDelta),t.pitchDelta&&i.setPitch(i.pitch+t.pitchDelta),t.rollDelta&&i.setRoll(i.roll+t.rollDelta);const s=i.zoom;t.zoomDelta&&i.setZoom(i.zoom+t.zoomDelta);const o=i.zoom-s;if(0===o)return;const a=e.bk(i.center.lng,n.lng),l=a/(Math.abs(a/180)+1),c=e.bk(i.center.lat,n.lat),h=i.getRayDirectionFromPixel(r),u=i.cameraPosition,d=-1*e.aS(u,h),p=e.bf();e.aM(p,u,[h[0]*d,h[1]*d,h[2]*d]);const f=e.bq(p)-1,m=Math.exp(.5*-Math.max(f-.3,0)),_=ti(i.worldSize,i.center.lat)/Math.min(i.width,i.height),g=e.bc(_,.9,.5,1,.25),y=(1-e.aG(-o))*Math.min(m,g),x=i.center.lat,v=i.zoom,b=new e.N(i.center.lng+l*y,e.ab(i.center.lat+c*y,-85.051129,e.aF));i.setLocationAtPoint(n,r);const w=i.center,T=e.bc(Math.abs(a),45,85,0,1),P=e.bc(_,.75,.35,0,1),M=Math.pow(Math.max(T,P),.25),S=e.bk(w.lng,b.lng),I=e.bk(w.lat,b.lat);i.setCenter(new e.N(w.lng+S*M,w.lat+I*M).wrap()),i.setZoom(v+ri(x,i.center.lat))}handleMapControlsPan(t,e,i){if(!t.panDelta)return;const r=e.center.lat,n=e.zoom;e.setCenter(ni(t.panDelta,e).wrap()),e.setZoom(n+ri(r,e.center.lat))}cameraForBoxAndBearing(t,i,r,n,s){const o=Re(t,i,r,n,s),a=i.left/s.width*2-1,l=(s.width-i.right)/s.width*2-1,c=i.top/s.height*-2+1,h=(s.height-i.bottom)/s.height*-2+1,u=e.bk(r.getWest(),r.getEast())<0,d=u?r.getEast():r.getWest(),p=u?r.getWest():r.getEast(),f=Math.max(r.getNorth(),r.getSouth()),m=Math.min(r.getNorth(),r.getSouth()),_=d+.5*e.bk(d,p),g=f+.5*e.bk(f,m),y=s.clone();y.setCenter(o.center),y.setBearing(o.bearing),y.setPitch(0),y.setRoll(0),y.setZoom(o.zoom);const x=y.modelViewProjectionMatrix,v=[Qe(r.getNorthWest()),Qe(r.getNorthEast()),Qe(r.getSouthWest()),Qe(r.getSouthEast()),Qe(new e.N(p,g)),Qe(new e.N(d,g)),Qe(new e.N(_,f)),Qe(new e.N(_,m))],b=Qe(o.center);let w=Number.POSITIVE_INFINITY;for(const e of v)a<0&&(w=pi.getLesserNonNegativeNonNull(w,pi.solveVectorScale(e,b,x,"x",a))),l>0&&(w=pi.getLesserNonNegativeNonNull(w,pi.solveVectorScale(e,b,x,"x",l))),c>0&&(w=pi.getLesserNonNegativeNonNull(w,pi.solveVectorScale(e,b,x,"y",c))),h<0&&(w=pi.getLesserNonNegativeNonNull(w,pi.solveVectorScale(e,b,x,"y",h)));if(Number.isFinite(w)&&0!==w)return o.zoom=y.zoom+e.a8(w),o;ke()}handleJumpToCenterZoom(t,i){const r=t.center.lat,n=t.getConstrained(i.center?e.N.convert(i.center):t.center,t.zoom).center;t.setCenter(n.wrap());const s=void 0!==i.zoom?+i.zoom:t.zoom+ri(r,n.lat);t.zoom!==s&&t.setZoom(s)}handleEaseTo(t,i){const r=t.zoom,n=t.center,s=t.padding,o={roll:t.roll,pitch:t.pitch,bearing:t.bearing},a={roll:void 0===i.roll?t.roll:i.roll,pitch:void 0===i.pitch?t.pitch:i.pitch,bearing:void 0===i.bearing?t.bearing:i.bearing},l=void 0!==i.zoom,c=!t.isPaddingEqual(i.padding);let h=!1;const u=i.center?e.N.convert(i.center):n,d=t.getConstrained(u,r).center;Me(t,d);const p=t.clone();p.setCenter(d),p.setZoom(l?+i.zoom:r+ri(n.lat,u.lat)),p.setBearing(i.bearing);const f=new e.P(e.ab(t.centerPoint.x+i.offsetAsPoint.x,0,t.width),e.ab(t.centerPoint.y+i.offsetAsPoint.y,0,t.height));p.setLocationAtPoint(d,f);const m=(i.offset&&i.offsetAsPoint.mag())>0?p.center:d,_=l?+i.zoom:r+ri(n.lat,m.lat),g=r+ri(n.lat,0),y=_+ri(m.lat,0),x=e.bk(n.lng,m.lng),v=e.bk(n.lat,m.lat),b=e.aG(y-g);return h=_!==r,{easeFunc:r=>{if(e.b3(o,a)||De({startEulerAngles:o,endEulerAngles:a,tr:t,k:r,useSlerp:o.roll!=a.roll}),c&&t.interpolatePadding(s,i.padding,r),i.around)e.w("Easing around a point is not supported under globe projection."),t.setLocationAtPoint(i.around,i.aroundPoint);else{const e=y>g?Math.min(2,b):Math.max(.5,b),i=Math.pow(e,1-r),s=oi(n,x,v,r*i);t.setCenter(s.wrap())}if(h){const i=e.y.number(g,y,r)+ri(0,t.center.lat);t.setZoom(i)}},isZooming:h,elevationCenter:m}}handleFlyTo(t,i){const r=void 0!==i.zoom,n=t.center,s=t.zoom,o=!t.isPaddingEqual(i.padding),a=t.getConstrained(e.N.convert(i.center||i.locationAtOffset),s).center,l=r?+i.zoom:t.zoom+ri(t.center.lat,a.lat),c=t.clone();c.setCenter(a),o&&c.setPadding(i.padding),c.setZoom(l),c.setBearing(i.bearing);const h=new e.P(e.ab(t.centerPoint.x+i.offsetAsPoint.x,0,t.width),e.ab(t.centerPoint.y+i.offsetAsPoint.y,0,t.height));c.setLocationAtPoint(a,h);const u=c.center;Me(t,u);const d=function(t,i,r){const n=Qe(i),s=Qe(r),o=e.aS(n,s),a=Math.acos(o),l=Ye(t);return a/(2*Math.PI)*l}(t,n,u),p=s+ri(n.lat,0),f=l+ri(u.lat,0),m=e.aG(f-p);let _;if("number"==typeof i.minZoom){const r=+i.minZoom+ri(u.lat,0),n=Math.min(r,p,f)+ri(0,u.lat),s=t.getConstrained(u,n).zoom+ri(u.lat,0);_=e.aG(s-p)}const g=e.bk(n.lng,u.lng),y=e.bk(n.lat,u.lat);return{easeFunc:(i,r,s,o)=>{const a=oi(n,g,y,s),c=1===i?u:a;t.setCenter(c.wrap());const h=p+e.a8(r);t.setZoom(1===i?l:h+ri(0,c.lat))},scaleOfZoom:m,targetCenter:u,scaleOfMinZoom:_,pixelPathLength:d}}static solveVectorScale(t,e,i,r,n){const s="x"===r?[i[0],i[4],i[8],i[12]]:[i[1],i[5],i[9],i[13]],o=[i[3],i[7],i[11],i[15]],a=t[0]*s[0]+t[1]*s[1]+t[2]*s[2],l=t[0]*o[0]+t[1]*o[1]+t[2]*o[2],c=e[0]*s[0]+e[1]*s[1]+e[2]*s[2],h=e[0]*o[0]+e[1]*o[1]+e[2]*o[2];return c+n*l===a+n*h||o[3]*(a-c)+s[3]*(h-l)+a*h==c*l?null:(c+s[3]-n*h-n*o[3])/(c-a-n*h+n*l)}static getLesserNonNegativeNonNull(t,e){return null!==e&&e>=0&&ee.t(t,i&&i.filter((t=>"source.canvas"!==t.identifier))),_i=e.br();class gi extends e.E{constructor(t,i={}){super(),this._rtlPluginLoaded=()=>{for(const t in this.sourceCaches){const e=this.sourceCaches[t].getSource().type;"vector"!==e&&"geojson"!==e||this.sourceCaches[t].reload()}},this.map=t,this.dispatcher=new B(F(),t._getMapId()),this.dispatcher.registerMessageHandler("GG",((t,e)=>this.getGlyphs(t,e))),this.dispatcher.registerMessageHandler("GI",((t,e)=>this.getImages(t,e))),this.imageManager=new v,this.imageManager.setEventedParent(this),this.glyphManager=new P(t._requestManager,i.localIdeographFontFamily),this.lineAtlas=new A(256,512),this.crossTileSymbolIndex=new he,this._spritesImagesIds={},this._layers={},this._order=[],this.sourceCaches={},this.zoomHistory=new e.bs,this._loaded=!1,this._availableImages=[],this._resetUpdates(),this.dispatcher.broadcast("SR",e.bt()),nt().on(et,this._rtlPluginLoaded),this.on("data",(t=>{if("source"!==t.dataType||"metadata"!==t.sourceDataType)return;const e=this.sourceCaches[t.sourceId];if(!e)return;const i=e.getSource();if(i&&i.vectorLayerIds)for(const r in this._layers){const t=this._layers[r];t.source===i.id&&this._validateLayer(t)}}))}loadURL(t,i={},r){this.fire(new e.k("dataloading",{dataType:"style"})),i.validate="boolean"!=typeof i.validate||i.validate;const n=this.map._requestManager.transformRequest(t,"Style");this._loadStyleRequest=new AbortController;const s=this._loadStyleRequest;e.h(n,this._loadStyleRequest).then((t=>{this._loadStyleRequest=null,this._load(t.data,i,r)})).catch((t=>{this._loadStyleRequest=null,t&&!s.signal.aborted&&this.fire(new e.j(t))}))}loadJSON(t,i={},r){this.fire(new e.k("dataloading",{dataType:"style"})),this._frameRequest=new AbortController,o.frameAsync(this._frameRequest).then((()=>{this._frameRequest=null,i.validate=!1!==i.validate,this._load(t,i,r)})).catch((()=>{}))}loadEmpty(){this.fire(new e.k("dataloading",{dataType:"style"})),this._load(_i,{validate:!1})}_load(t,i,r){var n,s;const o=i.transformStyle?i.transformStyle(r,t):t;if(!i.validate||!mi(this,e.u(o))){this._loaded=!0,this.stylesheet=o;for(const t in o.sources)this.addSource(t,o.sources[t],{validate:!1});o.sprite?this._loadSprite(o.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(o.glyphs),this._createLayers(),this.light=new I(this.stylesheet.light),this._setProjectionInternal((null===(n=this.stylesheet.projection)||void 0===n?void 0:n.type)||"mercator"),this.sky=new E(this.stylesheet.sky),this.map.setTerrain(null!==(s=this.stylesheet.terrain)&&void 0!==s?s:null),this.fire(new e.k("data",{dataType:"style"})),this.fire(new e.k("style.load"))}}_createLayers(){const t=e.bu(this.stylesheet.layers);this.dispatcher.broadcast("SL",t),this._order=t.map((t=>t.id)),this._layers={},this._serializedLayers=null;for(const i of t){const t=e.bv(i);t.setEventedParent(this,{layer:{id:i.id}}),this._layers[i.id]=t}}_loadSprite(t,i=!1,r=void 0){let n;this.imageManager.setLoaded(!1),this._spriteRequest=new AbortController,function(t,i,r,n){return e._(this,void 0,void 0,(function*(){const s=_(t),a=r>1?"@2x":"",l={},c={};for(const{id:t,url:r}of s){const s=i.transformRequest(g(r,a,".json"),"SpriteJSON");l[t]=e.h(s,n);const o=i.transformRequest(g(r,a,".png"),"SpriteImage");c[t]=f.getImage(o,n)}return yield Promise.all([...Object.values(l),...Object.values(c)]),function(t,i){return e._(this,void 0,void 0,(function*(){const e={};for(const r in t){e[r]={};const n=o.getImageCanvasContext((yield i[r]).data),s=(yield t[r]).data;for(const t in s){const{width:i,height:o,x:a,y:l,sdf:c,pixelRatio:h,stretchX:u,stretchY:d,content:p,textFitWidth:f,textFitHeight:m}=s[t];e[r][t]={data:null,pixelRatio:h,sdf:c,stretchX:u,stretchY:d,content:p,textFitWidth:f,textFitHeight:m,spriteData:{width:i,height:o,x:a,y:l,context:n}}}}return e}))}(l,c)}))}(t,this.map._requestManager,this.map.getPixelRatio(),this._spriteRequest).then((t=>{if(this._spriteRequest=null,t)for(const e in t){this._spritesImagesIds[e]=[];const r=this._spritesImagesIds[e]?this._spritesImagesIds[e].filter((e=>!(e in t))):[];for(const t of r)this.imageManager.removeImage(t),this._changedImages[t]=!0;for(const n in t[e]){const r="default"===e?n:`${e}:${n}`;this._spritesImagesIds[e].push(r),r in this.imageManager.images?this.imageManager.updateImage(r,t[e][n],!1):this.imageManager.addImage(r,t[e][n]),i&&(this._changedImages[r]=!0)}}})).catch((t=>{this._spriteRequest=null,n=t,this.fire(new e.j(n))})).finally((()=>{this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),i&&(this._changed=!0),this.dispatcher.broadcast("SI",this._availableImages),this.fire(new e.k("data",{dataType:"style"})),r&&r(n)}))}_unloadSprite(){for(const t of Object.values(this._spritesImagesIds).flat())this.imageManager.removeImage(t),this._changedImages[t]=!0;this._spritesImagesIds={},this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new e.k("data",{dataType:"style"}))}_validateLayer(t){const i=this.sourceCaches[t.source];if(!i)return;const r=t.sourceLayer;if(!r)return;const n=i.getSource();("geojson"===n.type||n.vectorLayerIds&&-1===n.vectorLayerIds.indexOf(r))&&this.fire(new e.j(new Error(`Source layer "${r}" does not exist on source "${n.id}" as specified by style layer "${t.id}".`)))}loaded(){if(!this._loaded)return!1;if(Object.keys(this._updatedSources).length)return!1;for(const t in this.sourceCaches)if(!this.sourceCaches[t].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeByIds(t,i=!1){const r=this._serializedAllLayers();if(!t||0===t.length)return Object.values(i?e.bw(r):r);const n=[];for(const s of t)if(r[s]){const t=i?e.bw(r[s]):r[s];n.push(t)}return n}_serializedAllLayers(){let t=this._serializedLayers;if(t)return t;t=this._serializedLayers={};const e=Object.keys(this._layers);for(const i of e){const e=this._layers[i];"custom"!==e.type&&(t[i]=e.serialize())}return t}hasTransitions(){var t,e,i;if(null===(t=this.light)||void 0===t?void 0:t.hasTransition())return!0;if(null===(e=this.sky)||void 0===e?void 0:e.hasTransition())return!0;if(null===(i=this.projection)||void 0===i?void 0:i.hasTransition())return!0;for(const r in this.sourceCaches)if(this.sourceCaches[r].hasTransition())return!0;for(const r in this._layers)if(this._layers[r].hasTransition())return!0;return!1}_checkLoaded(){if(!this._loaded)throw new Error("Style is not done loading.")}update(t){if(!this._loaded)return;const i=this._changed;if(i){const e=Object.keys(this._updatedLayers),i=Object.keys(this._removedLayers);(e.length||i.length)&&this._updateWorkerLayers(e,i);for(const t in this._updatedSources){const e=this._updatedSources[t];if("reload"===e)this._reloadSource(t);else{if("clear"!==e)throw new Error(`Invalid action ${e}`);this._clearSource(t)}}this._updateTilesForChangedImages(),this._updateTilesForChangedGlyphs();for(const r in this._updatedPaintProps)this._layers[r].updateTransitions(t);this.light.updateTransitions(t),this.sky.updateTransitions(t),this._resetUpdates()}const r={};for(const e in this.sourceCaches){const t=this.sourceCaches[e];r[e]=t.used,t.used=!1}for(const e of this._order){const i=this._layers[e];i.recalculate(t,this._availableImages),!i.isHidden(t.zoom)&&i.source&&(this.sourceCaches[i.source].used=!0)}for(const n in r){const t=this.sourceCaches[n];!!r[n]!=!!t.used&&t.fire(new e.k("data",{sourceDataType:"visibility",dataType:"source",sourceId:n}))}this.light.recalculate(t),this.sky.recalculate(t),this.projection.recalculate(t),this.z=t.zoom,i&&this.fire(new e.k("data",{dataType:"style"}))}_updateTilesForChangedImages(){const t=Object.keys(this._changedImages);if(t.length){for(const e in this.sourceCaches)this.sourceCaches[e].reloadTilesForDependencies(["icons","patterns"],t);this._changedImages={}}}_updateTilesForChangedGlyphs(){if(this._glyphsDidChange){for(const t in this.sourceCaches)this.sourceCaches[t].reloadTilesForDependencies(["glyphs"],[""]);this._glyphsDidChange=!1}}_updateWorkerLayers(t,e){this.dispatcher.broadcast("UL",{layers:this._serializeByIds(t,!1),removedIds:e})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={},this._glyphsDidChange=!1}setState(t,i={}){var r;this._checkLoaded();const n=this.serialize();if(t=i.transformStyle?i.transformStyle(n,t):t,(null===(r=i.validate)||void 0===r||r)&&mi(this,e.u(t)))return!1;(t=e.bw(t)).layers=e.bu(t.layers);const s=e.bx(n,t),o=this._getOperationsToPerform(s);if(o.unimplemented.length>0)throw new Error(`Unimplemented: ${o.unimplemented.join(", ")}.`);if(0===o.operations.length)return!1;for(const e of o.operations)e();return this.stylesheet=t,this._serializedLayers=null,!0}_getOperationsToPerform(t){const e=[],i=[];for(const r of t)switch(r.command){case"setCenter":case"setZoom":case"setBearing":case"setPitch":case"setRoll":continue;case"addLayer":e.push((()=>this.addLayer.apply(this,r.args)));break;case"removeLayer":e.push((()=>this.removeLayer.apply(this,r.args)));break;case"setPaintProperty":e.push((()=>this.setPaintProperty.apply(this,r.args)));break;case"setLayoutProperty":e.push((()=>this.setLayoutProperty.apply(this,r.args)));break;case"setFilter":e.push((()=>this.setFilter.apply(this,r.args)));break;case"addSource":e.push((()=>this.addSource.apply(this,r.args)));break;case"removeSource":e.push((()=>this.removeSource.apply(this,r.args)));break;case"setLayerZoomRange":e.push((()=>this.setLayerZoomRange.apply(this,r.args)));break;case"setLight":e.push((()=>this.setLight.apply(this,r.args)));break;case"setGeoJSONSourceData":e.push((()=>this.setGeoJSONSourceData.apply(this,r.args)));break;case"setGlyphs":e.push((()=>this.setGlyphs.apply(this,r.args)));break;case"setSprite":e.push((()=>this.setSprite.apply(this,r.args)));break;case"setTerrain":e.push((()=>this.map.setTerrain.apply(this,r.args)));break;case"setSky":e.push((()=>this.setSky.apply(this,r.args)));break;case"setProjection":this.setProjection.apply(this,r.args);break;case"setTransition":e.push((()=>{}));break;default:i.push(r.command)}return{operations:e,unimplemented:i}}addImage(t,i){if(this.getImage(t))return this.fire(new e.j(new Error(`An image named "${t}" already exists.`)));this.imageManager.addImage(t,i),this._afterImageUpdated(t)}updateImage(t,e){this.imageManager.updateImage(t,e)}getImage(t){return this.imageManager.getImage(t)}removeImage(t){if(!this.getImage(t))return this.fire(new e.j(new Error(`An image named "${t}" does not exist.`)));this.imageManager.removeImage(t),this._afterImageUpdated(t)}_afterImageUpdated(t){this._availableImages=this.imageManager.listImages(),this._changedImages[t]=!0,this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new e.k("data",{dataType:"style"}))}listImages(){return this._checkLoaded(),this.imageManager.listImages()}addSource(t,i,r={}){if(this._checkLoaded(),void 0!==this.sourceCaches[t])throw new Error(`Source "${t}" already exists.`);if(!i.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(i).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(i.type)>=0&&this._validate(e.u.source,`sources.${t}`,i,null,r))return;this.map&&this.map._collectResourceTiming&&(i.collectResourceTiming=!0);const n=this.sourceCaches[t]=new dt(t,i,this.dispatcher);n.style=this,n.setEventedParent(this,(()=>({isSourceLoaded:n.loaded(),source:n.serialize(),sourceId:t}))),n.onAdd(this.map),this._changed=!0}removeSource(t){if(this._checkLoaded(),void 0===this.sourceCaches[t])throw new Error("There is no source with this ID");for(const r in this._layers)if(this._layers[r].source===t)return this.fire(new e.j(new Error(`Source "${t}" cannot be removed while layer "${r}" is using it.`)));const i=this.sourceCaches[t];delete this.sourceCaches[t],delete this._updatedSources[t],i.fire(new e.k("data",{sourceDataType:"metadata",dataType:"source",sourceId:t})),i.setEventedParent(null),i.onRemove(this.map),this._changed=!0}setGeoJSONSourceData(t,e){if(this._checkLoaded(),void 0===this.sourceCaches[t])throw new Error(`There is no source with this ID=${t}`);const i=this.sourceCaches[t].getSource();if("geojson"!==i.type)throw new Error(`geojsonSource.type is ${i.type}, which is !== 'geojson`);i.setData(e),this._changed=!0}getSource(t){return this.sourceCaches[t]&&this.sourceCaches[t].getSource()}addLayer(t,i,r={}){this._checkLoaded();const n=t.id;if(this.getLayer(n))return void this.fire(new e.j(new Error(`Layer "${n}" already exists on this map.`)));let s;if("custom"===t.type){if(mi(this,e.by(t)))return;s=e.bv(t)}else{if("source"in t&&"object"==typeof t.source&&(this.addSource(n,t.source),t=e.bw(t),t=e.e(t,{source:n})),this._validate(e.u.layer,`layers.${n}`,t,{arrayIndex:-1},r))return;s=e.bv(t),this._validateLayer(s),s.setEventedParent(this,{layer:{id:n}})}const o=i?this._order.indexOf(i):this._order.length;if(i&&-1===o)this.fire(new e.j(new Error(`Cannot add layer "${n}" before non-existing layer "${i}".`)));else{if(this._order.splice(o,0,n),this._layerOrderChanged=!0,this._layers[n]=s,this._removedLayers[n]&&s.source&&"custom"!==s.type){const t=this._removedLayers[n];delete this._removedLayers[n],t.type!==s.type?this._updatedSources[s.source]="clear":(this._updatedSources[s.source]="reload",this.sourceCaches[s.source].pause())}this._updateLayer(s),s.onAdd&&s.onAdd(this.map)}}moveLayer(t,i){if(this._checkLoaded(),this._changed=!0,!this._layers[t])return void this.fire(new e.j(new Error(`The layer '${t}' does not exist in the map's style and cannot be moved.`)));if(t===i)return;const r=this._order.indexOf(t);this._order.splice(r,1);const n=i?this._order.indexOf(i):this._order.length;i&&-1===n?this.fire(new e.j(new Error(`Cannot move layer "${t}" before non-existing layer "${i}".`))):(this._order.splice(n,0,t),this._layerOrderChanged=!0)}removeLayer(t){this._checkLoaded();const i=this._layers[t];if(!i)return void this.fire(new e.j(new Error(`Cannot remove non-existing layer "${t}".`)));i.setEventedParent(null);const r=this._order.indexOf(t);this._order.splice(r,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[t]=i,delete this._layers[t],this._serializedLayers&&delete this._serializedLayers[t],delete this._updatedLayers[t],delete this._updatedPaintProps[t],i.onRemove&&i.onRemove(this.map)}getLayer(t){return this._layers[t]}getLayersOrder(){return[...this._order]}hasLayer(t){return t in this._layers}setLayerZoomRange(t,i,r){this._checkLoaded();const n=this.getLayer(t);n?n.minzoom===i&&n.maxzoom===r||(null!=i&&(n.minzoom=i),null!=r&&(n.maxzoom=r),this._updateLayer(n)):this.fire(new e.j(new Error(`Cannot set the zoom range of non-existing layer "${t}".`)))}setFilter(t,i,r={}){this._checkLoaded();const n=this.getLayer(t);if(n){if(!e.bz(n.filter,i))return null==i?(n.filter=void 0,void this._updateLayer(n)):void(this._validate(e.u.filter,`layers.${n.id}.filter`,i,null,r)||(n.filter=e.bw(i),this._updateLayer(n)))}else this.fire(new e.j(new Error(`Cannot filter non-existing layer "${t}".`)))}getFilter(t){return e.bw(this.getLayer(t).filter)}setLayoutProperty(t,i,r,n={}){this._checkLoaded();const s=this.getLayer(t);s?e.bz(s.getLayoutProperty(i),r)||(s.setLayoutProperty(i,r,n),this._updateLayer(s)):this.fire(new e.j(new Error(`Cannot style non-existing layer "${t}".`)))}getLayoutProperty(t,i){const r=this.getLayer(t);if(r)return r.getLayoutProperty(i);this.fire(new e.j(new Error(`Cannot get style of non-existing layer "${t}".`)))}setPaintProperty(t,i,r,n={}){this._checkLoaded();const s=this.getLayer(t);s?e.bz(s.getPaintProperty(i),r)||(s.setPaintProperty(i,r,n)&&this._updateLayer(s),this._changed=!0,this._updatedPaintProps[t]=!0,this._serializedLayers=null):this.fire(new e.j(new Error(`Cannot style non-existing layer "${t}".`)))}getPaintProperty(t,e){return this.getLayer(t).getPaintProperty(e)}setFeatureState(t,i){this._checkLoaded();const r=t.source,n=t.sourceLayer,s=this.sourceCaches[r];if(void 0===s)return void this.fire(new e.j(new Error(`The source '${r}' does not exist in the map's style.`)));const o=s.getSource().type;"geojson"===o&&n?this.fire(new e.j(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):"vector"!==o||n?(void 0===t.id&&this.fire(new e.j(new Error("The feature id parameter must be provided."))),s.setFeatureState(n,t.id,i)):this.fire(new e.j(new Error("The sourceLayer parameter must be provided for vector source types.")))}removeFeatureState(t,i){this._checkLoaded();const r=t.source,n=this.sourceCaches[r];if(void 0===n)return void this.fire(new e.j(new Error(`The source '${r}' does not exist in the map's style.`)));const s=n.getSource().type,o="vector"===s?t.sourceLayer:void 0;"vector"!==s||o?i&&"string"!=typeof t.id&&"number"!=typeof t.id?this.fire(new e.j(new Error("A feature id is required to remove its specific state property."))):n.removeFeatureState(o,t.id,i):this.fire(new e.j(new Error("The sourceLayer parameter must be provided for vector source types.")))}getFeatureState(t){this._checkLoaded();const i=t.source,r=t.sourceLayer,n=this.sourceCaches[i];if(void 0!==n)return"vector"!==n.getSource().type||r?(void 0===t.id&&this.fire(new e.j(new Error("The feature id parameter must be provided."))),n.getFeatureState(r,t.id)):void this.fire(new e.j(new Error("The sourceLayer parameter must be provided for vector source types.")));this.fire(new e.j(new Error(`The source '${i}' does not exist in the map's style.`)))}getTransition(){return e.e({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){if(!this._loaded)return;const t=e.bA(this.sourceCaches,(t=>t.serialize())),i=this._serializeByIds(this._order,!0),r=this.map.getTerrain()||void 0,n=this.stylesheet;return e.bB({version:n.version,name:n.name,metadata:n.metadata,light:n.light,sky:n.sky,center:n.center,zoom:n.zoom,bearing:n.bearing,pitch:n.pitch,sprite:n.sprite,glyphs:n.glyphs,transition:n.transition,projection:n.projection,sources:t,layers:i,terrain:r},(t=>void 0!==t))}_updateLayer(t){this._updatedLayers[t.id]=!0,t.source&&!this._updatedSources[t.source]&&"raster"!==this.sourceCaches[t.source].getSource().type&&(this._updatedSources[t.source]="reload",this.sourceCaches[t.source].pause()),this._serializedLayers=null,this._changed=!0}_flattenAndSortRenderedFeatures(t){const e=t=>"fill-extrusion"===this._layers[t].type,i={},r=[];for(let s=this._order.length-1;s>=0;s--){const n=this._order[s];if(e(n)){i[n]=s;for(const e of t){const t=e[n];if(t)for(const e of t)r.push(e)}}}r.sort(((t,e)=>e.intersectionZ-t.intersectionZ));const n=[];for(let s=this._order.length-1;s>=0;s--){const o=this._order[s];if(e(o))for(let t=r.length-1;t>=0;t--){const e=r[t].feature;if(i[e.layer.id]{const i=h.featureSortOrder;if(i){const r=i.indexOf(t.featureIndex);return i.indexOf(e.featureIndex)-r}return e.featureIndex-t.featureIndex}));for(const t of r)e.push(t)}}return function(t,e,i){for(const r in t)for(const n of t[r])U(n,i[e[r].source]);return t}(a,t,i)}(this._layers,o,this.sourceCaches,t,l,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(s)}querySourceFeatures(t,i){i&&i.filter&&this._validate(e.u.filter,"querySourceFeatures.filter",i.filter,null,i);const r=this.sourceCaches[t];return r?function(t,e){const i=t.getRenderableIds().map((e=>t.getTileByID(e))),r=[],n={};for(let s=0;st.getTileByID(e))).sort(((t,e)=>e.tileID.overscaledZ-t.tileID.overscaledZ||(t.tileID.isLessThan(e.tileID)?-1:1)))}const i=this.crossTileSymbolIndex.addLayer(e,l[e.source],t.center.lng);s=s||i}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((n=n||this._layerOrderChanged||0===i)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(o.now(),t.zoom))&&(this.pauseablePlacement=new se(t,this.map.terrain,this._order,n,e,i,r,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,l),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(o.now()),a=!0),s&&this.pauseablePlacement.placement.setStale()),a||s)for(const o of this._order){const t=this._layers[o];"symbol"===t.type&&this.placement.updateLayerOpacities(t,l[t.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(o.now())}_releaseSymbolFadeTiles(){for(const t in this.sourceCaches)this.sourceCaches[t].releaseSymbolFadeTiles()}getImages(t,i){return e._(this,void 0,void 0,(function*(){const t=yield this.imageManager.getImages(i.icons);this._updateTilesForChangedImages();const e=this.sourceCaches[i.source];return e&&e.setDependencies(i.tileID.key,i.type,i.icons),t}))}getGlyphs(t,i){return e._(this,void 0,void 0,(function*(){const t=yield this.glyphManager.getGlyphs(i.stacks),e=this.sourceCaches[i.source];return e&&e.setDependencies(i.tileID.key,i.type,[""]),t}))}getGlyphsUrl(){return this.stylesheet.glyphs||null}setGlyphs(t,i={}){this._checkLoaded(),t&&this._validate(e.u.glyphs,"glyphs",t,null,i)||(this._glyphsDidChange=!0,this.stylesheet.glyphs=t,this.glyphManager.entries={},this.glyphManager.setURL(t))}addSprite(t,i,r={},n){this._checkLoaded();const s=[{id:t,url:i}],o=[..._(this.stylesheet.sprite),...s];this._validate(e.u.sprite,"sprite",o,null,r)||(this.stylesheet.sprite=o,this._loadSprite(s,!0,n))}removeSprite(t){this._checkLoaded();const i=_(this.stylesheet.sprite);if(i.find((e=>e.id===t))){if(this._spritesImagesIds[t])for(const e of this._spritesImagesIds[t])this.imageManager.removeImage(e),this._changedImages[e]=!0;i.splice(i.findIndex((e=>e.id===t)),1),this.stylesheet.sprite=i.length>0?i:void 0,delete this._spritesImagesIds[t],this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new e.k("data",{dataType:"style"}))}else this.fire(new e.j(new Error(`Sprite "${t}" doesn't exists on this map.`)))}getSprite(){return _(this.stylesheet.sprite)}setSprite(t,i={},r){this._checkLoaded(),t&&this._validate(e.u.sprite,"sprite",t,null,i)||(this.stylesheet.sprite=t,t?this._loadSprite(t,!0,r):(this._unloadSprite(),r&&r(null)))}}var yi=e.aA([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);class xi{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null}bind(t,e,i,r,n,s,o,a,l){this.context=t;let c=this.boundPaintVertexBuffers.length!==r.length;for(let h=0;!c&&h({u_texture:0,u_ele_delta:t,u_fog_matrix:i,u_fog_color:r?r.properties.get("fog-color"):e.b4.white,u_fog_ground_blend:r?r.properties.get("fog-ground-blend"):1,u_fog_ground_blend_opacity:s?0:r?r.calculateFogBlendOpacity(n):0,u_horizon_color:r?r.properties.get("horizon-color"):e.b4.white,u_horizon_fog_blend:r?r.properties.get("horizon-fog-blend"):1,u_is_globe_mode:s?1:0}),bi={mainMatrix:"u_projection_matrix",tileMercatorCoords:"u_projection_tile_mercator_coords",clippingPlane:"u_projection_clipping_plane",projectionTransition:"u_projection_transition",fallbackMatrix:"u_projection_fallback_matrix"};function wi(t){const e=[];for(let i=0;i({u_depth:new e.bC(t,i.u_depth),u_terrain:new e.bC(t,i.u_terrain),u_terrain_dim:new e.b5(t,i.u_terrain_dim),u_terrain_matrix:new e.bD(t,i.u_terrain_matrix),u_terrain_unpack:new e.bE(t,i.u_terrain_unpack),u_terrain_exaggeration:new e.b5(t,i.u_terrain_exaggeration)}))(t,P),this.projectionUniforms=((t,i)=>({u_projection_matrix:new e.bD(t,i.u_projection_matrix),u_projection_tile_mercator_coords:new e.bE(t,i.u_projection_tile_mercator_coords),u_projection_clipping_plane:new e.bE(t,i.u_projection_clipping_plane),u_projection_transition:new e.b5(t,i.u_projection_transition),u_projection_fallback_matrix:new e.bD(t,i.u_projection_fallback_matrix)}))(t,P),this.binderUniforms=r?r.getUniforms(t,P):[]}draw(t,e,i,r,n,s,o,a,l,c,h,u,d,p,f,m,_,g,y){const x=t.gl;if(this.failedToCreate)return;if(t.program.set(this.program),t.setDepthMode(i),t.setStencilMode(r),t.setColorMode(n),t.setCullFace(s),a){t.activeTexture.set(x.TEXTURE2),x.bindTexture(x.TEXTURE_2D,a.depthTexture),t.activeTexture.set(x.TEXTURE3),x.bindTexture(x.TEXTURE_2D,a.texture);for(const t in this.terrainUniforms)this.terrainUniforms[t].set(a[t])}if(l)for(const b in l)this.projectionUniforms[bi[b]].set(l[b]);if(o)for(const b in this.fixedUniforms)this.fixedUniforms[b].set(o[b]);m&&m.setUniforms(t,this.binderUniforms,p,{zoom:f});let v=0;switch(e){case x.LINES:v=2;break;case x.TRIANGLES:v=3;break;case x.LINE_STRIP:v=1}for(const b of d.get()){const i=b.vaos||(b.vaos={});(i[c]||(i[c]=new xi)).bind(t,this,h,m?m.getPaintVertexBuffers():[],u,b.vertexOffset,_,g,y),x.drawElements(e,b.primitiveLength*v,x.UNSIGNED_SHORT,b.primitiveOffset*v*2)}}}function Pi(t,i,r){const n=1/e.at(r,1,i.transform.tileZoom),s=Math.pow(2,r.tileID.overscaledZ),o=r.tileSize*Math.pow(2,i.transform.tileZoom)/s,a=o*(r.tileID.canonical.x+r.tileID.wrap*s),l=o*r.tileID.canonical.y;return{u_image:0,u_texsize:r.imageAtlasTexture.size,u_scale:[n,t.fromScale,t.toScale],u_fade:t.t,u_pixel_coord_upper:[a>>16,l>>16],u_pixel_coord_lower:[65535&a,65535&l]}}const Mi=(t,i,r,n)=>{const s=t.style.light,o=s.properties.get("position"),a=[o.x,o.y,o.z],l=e.bI();"viewport"===s.properties.get("anchor")&&e.bJ(l,t.transform.bearingInRadians),e.bK(a,a,l);const c=t.transform.transformLightDirection(a),h=s.properties.get("color");return{u_lightpos:a,u_lightpos_globe:c,u_lightintensity:s.properties.get("intensity"),u_lightcolor:[h.r,h.g,h.b],u_vertical_gradient:+i,u_opacity:r,u_fill_translate:n}},Si=(t,i,r,n,s,o,a)=>e.e(Mi(t,i,r,n),Pi(o,t,a),{u_height_factor:-Math.pow(2,s.overscaledZ)/a.tileSize/8}),Ii=(t,i,r,n)=>e.e(Pi(i,t,r),{u_fill_translate:n}),Ci=(t,e)=>({u_world:t,u_fill_translate:e}),Ei=(t,i,r,n,s)=>e.e(Ii(t,i,r,s),{u_world:n}),Ai=(t,i,r,n,s)=>{const o=t.transform;let a,l,c=0;if("map"===r.paint.get("circle-pitch-alignment")){const t=e.at(i,1,o.zoom);a=!0,l=[t,t],c=t/(e.X*Math.pow(2,i.tileID.overscaledZ))*2*Math.PI*s}else a=!1,l=o.pixelsToGLUnits;return{u_camera_to_center_distance:o.cameraToCenterDistance,u_scale_with_map:+("map"===r.paint.get("circle-pitch-scale")),u_pitch_with_map:+a,u_device_pixel_ratio:t.pixelRatio,u_extrude_scale:l,u_globe_extrude_scale:c,u_translate:n}},zi=t=>({u_pixel_extrude_scale:[1/t.width,1/t.height]}),ki=t=>({u_viewport_size:[t.width,t.height]}),Di=(t,e=1)=>({u_color:t,u_overlay:0,u_overlay_scale:e}),Ri=(t,i,r,n)=>{const s=e.at(t,1,i)/(e.X*Math.pow(2,t.tileID.overscaledZ))*2*Math.PI*n;return{u_extrude_scale:e.at(t,1,i),u_intensity:r,u_globe_extrude_scale:s}},Li=(t,i,r,n)=>{const s=e.H();e.bL(s,0,t.width,t.height,0,0,1);const o=t.context.gl;return{u_matrix:s,u_world:[o.drawingBufferWidth,o.drawingBufferHeight],u_image:r,u_color_ramp:n,u_opacity:i.paint.get("heatmap-opacity")}},Fi=(t,e,i)=>{const r=i.paint.get("hillshade-shadow-color"),n=i.paint.get("hillshade-highlight-color"),s=i.paint.get("hillshade-accent-color");let o=i.paint.get("hillshade-illumination-direction")*(Math.PI/180);return"viewport"===i.paint.get("hillshade-illumination-anchor")&&(o+=t.transform.bearingInRadians),{u_image:0,u_latrange:Oi(0,e.tileID),u_light:[i.paint.get("hillshade-exaggeration"),o],u_shadow:r,u_highlight:n,u_accent:s}},Bi=(t,i)=>{const r=i.stride,n=e.H();return e.bL(n,0,e.X,-8192,0,0,1),e.J(n,n,[0,-8192,0]),{u_matrix:n,u_image:1,u_dimension:[r,r],u_zoom:t.overscaledZ,u_unpack:i.getUnpackVector()}};function Oi(t,i){const r=Math.pow(2,i.canonical.z),n=i.canonical.y;return[new e.Y(0,n/r).toLngLat().lat,new e.Y(0,(n+1)/r).toLngLat().lat]}const ji=(t,i,r,n)=>{const s=t.transform;return{u_translation:Gi(t,i,r),u_ratio:n/e.at(i,1,s.zoom),u_device_pixel_ratio:t.pixelRatio,u_units_to_pixels:[1/s.pixelsToGLUnits[0],1/s.pixelsToGLUnits[1]]}},Vi=(t,i,r,n,s)=>e.e(ji(t,i,r,n),{u_image:0,u_image_height:s}),Ni=(t,i,r,n,s)=>{const o=t.transform,a=Zi(i,o);return{u_translation:Gi(t,i,r),u_texsize:i.imageAtlasTexture.size,u_ratio:n/e.at(i,1,o.zoom),u_device_pixel_ratio:t.pixelRatio,u_image:0,u_scale:[a,s.fromScale,s.toScale],u_fade:s.t,u_units_to_pixels:[1/o.pixelsToGLUnits[0],1/o.pixelsToGLUnits[1]]}},Ui=(t,i,r,n,s,o)=>{const a=t.lineAtlas,l=Zi(i,t.transform),c="round"===r.layout.get("line-cap"),h=a.getDash(s.from,c),u=a.getDash(s.to,c),d=h.width*o.fromScale,p=u.width*o.toScale;return e.e(ji(t,i,r,n),{u_patternscale_a:[l/d,-h.height/2],u_patternscale_b:[l/p,-u.height/2],u_sdfgamma:a.width/(256*Math.min(d,p)*t.pixelRatio)/2,u_image:0,u_tex_y_a:h.y,u_tex_y_b:u.y,u_mix:o.t})};function Zi(t,i){return 1/e.at(t,1,i.tileZoom)}function Gi(t,i,r){return e.au(t.transform,i,r.paint.get("line-translate"),r.paint.get("line-translate-anchor"))}const $i=(t,e,i,r,n)=>{return{u_tl_parent:t,u_scale_parent:e,u_buffer_scale:1,u_fade_t:i.mix,u_opacity:i.opacity*r.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:r.paint.get("raster-brightness-min"),u_brightness_high:r.paint.get("raster-brightness-max"),u_saturation_factor:(o=r.paint.get("raster-saturation"),o>0?1-1/(1.001-o):-o),u_contrast_factor:(s=r.paint.get("raster-contrast"),s>0?1/(1-s):1+s),u_spin_weights:qi(r.paint.get("raster-hue-rotate")),u_coords_top:[n[0].x,n[0].y,n[1].x,n[1].y],u_coords_bottom:[n[3].x,n[3].y,n[2].x,n[2].y]};var s,o};function qi(t){t*=Math.PI/180;const e=Math.sin(t),i=Math.cos(t);return[(2*i+1)/3,(-Math.sqrt(3)*e-i+1)/3,(Math.sqrt(3)*e-i+1)/3]}const Hi=(t,e,i,r,n,s,o,a,l,c,h,u,d)=>{const p=o.transform;return{u_is_size_zoom_constant:+("constant"===t||"source"===t),u_is_size_feature_constant:+("constant"===t||"camera"===t),u_size_t:e?e.uSizeT:0,u_size:e?e.uSize:0,u_camera_to_center_distance:p.cameraToCenterDistance,u_pitch:p.pitch/360*2*Math.PI,u_rotate_symbol:+i,u_aspect_ratio:p.width/p.height,u_fade_change:o.options.fadeDuration?o.symbolFadeChange:1,u_label_plane_matrix:a,u_coord_matrix:l,u_is_text:+h,u_pitch_with_map:+r,u_is_along_line:n,u_is_variable_anchor:s,u_texsize:u,u_texture:0,u_translation:c,u_pitched_scale:d}},Xi=(t,i,r,n,s,o,a,l,c,h,u,d,p,f)=>{const m=a.transform;return e.e(Hi(t,i,r,n,s,o,a,l,c,h,u,d,f),{u_gamma_scale:n?Math.cos(m.pitch*Math.PI/180)*m.cameraToCenterDistance:1,u_device_pixel_ratio:a.pixelRatio,u_is_halo:1})},Wi=(t,i,r,n,s,o,a,l,c,h,u,d,p)=>e.e(Xi(t,i,r,n,s,o,a,l,c,h,!0,u,0,p),{u_texsize_icon:d,u_texture_icon:1}),Ki=(t,e)=>({u_opacity:t,u_color:e}),Yi=(t,i,r,n,s)=>e.e(function(t,i,r,n){const s=r.imageManager.getPattern(t.from.toString()),o=r.imageManager.getPattern(t.to.toString()),{width:a,height:l}=r.imageManager.getPixelSize(),c=Math.pow(2,n.tileID.overscaledZ),h=n.tileSize*Math.pow(2,r.transform.tileZoom)/c,u=h*(n.tileID.canonical.x+n.tileID.wrap*c),d=h*n.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:s.tl,u_pattern_br_a:s.br,u_pattern_tl_b:o.tl,u_pattern_br_b:o.br,u_texsize:[a,l],u_mix:i.t,u_pattern_size_a:s.displaySize,u_pattern_size_b:o.displaySize,u_scale_a:i.fromScale,u_scale_b:i.toScale,u_tile_units_to_pixels:1/e.at(n,1,r.transform.tileZoom),u_pixel_coord_upper:[u>>16,d>>16],u_pixel_coord_lower:[65535&u,65535&d]}}(r,s,i,n),{u_opacity:t}),Ji=(t,e)=>{},Qi={fillExtrusion:(t,i)=>({u_lightpos:new e.bG(t,i.u_lightpos),u_lightpos_globe:new e.bG(t,i.u_lightpos_globe),u_lightintensity:new e.b5(t,i.u_lightintensity),u_lightcolor:new e.bG(t,i.u_lightcolor),u_vertical_gradient:new e.b5(t,i.u_vertical_gradient),u_opacity:new e.b5(t,i.u_opacity),u_fill_translate:new e.bH(t,i.u_fill_translate)}),fillExtrusionPattern:(t,i)=>({u_lightpos:new e.bG(t,i.u_lightpos),u_lightpos_globe:new e.bG(t,i.u_lightpos_globe),u_lightintensity:new e.b5(t,i.u_lightintensity),u_lightcolor:new e.bG(t,i.u_lightcolor),u_vertical_gradient:new e.b5(t,i.u_vertical_gradient),u_height_factor:new e.b5(t,i.u_height_factor),u_opacity:new e.b5(t,i.u_opacity),u_fill_translate:new e.bH(t,i.u_fill_translate),u_image:new e.bC(t,i.u_image),u_texsize:new e.bH(t,i.u_texsize),u_pixel_coord_upper:new e.bH(t,i.u_pixel_coord_upper),u_pixel_coord_lower:new e.bH(t,i.u_pixel_coord_lower),u_scale:new e.bG(t,i.u_scale),u_fade:new e.b5(t,i.u_fade)}),fill:(t,i)=>({u_fill_translate:new e.bH(t,i.u_fill_translate)}),fillPattern:(t,i)=>({u_image:new e.bC(t,i.u_image),u_texsize:new e.bH(t,i.u_texsize),u_pixel_coord_upper:new e.bH(t,i.u_pixel_coord_upper),u_pixel_coord_lower:new e.bH(t,i.u_pixel_coord_lower),u_scale:new e.bG(t,i.u_scale),u_fade:new e.b5(t,i.u_fade),u_fill_translate:new e.bH(t,i.u_fill_translate)}),fillOutline:(t,i)=>({u_world:new e.bH(t,i.u_world),u_fill_translate:new e.bH(t,i.u_fill_translate)}),fillOutlinePattern:(t,i)=>({u_world:new e.bH(t,i.u_world),u_image:new e.bC(t,i.u_image),u_texsize:new e.bH(t,i.u_texsize),u_pixel_coord_upper:new e.bH(t,i.u_pixel_coord_upper),u_pixel_coord_lower:new e.bH(t,i.u_pixel_coord_lower),u_scale:new e.bG(t,i.u_scale),u_fade:new e.b5(t,i.u_fade),u_fill_translate:new e.bH(t,i.u_fill_translate)}),circle:(t,i)=>({u_camera_to_center_distance:new e.b5(t,i.u_camera_to_center_distance),u_scale_with_map:new e.bC(t,i.u_scale_with_map),u_pitch_with_map:new e.bC(t,i.u_pitch_with_map),u_extrude_scale:new e.bH(t,i.u_extrude_scale),u_device_pixel_ratio:new e.b5(t,i.u_device_pixel_ratio),u_globe_extrude_scale:new e.b5(t,i.u_globe_extrude_scale),u_translate:new e.bH(t,i.u_translate)}),collisionBox:(t,i)=>({u_pixel_extrude_scale:new e.bH(t,i.u_pixel_extrude_scale)}),collisionCircle:(t,i)=>({u_viewport_size:new e.bH(t,i.u_viewport_size)}),debug:(t,i)=>({u_color:new e.bF(t,i.u_color),u_overlay:new e.bC(t,i.u_overlay),u_overlay_scale:new e.b5(t,i.u_overlay_scale)}),depth:Ji,clippingMask:Ji,heatmap:(t,i)=>({u_extrude_scale:new e.b5(t,i.u_extrude_scale),u_intensity:new e.b5(t,i.u_intensity),u_globe_extrude_scale:new e.b5(t,i.u_globe_extrude_scale)}),heatmapTexture:(t,i)=>({u_matrix:new e.bD(t,i.u_matrix),u_world:new e.bH(t,i.u_world),u_image:new e.bC(t,i.u_image),u_color_ramp:new e.bC(t,i.u_color_ramp),u_opacity:new e.b5(t,i.u_opacity)}),hillshade:(t,i)=>({u_image:new e.bC(t,i.u_image),u_latrange:new e.bH(t,i.u_latrange),u_light:new e.bH(t,i.u_light),u_shadow:new e.bF(t,i.u_shadow),u_highlight:new e.bF(t,i.u_highlight),u_accent:new e.bF(t,i.u_accent)}),hillshadePrepare:(t,i)=>({u_matrix:new e.bD(t,i.u_matrix),u_image:new e.bC(t,i.u_image),u_dimension:new e.bH(t,i.u_dimension),u_zoom:new e.b5(t,i.u_zoom),u_unpack:new e.bE(t,i.u_unpack)}),line:(t,i)=>({u_translation:new e.bH(t,i.u_translation),u_ratio:new e.b5(t,i.u_ratio),u_device_pixel_ratio:new e.b5(t,i.u_device_pixel_ratio),u_units_to_pixels:new e.bH(t,i.u_units_to_pixels)}),lineGradient:(t,i)=>({u_translation:new e.bH(t,i.u_translation),u_ratio:new e.b5(t,i.u_ratio),u_device_pixel_ratio:new e.b5(t,i.u_device_pixel_ratio),u_units_to_pixels:new e.bH(t,i.u_units_to_pixels),u_image:new e.bC(t,i.u_image),u_image_height:new e.b5(t,i.u_image_height)}),linePattern:(t,i)=>({u_translation:new e.bH(t,i.u_translation),u_texsize:new e.bH(t,i.u_texsize),u_ratio:new e.b5(t,i.u_ratio),u_device_pixel_ratio:new e.b5(t,i.u_device_pixel_ratio),u_image:new e.bC(t,i.u_image),u_units_to_pixels:new e.bH(t,i.u_units_to_pixels),u_scale:new e.bG(t,i.u_scale),u_fade:new e.b5(t,i.u_fade)}),lineSDF:(t,i)=>({u_translation:new e.bH(t,i.u_translation),u_ratio:new e.b5(t,i.u_ratio),u_device_pixel_ratio:new e.b5(t,i.u_device_pixel_ratio),u_units_to_pixels:new e.bH(t,i.u_units_to_pixels),u_patternscale_a:new e.bH(t,i.u_patternscale_a),u_patternscale_b:new e.bH(t,i.u_patternscale_b),u_sdfgamma:new e.b5(t,i.u_sdfgamma),u_image:new e.bC(t,i.u_image),u_tex_y_a:new e.b5(t,i.u_tex_y_a),u_tex_y_b:new e.b5(t,i.u_tex_y_b),u_mix:new e.b5(t,i.u_mix)}),raster:(t,i)=>({u_tl_parent:new e.bH(t,i.u_tl_parent),u_scale_parent:new e.b5(t,i.u_scale_parent),u_buffer_scale:new e.b5(t,i.u_buffer_scale),u_fade_t:new e.b5(t,i.u_fade_t),u_opacity:new e.b5(t,i.u_opacity),u_image0:new e.bC(t,i.u_image0),u_image1:new e.bC(t,i.u_image1),u_brightness_low:new e.b5(t,i.u_brightness_low),u_brightness_high:new e.b5(t,i.u_brightness_high),u_saturation_factor:new e.b5(t,i.u_saturation_factor),u_contrast_factor:new e.b5(t,i.u_contrast_factor),u_spin_weights:new e.bG(t,i.u_spin_weights),u_coords_top:new e.bE(t,i.u_coords_top),u_coords_bottom:new e.bE(t,i.u_coords_bottom)}),symbolIcon:(t,i)=>({u_is_size_zoom_constant:new e.bC(t,i.u_is_size_zoom_constant),u_is_size_feature_constant:new e.bC(t,i.u_is_size_feature_constant),u_size_t:new e.b5(t,i.u_size_t),u_size:new e.b5(t,i.u_size),u_camera_to_center_distance:new e.b5(t,i.u_camera_to_center_distance),u_pitch:new e.b5(t,i.u_pitch),u_rotate_symbol:new e.bC(t,i.u_rotate_symbol),u_aspect_ratio:new e.b5(t,i.u_aspect_ratio),u_fade_change:new e.b5(t,i.u_fade_change),u_label_plane_matrix:new e.bD(t,i.u_label_plane_matrix),u_coord_matrix:new e.bD(t,i.u_coord_matrix),u_is_text:new e.bC(t,i.u_is_text),u_pitch_with_map:new e.bC(t,i.u_pitch_with_map),u_is_along_line:new e.bC(t,i.u_is_along_line),u_is_variable_anchor:new e.bC(t,i.u_is_variable_anchor),u_texsize:new e.bH(t,i.u_texsize),u_texture:new e.bC(t,i.u_texture),u_translation:new e.bH(t,i.u_translation),u_pitched_scale:new e.b5(t,i.u_pitched_scale)}),symbolSDF:(t,i)=>({u_is_size_zoom_constant:new e.bC(t,i.u_is_size_zoom_constant),u_is_size_feature_constant:new e.bC(t,i.u_is_size_feature_constant),u_size_t:new e.b5(t,i.u_size_t),u_size:new e.b5(t,i.u_size),u_camera_to_center_distance:new e.b5(t,i.u_camera_to_center_distance),u_pitch:new e.b5(t,i.u_pitch),u_rotate_symbol:new e.bC(t,i.u_rotate_symbol),u_aspect_ratio:new e.b5(t,i.u_aspect_ratio),u_fade_change:new e.b5(t,i.u_fade_change),u_label_plane_matrix:new e.bD(t,i.u_label_plane_matrix),u_coord_matrix:new e.bD(t,i.u_coord_matrix),u_is_text:new e.bC(t,i.u_is_text),u_pitch_with_map:new e.bC(t,i.u_pitch_with_map),u_is_along_line:new e.bC(t,i.u_is_along_line),u_is_variable_anchor:new e.bC(t,i.u_is_variable_anchor),u_texsize:new e.bH(t,i.u_texsize),u_texture:new e.bC(t,i.u_texture),u_gamma_scale:new e.b5(t,i.u_gamma_scale),u_device_pixel_ratio:new e.b5(t,i.u_device_pixel_ratio),u_is_halo:new e.bC(t,i.u_is_halo),u_translation:new e.bH(t,i.u_translation),u_pitched_scale:new e.b5(t,i.u_pitched_scale)}),symbolTextAndIcon:(t,i)=>({u_is_size_zoom_constant:new e.bC(t,i.u_is_size_zoom_constant),u_is_size_feature_constant:new e.bC(t,i.u_is_size_feature_constant),u_size_t:new e.b5(t,i.u_size_t),u_size:new e.b5(t,i.u_size),u_camera_to_center_distance:new e.b5(t,i.u_camera_to_center_distance),u_pitch:new e.b5(t,i.u_pitch),u_rotate_symbol:new e.bC(t,i.u_rotate_symbol),u_aspect_ratio:new e.b5(t,i.u_aspect_ratio),u_fade_change:new e.b5(t,i.u_fade_change),u_label_plane_matrix:new e.bD(t,i.u_label_plane_matrix),u_coord_matrix:new e.bD(t,i.u_coord_matrix),u_is_text:new e.bC(t,i.u_is_text),u_pitch_with_map:new e.bC(t,i.u_pitch_with_map),u_is_along_line:new e.bC(t,i.u_is_along_line),u_is_variable_anchor:new e.bC(t,i.u_is_variable_anchor),u_texsize:new e.bH(t,i.u_texsize),u_texsize_icon:new e.bH(t,i.u_texsize_icon),u_texture:new e.bC(t,i.u_texture),u_texture_icon:new e.bC(t,i.u_texture_icon),u_gamma_scale:new e.b5(t,i.u_gamma_scale),u_device_pixel_ratio:new e.b5(t,i.u_device_pixel_ratio),u_is_halo:new e.bC(t,i.u_is_halo),u_translation:new e.bH(t,i.u_translation),u_pitched_scale:new e.b5(t,i.u_pitched_scale)}),background:(t,i)=>({u_opacity:new e.b5(t,i.u_opacity),u_color:new e.bF(t,i.u_color)}),backgroundPattern:(t,i)=>({u_opacity:new e.b5(t,i.u_opacity),u_image:new e.bC(t,i.u_image),u_pattern_tl_a:new e.bH(t,i.u_pattern_tl_a),u_pattern_br_a:new e.bH(t,i.u_pattern_br_a),u_pattern_tl_b:new e.bH(t,i.u_pattern_tl_b),u_pattern_br_b:new e.bH(t,i.u_pattern_br_b),u_texsize:new e.bH(t,i.u_texsize),u_mix:new e.b5(t,i.u_mix),u_pattern_size_a:new e.bH(t,i.u_pattern_size_a),u_pattern_size_b:new e.bH(t,i.u_pattern_size_b),u_scale_a:new e.b5(t,i.u_scale_a),u_scale_b:new e.b5(t,i.u_scale_b),u_pixel_coord_upper:new e.bH(t,i.u_pixel_coord_upper),u_pixel_coord_lower:new e.bH(t,i.u_pixel_coord_lower),u_tile_units_to_pixels:new e.b5(t,i.u_tile_units_to_pixels)}),terrain:(t,i)=>({u_texture:new e.bC(t,i.u_texture),u_ele_delta:new e.b5(t,i.u_ele_delta),u_fog_matrix:new e.bD(t,i.u_fog_matrix),u_fog_color:new e.bF(t,i.u_fog_color),u_fog_ground_blend:new e.b5(t,i.u_fog_ground_blend),u_fog_ground_blend_opacity:new e.b5(t,i.u_fog_ground_blend_opacity),u_horizon_color:new e.bF(t,i.u_horizon_color),u_horizon_fog_blend:new e.b5(t,i.u_horizon_fog_blend),u_is_globe_mode:new e.b5(t,i.u_is_globe_mode)}),terrainDepth:(t,i)=>({u_ele_delta:new e.b5(t,i.u_ele_delta)}),terrainCoords:(t,i)=>({u_texture:new e.bC(t,i.u_texture),u_terrain_coords_id:new e.b5(t,i.u_terrain_coords_id),u_ele_delta:new e.b5(t,i.u_ele_delta)}),projectionErrorMeasurement:(t,i)=>({u_input:new e.b5(t,i.u_input),u_output_expected:new e.b5(t,i.u_output_expected)}),atmosphere:(t,i)=>({u_sun_pos:new e.bG(t,i.u_sun_pos),u_atmosphere_blend:new e.b5(t,i.u_atmosphere_blend),u_globe_position:new e.bG(t,i.u_globe_position),u_globe_radius:new e.b5(t,i.u_globe_radius),u_inv_proj_matrix:new e.bD(t,i.u_inv_proj_matrix)}),sky:(t,i)=>({u_sky_color:new e.bF(t,i.u_sky_color),u_horizon_color:new e.bF(t,i.u_horizon_color),u_horizon:new e.bH(t,i.u_horizon),u_horizon_normal:new e.bH(t,i.u_horizon_normal),u_sky_horizon_blend:new e.b5(t,i.u_sky_horizon_blend),u_sky_blend:new e.b5(t,i.u_sky_blend)})};class tr{constructor(t,e,i){this.context=t;const r=t.gl;this.buffer=r.createBuffer(),this.dynamicDraw=Boolean(i),this.context.unbindVAO(),t.bindElementBuffer.set(this.buffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,e.arrayBuffer,this.dynamicDraw?r.DYNAMIC_DRAW:r.STATIC_DRAW),this.dynamicDraw||delete e.arrayBuffer}bind(){this.context.bindElementBuffer.set(this.buffer)}updateData(t){const e=this.context.gl;if(!this.dynamicDraw)throw new Error("Attempted to update data while not in dynamic mode.");this.context.unbindVAO(),this.bind(),e.bufferSubData(e.ELEMENT_ARRAY_BUFFER,0,t.arrayBuffer)}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}const er={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"};class ir{constructor(t,e,i,r){this.length=e.length,this.attributes=i,this.itemSize=e.bytesPerElement,this.dynamicDraw=r,this.context=t;const n=t.gl;this.buffer=n.createBuffer(),t.bindVertexBuffer.set(this.buffer),n.bufferData(n.ARRAY_BUFFER,e.arrayBuffer,this.dynamicDraw?n.DYNAMIC_DRAW:n.STATIC_DRAW),this.dynamicDraw||delete e.arrayBuffer}bind(){this.context.bindVertexBuffer.set(this.buffer)}updateData(t){if(t.length!==this.length)throw new Error(`Length of new data is ${t.length}, which doesn't match current length of ${this.length}`);const e=this.context.gl;this.bind(),e.bufferSubData(e.ARRAY_BUFFER,0,t.arrayBuffer)}enableAttributes(t,e){for(let i=0;i0&&(h.push({circleArray:_,circleOffset:d,coord:p}),u+=_.length/4,d=u),m&&c.draw(o,l.LINES,je.disabled,Ne.disabled,t.colorModeForRenderPass(),Oe.disabled,zi(t.transform),t.style.map.terrain&&t.style.map.terrain.getTerrainData(p),a.getProjectionData({overscaledTileID:p,applyGlobeMatrix:!0,applyTerrainMatrix:!0}),r.id,m.layoutVertexBuffer,m.indexBuffer,m.segments,null,t.transform.zoom,null,null,m.collisionVertexBuffer)}if(!s||!h.length)return;const p=t.useProgram("collisionCircle"),f=new e.bM;f.resize(4*u),f._trim();let m=0;for(const e of h)for(let t=0;t=0&&(_[m.associatedIconIndex]={shiftedAnchor:C,angle:E})}else Bt(m.numGlyphs,f)}if(c){m.clear();const i=t.icon.placedSymbolArray;for(let t=0;tt.style.map.terrain.getElevation(I,e,i):null,i="map"===r.layout.get("text-rotation-alignment");Pt(l,t,s,O,j,y,h,i,I.toUnwrapped(),_.width,_.height,N,e)}const $=s&&P||G,q=x||$?Gr:y?O:t.transform.clipSpaceToPixelsMatrix,H=d&&0!==r.paint.get(s?"text-halo-width":"icon-halo-width").constantOr(1);let X;X=d?l.iconsInText?Wi(f.kind,E,v,y,x,$,t,q,V,N,z,L,S):Xi(f.kind,E,v,y,x,$,t,q,V,N,s,z,0,S):Hi(f.kind,E,v,y,x,$,t,q,V,N,s,z,S);const W={program:C,buffers:c,uniformValues:X,projectionData:U,atlasTexture:k,atlasTextureIcon:F,atlasInterpolation:D,atlasInterpolationIcon:R,isSDF:d,hasHalo:H};if(b&&l.canOverlap){w=!0;const t=c.segments.get();for(const i of t)M.push({segments:new e.aD([i]),sortKey:i.sortKey,state:W,terrainData:A})}else M.push({segments:c.segments,sortKey:0,state:W,terrainData:A})}w&&M.sort(((t,e)=>t.sortKey-e.sortKey));for(const e of M){const i=e.state;if(f.activeTexture.set(m.TEXTURE0),i.atlasTexture.bind(i.atlasInterpolation,m.CLAMP_TO_EDGE),i.atlasTextureIcon&&(f.activeTexture.set(m.TEXTURE1),i.atlasTextureIcon&&i.atlasTextureIcon.bind(i.atlasInterpolationIcon,m.CLAMP_TO_EDGE)),i.isSDF){const n=i.uniformValues;i.hasHalo&&(n.u_is_halo=1,Kr(i.buffers,e.segments,r,t,i.program,T,u,d,n,i.projectionData,e.terrainData)),n.u_is_halo=0}Kr(i.buffers,e.segments,r,t,i.program,T,u,d,i.uniformValues,i.projectionData,e.terrainData)}}function Kr(t,e,i,r,n,s,o,a,l,c,h){const u=r.context;n.draw(u,u.gl.TRIANGLES,s,o,a,Oe.backCCW,l,h,c,i.id,t.layoutVertexBuffer,t.indexBuffer,e,i.paint,r.transform.zoom,t.programConfigurations.get(i.id),t.dynamicLayoutVertexBuffer,t.opacityVertexBuffer)}function Yr(t,i,r,n,s){const o=t.context,a=o.gl,l=Ne.disabled,c=new Fe([a.ONE,a.ONE],e.b4.transparent,[!0,!0,!0,!0]),h=i.getBucket(r);if(!h)return;const u=n.key;let d=r.heatmapFbos.get(u);d||(d=Qr(o,i.tileSize,i.tileSize),r.heatmapFbos.set(u,d)),o.bindFramebuffer.set(d.framebuffer),o.viewport.set([0,0,i.tileSize,i.tileSize]),o.clear({color:e.b4.transparent});const p=h.programConfigurations.get(r.id),f=t.useProgram("heatmap",p,!s),m=t.transform.getProjectionData({overscaledTileID:i.tileID,applyGlobeMatrix:!0,applyTerrainMatrix:!0}),_=t.style.map.terrain.getTerrainData(n);f.draw(o,a.TRIANGLES,je.disabled,l,c,Oe.disabled,Ri(i,t.transform.zoom,r.paint.get("heatmap-intensity"),1),_,m,r.id,h.layoutVertexBuffer,h.indexBuffer,h.segments,r.paint,t.transform.zoom,p)}function Jr(t,e,i,r,n){const s=t.context,o=s.gl,a=t.transform;s.setColorMode(t.colorModeForRenderPass());const l=tn(s,e),c=i.key,h=e.heatmapFbos.get(c);if(!h)return;s.activeTexture.set(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,h.colorAttachment.get()),s.activeTexture.set(o.TEXTURE1),l.bind(o.LINEAR,o.CLAMP_TO_EDGE);const u=a.getProjectionData({overscaledTileID:i,applyTerrainMatrix:n,applyGlobeMatrix:!r});t.useProgram("heatmapTexture").draw(s,o.TRIANGLES,je.disabled,Ne.disabled,t.colorModeForRenderPass(),Oe.disabled,Li(t,e,0,1),null,u,e.id,t.rasterBoundsBuffer,t.quadTriangleIndexBuffer,t.rasterBoundsSegments,e.paint,a.zoom),h.destroy(),e.heatmapFbos.delete(c)}function Qr(t,e,i){var r,n;const s=t.gl,o=s.createTexture();s.bindTexture(s.TEXTURE_2D,o),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,s.LINEAR),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MAG_FILTER,s.LINEAR);const a=null!==(r=t.HALF_FLOAT)&&void 0!==r?r:s.UNSIGNED_BYTE,l=null!==(n=t.RGBA16F)&&void 0!==n?n:s.RGBA;s.texImage2D(s.TEXTURE_2D,0,l,e,i,0,s.RGBA,a,null);const c=t.createFramebuffer(e,i,!1,!1);return c.colorAttachment.set(o),c}function tn(t,e){return e.colorRampTexture||(e.colorRampTexture=new y(t,e.colorRamp,t.gl.RGBA)),e.colorRampTexture}function en(t,e,i,r,n){if(!i||!r||!r.imageAtlas)return;const s=r.imageAtlas.patternPositions;let o=s[i.to.toString()],a=s[i.from.toString()];if(!o&&a&&(o=a),!a&&o&&(a=o),!o||!a){const t=n.getPaintProperty(e);o=s[t],a=s[t]}o&&a&&t.setConstantPatternPositions(o,a)}function rn(t,i,r,n,s,o,a,l){const c=t.context.gl,h="fill-pattern",u=r.paint.get(h),d=u&&u.constantOr(1),p=r.getCrossfadeParameters();let f,m,_,g,y;const x=t.transform,v=r.paint.get("fill-translate"),b=r.paint.get("fill-translate-anchor");a?(m=d&&!r.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",f=c.LINES):(m=d?"fillPattern":"fill",f=c.TRIANGLES);const w=u.constantOr(null);for(const T of n){const u=i.getTile(T);if(d&&!u.patternsLoaded())continue;const P=u.getBucket(r);if(!P)continue;const M=P.programConfigurations.get(r.id),S=t.useProgram(m,M),I=t.style.map.terrain&&t.style.map.terrain.getTerrainData(T);d&&(t.context.activeTexture.set(c.TEXTURE0),u.imageAtlasTexture.bind(c.LINEAR,c.CLAMP_TO_EDGE),M.updatePaintBuffers(p)),en(M,h,w,u,r);const C=x.getProjectionData({overscaledTileID:T,applyGlobeMatrix:!l,applyTerrainMatrix:!0}),E=e.au(x,u,v,b);if(a){g=P.indexBuffer2,y=P.segments2;const e=[c.drawingBufferWidth,c.drawingBufferHeight];_="fillOutlinePattern"===m&&d?Ei(t,p,u,e,E):Ci(e,E)}else g=P.indexBuffer,y=P.segments,_=d?Ii(t,p,u,E):{u_fill_translate:E};let A;if("translucent"===t.renderPass&&l){const[e]=t.getStencilConfigForOverlapAndUpdateStencilID(n);A=e[T.overscaledZ]}else A=t.stencilModeForClipping(T);S.draw(t.context,f,s,A,o,Oe.backCCW,_,I,C,r.id,P.layoutVertexBuffer,g,y,r.paint,t.transform.zoom,M)}}function nn(t,i,r,n,s,o,a,l){const c=t.context,h=c.gl,u="fill-extrusion-pattern",d=r.paint.get(u),p=d.constantOr(1),f=r.getCrossfadeParameters(),m=r.paint.get("fill-extrusion-opacity"),_=d.constantOr(null),g=t.transform;for(const y of n){const n=i.getTile(y),d=n.getBucket(r);if(!d)continue;const x=t.style.map.terrain&&t.style.map.terrain.getTerrainData(y),v=d.programConfigurations.get(r.id),b=t.useProgram(p?"fillExtrusionPattern":"fillExtrusion",v);p&&(t.context.activeTexture.set(h.TEXTURE0),n.imageAtlasTexture.bind(h.LINEAR,h.CLAMP_TO_EDGE),v.updatePaintBuffers(f));const w=g.getProjectionData({overscaledTileID:y,applyGlobeMatrix:!l,applyTerrainMatrix:!0});en(v,u,_,n,r);const T=e.au(g,n,r.paint.get("fill-extrusion-translate"),r.paint.get("fill-extrusion-translate-anchor")),P=r.paint.get("fill-extrusion-vertical-gradient"),M=p?Si(t,P,m,T,y,f,n):Mi(t,P,m,T);b.draw(c,c.gl.TRIANGLES,s,o,a,Oe.backCCW,M,x,w,r.id,d.layoutVertexBuffer,d.indexBuffer,d.segments,r.paint,t.transform.zoom,v,t.style.map.terrain&&d.centroidVertexBuffer)}}function sn(t,e,i,r,n,s,o,a,l){var c;const h=t.style.projection,u=t.context,d=t.transform,p=u.gl,f=t.useProgram("hillshade"),m=!t.options.moving;for(const _ of r){const r=e.getTile(_),g=r.fbo;if(!g)continue;const y=h.getMeshFromTileID(u,_.canonical,a,!0,"raster"),x=null===(c=t.style.map.terrain)||void 0===c?void 0:c.getTerrainData(_);u.activeTexture.set(p.TEXTURE0),p.bindTexture(p.TEXTURE_2D,g.colorAttachment.get());const v=d.getProjectionData({overscaledTileID:_,aligned:m,applyGlobeMatrix:!l,applyTerrainMatrix:!0});f.draw(u,p.TRIANGLES,s,n[_.overscaledZ],o,Oe.backCCW,Fi(t,r,i),x,v,i.id,y.vertexBuffer,y.indexBuffer,y.segments)}}const on=[new e.P(0,0),new e.P(e.X,0),new e.P(e.X,e.X),new e.P(0,e.X)];function an(t,e,i,r,n,s,o,a,l=!1,c=!1){const h=r[r.length-1].overscaledZ,u=t.context,d=u.gl,p=t.useProgram("raster"),f=t.transform,m=t.style.projection,_=t.colorModeForRenderPass(),g=!t.options.moving;for(const y of r){const r=t.getDepthModeForSublayer(y.overscaledZ-h,1===i.paint.get("raster-opacity")?je.ReadWrite:je.ReadOnly,d.LESS),x=e.getTile(y);x.registerFadeDuration(i.paint.get("raster-fade-duration"));const v=e.findLoadedParent(y,0),b=e.findLoadedSibling(y),w=ln(x,v||b||null,e,i,t.transform,t.style.map.terrain);let T,P;const M="nearest"===i.paint.get("raster-resampling")?d.NEAREST:d.LINEAR;u.activeTexture.set(d.TEXTURE0),x.texture.bind(M,d.CLAMP_TO_EDGE,d.LINEAR_MIPMAP_NEAREST),u.activeTexture.set(d.TEXTURE1),v?(v.texture.bind(M,d.CLAMP_TO_EDGE,d.LINEAR_MIPMAP_NEAREST),T=Math.pow(2,v.tileID.overscaledZ-x.tileID.overscaledZ),P=[x.tileID.canonical.x*T%1,x.tileID.canonical.y*T%1]):x.texture.bind(M,d.CLAMP_TO_EDGE,d.LINEAR_MIPMAP_NEAREST),x.texture.useMipmap&&u.extTextureFilterAnisotropic&&t.transform.pitch>20&&d.texParameterf(d.TEXTURE_2D,u.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,u.extTextureFilterAnisotropicMax);const S=t.style.map.terrain&&t.style.map.terrain.getTerrainData(y),I=f.getProjectionData({overscaledTileID:y,aligned:g,applyGlobeMatrix:!c,applyTerrainMatrix:!0}),C=$i(P||[0,0],T||1,w,i,a),E=m.getMeshFromTileID(u,y.canonical,s,o,"raster");p.draw(u,d.TRIANGLES,r,n?n[y.overscaledZ]:Ne.disabled,_,l?Oe.frontCCW:Oe.backCCW,C,S,I,i.id,E.vertexBuffer,E.indexBuffer,E.segments)}}function ln(t,i,r,n,s,a){const l=n.paint.get("raster-fade-duration");if(!a&&l>0){const n=o.now(),a=(n-t.timeAdded)/l,c=i?(n-i.timeAdded)/l:-1,h=r.getSource(),u=ht(s,{tileSize:h.tileSize,roundZoom:h.roundZoom}),d=!i||Math.abs(i.tileID.overscaledZ-u)>Math.abs(t.tileID.overscaledZ-u),p=d&&t.refreshedUponExpiration?1:e.ab(d?a:1-c,0,1);return t.refreshedUponExpiration&&a>=1&&(t.refreshedUponExpiration=!1),i?{opacity:1,mix:1-p}:{opacity:p,mix:0}}return{opacity:1,mix:0}}const cn=new e.b4(1,0,0,1),hn=new e.b4(0,1,0,1),un=new e.b4(0,0,1,1),dn=new e.b4(1,0,1,1),pn=new e.b4(0,1,1,1);function fn(t,e,i,r){_n(t,0,e+i/2,t.transform.width,i,r)}function mn(t,e,i,r){_n(t,e-i/2,0,i,t.transform.height,r)}function _n(t,e,i,r,n,s){const o=t.context,a=o.gl;a.enable(a.SCISSOR_TEST),a.scissor(e*t.pixelRatio,i*t.pixelRatio,r*t.pixelRatio,n*t.pixelRatio),o.clear({color:s}),a.disable(a.SCISSOR_TEST)}function gn(t,i,r){const n=t.context,s=n.gl,o=t.useProgram("debug"),a=je.disabled,l=Ne.disabled,c=t.colorModeForRenderPass(),h="$debug",u=t.style.map.terrain&&t.style.map.terrain.getTerrainData(r);n.activeTexture.set(s.TEXTURE0);const d=i.getTileByID(r.key).latestRawTileData,p=Math.floor((d&&d.byteLength||0)/1024),f=i.getTile(r).tileSize,m=512/Math.min(f,512)*(r.overscaledZ/t.transform.zoom)*.5;let _=r.canonical.toString();r.overscaledZ!==r.canonical.z&&(_+=` => ${r.overscaledZ}`),function(t,e){t.initDebugOverlayCanvas();const i=t.debugOverlayCanvas,r=t.context.gl,n=t.debugOverlayCanvas.getContext("2d");n.clearRect(0,0,i.width,i.height),n.shadowColor="white",n.shadowBlur=2,n.lineWidth=1.5,n.strokeStyle="white",n.textBaseline="top",n.font="bold 36px Open Sans, sans-serif",n.fillText(e,5,5),n.strokeText(e,5,5),t.debugOverlayTexture.update(i),t.debugOverlayTexture.bind(r.LINEAR,r.CLAMP_TO_EDGE)}(t,`${_} ${p}kB`);const g=t.transform.getProjectionData({overscaledTileID:r,applyGlobeMatrix:!0,applyTerrainMatrix:!0});o.draw(n,s.TRIANGLES,a,l,Fe.alphaBlended,Oe.disabled,Di(e.b4.transparent,m),null,g,h,t.debugBuffer,t.quadTriangleIndexBuffer,t.debugSegments),o.draw(n,s.LINE_STRIP,a,l,c,Oe.disabled,Di(e.b4.red),u,g,h,t.debugBuffer,t.tileBorderIndexBuffer,t.debugSegments)}function yn(t,e,i,r){const{isRenderingGlobe:n}=r,s=t.context,o=s.gl,a=t.transform,l=t.colorModeForRenderPass(),c=t.getDepthModeFor3D(),h=t.useProgram("terrain");s.bindFramebuffer.set(null),s.viewport.set([0,0,t.width,t.height]);for(const u of i){const i=e.getTerrainMesh(u.tileID),r=t.renderToTexture.getTexture(u),d=e.getTerrainData(u.tileID);s.activeTexture.set(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,r.texture);const p=e.getMeshFrameDelta(a.zoom),f=a.calculateFogMatrix(u.tileID.toUnwrapped()),m=vi(p,f,t.style.sky,a.pitch,n),_=a.getProjectionData({overscaledTileID:u.tileID,applyTerrainMatrix:!1,applyGlobeMatrix:!0});h.draw(s,o.TRIANGLES,c,Ne.disabled,l,Oe.backCCW,m,d,_,"terrain",i.vertexBuffer,i.indexBuffer,i.segments)}}function xn(t,i){if(!i.mesh){const r=new e.aC;r.emplaceBack(-1,-1),r.emplaceBack(1,-1),r.emplaceBack(1,1),r.emplaceBack(-1,1);const n=new e.aE;n.emplaceBack(0,1,2),n.emplaceBack(0,2,3),i.mesh=new fe(t.createVertexBuffer(r,me.members),t.createIndexBuffer(n),e.aD.simpleSegment(0,0,r.length,n.length))}return i.mesh}class vn{constructor(t,i){this.context=new Nr(t),this.transform=i,this._tileTextures={},this.terrainFacilitator={dirty:!0,matrix:e.aq(new Float64Array(16)),renderTime:0},this.setup(),this.numSublayers=dt.maxUnderzooming+dt.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new he}resize(t,e,i){if(this.width=Math.floor(t*i),this.height=Math.floor(e*i),this.pixelRatio=i,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(const r of this.style._order)this.style._layers[r].resize()}setup(){const t=this.context,i=new e.aC;i.emplaceBack(0,0),i.emplaceBack(e.X,0),i.emplaceBack(0,e.X),i.emplaceBack(e.X,e.X),this.tileExtentBuffer=t.createVertexBuffer(i,me.members),this.tileExtentSegments=e.aD.simpleSegment(0,0,4,2);const r=new e.aC;r.emplaceBack(0,0),r.emplaceBack(e.X,0),r.emplaceBack(0,e.X),r.emplaceBack(e.X,e.X),this.debugBuffer=t.createVertexBuffer(r,me.members),this.debugSegments=e.aD.simpleSegment(0,0,4,5);const n=new e.bT;n.emplaceBack(0,0,0,0),n.emplaceBack(e.X,0,e.X,0),n.emplaceBack(0,e.X,0,e.X),n.emplaceBack(e.X,e.X,e.X,e.X),this.rasterBoundsBuffer=t.createVertexBuffer(n,yi.members),this.rasterBoundsSegments=e.aD.simpleSegment(0,0,4,2);const s=new e.aC;s.emplaceBack(0,0),s.emplaceBack(e.X,0),s.emplaceBack(0,e.X),s.emplaceBack(e.X,e.X),this.rasterBoundsBufferPosOnly=t.createVertexBuffer(s,me.members),this.rasterBoundsSegmentsPosOnly=e.aD.simpleSegment(0,0,4,5);const o=new e.aC;o.emplaceBack(0,0),o.emplaceBack(1,0),o.emplaceBack(0,1),o.emplaceBack(1,1),this.viewportBuffer=t.createVertexBuffer(o,me.members),this.viewportSegments=e.aD.simpleSegment(0,0,4,2);const a=new e.bU;a.emplaceBack(0),a.emplaceBack(1),a.emplaceBack(3),a.emplaceBack(2),a.emplaceBack(0),this.tileBorderIndexBuffer=t.createIndexBuffer(a);const l=new e.aE;l.emplaceBack(1,0,2),l.emplaceBack(1,2,3),this.quadTriangleIndexBuffer=t.createIndexBuffer(l);const c=this.context.gl;this.stencilClearMode=new Ne({func:c.ALWAYS,mask:0},0,255,c.ZERO,c.ZERO,c.ZERO),this.tileExtentMesh=new fe(this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments)}clearStencil(){const t=this.context,i=t.gl;this.nextStencilID=1,this.currentStencilSource=void 0;const r=e.H();e.bL(r,0,this.width,this.height,0,0,1),e.K(r,r,[i.drawingBufferWidth,i.drawingBufferHeight,0]);const n={mainMatrix:r,tileMercatorCoords:[0,0,1,1],clippingPlane:[0,0,0,0],projectionTransition:0,fallbackMatrix:r};this.useProgram("clippingMask",null,!0).draw(t,i.TRIANGLES,je.disabled,this.stencilClearMode,Fe.disabled,Oe.disabled,null,null,n,"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}_renderTileClippingMasks(t,e,i){if(this.currentStencilSource===t.source||!t.isTileClipped()||!e||!e.length)return;this.currentStencilSource=t.source,this.nextStencilID+e.length>256&&this.clearStencil();const r=this.context;r.setColorMode(Fe.disabled),r.setDepthMode(je.disabled);const n={};for(const s of e)n[s.key]=this.nextStencilID++;this._renderTileMasks(n,e,i,!0),this._renderTileMasks(n,e,i,!1),this._tileClippingMaskIDs=n}_renderTileMasks(t,e,i,r){const n=this.context,s=n.gl,o=this.style.projection,a=this.transform,l=this.useProgram("clippingMask");for(const c of e){const e=t[c.key],h=this.style.map.terrain&&this.style.map.terrain.getTerrainData(c),u=o.getMeshFromTileID(this.context,c.canonical,r,!0,"stencil"),d=a.getProjectionData({overscaledTileID:c,applyGlobeMatrix:!0,applyTerrainMatrix:!0});l.draw(n,s.TRIANGLES,je.disabled,new Ne({func:s.ALWAYS,mask:0},e,255,s.KEEP,s.KEEP,s.REPLACE),Fe.disabled,i?Oe.disabled:Oe.backCCW,null,h,d,"$clipping",u.vertexBuffer,u.indexBuffer,u.segments)}}_renderTilesDepthBuffer(){const t=this.context,e=t.gl,i=this.style.projection,r=this.transform,n=this.useProgram("depth"),s=this.getDepthModeFor3D(),o=ut(r,{tileSize:r.tileSize});for(const a of o){const o=this.style.map.terrain&&this.style.map.terrain.getTerrainData(a),l=i.getMeshFromTileID(this.context,a.canonical,!0,!0,"raster"),c=r.getProjectionData({overscaledTileID:a,applyGlobeMatrix:!0,applyTerrainMatrix:!0});n.draw(t,e.TRIANGLES,s,Ne.disabled,Fe.disabled,Oe.backCCW,null,o,c,"$clipping",l.vertexBuffer,l.indexBuffer,l.segments)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();const t=this.nextStencilID++,e=this.context.gl;return new Ne({func:e.NOTEQUAL,mask:255},t,255,e.KEEP,e.KEEP,e.REPLACE)}stencilModeForClipping(t){const e=this.context.gl;return new Ne({func:e.EQUAL,mask:255},this._tileClippingMaskIDs[t.key],0,e.KEEP,e.KEEP,e.REPLACE)}getStencilConfigForOverlapAndUpdateStencilID(t){const e=this.context.gl,i=t.sort(((t,e)=>e.overscaledZ-t.overscaledZ)),r=i[i.length-1].overscaledZ,n=i[0].overscaledZ-r+1;if(n>1){this.currentStencilSource=void 0,this.nextStencilID+n>256&&this.clearStencil();const t={};for(let i=0;ie.overscaledZ-t.overscaledZ)),r=i[i.length-1].overscaledZ,n=i[0].overscaledZ-r+1;if(this.clearStencil(),n>1){const t={},s={};for(let i=0;i0};for(const e in a){const t=a[e];t.used&&t.prepare(this.context),l[e]=t.getVisibleCoordinates(!1),c[e]=l[e].slice().reverse(),h[e]=t.getVisibleCoordinates(!0).reverse()}this.opaquePassCutoff=1/0;for(let e=0;ethis.useProgram(t)}),this.context.viewport.set([0,0,this.width,this.height]),this.context.bindFramebuffer.set(null),this.context.clear({color:i.showOverdrawInspector?e.b4.black:e.b4.transparent,depth:1}),this.clearStencil(),this.style.sky&&function(t,e){const i=t.context,r=i.gl,n=((t,e,i)=>{const r=Math.cos(e.rollInRadians),n=Math.sin(e.rollInRadians),s=be(e),o=e.getProjectionData({overscaledTileID:null,applyGlobeMatrix:!0,applyTerrainMatrix:!0}).projectionTransition;return{u_sky_color:t.properties.get("sky-color"),u_horizon_color:t.properties.get("horizon-color"),u_horizon:[(e.width/2-s*n)*i,(e.height/2+s*r)*i],u_horizon_normal:[-n,r],u_sky_horizon_blend:t.properties.get("sky-horizon-blend")*e.height/2*i,u_sky_blend:o}})(e,t.style.map.transform,t.pixelRatio),s=new je(r.LEQUAL,je.ReadWrite,[0,1]),o=Ne.disabled,a=t.colorModeForRenderPass(),l=t.useProgram("sky"),c=xn(i,e);l.draw(i,r.TRIANGLES,s,o,a,Oe.disabled,n,null,void 0,"sky",c.vertexBuffer,c.indexBuffer,c.segments)}(this,this.style.sky),this._showOverdrawInspector=i.showOverdrawInspector,this.depthRangeFor3D=[0,1-(t._order.length+2)*this.numSublayers*this.depthEpsilon],!this.renderToTexture)for(this.renderPass="opaque",this.currentLayer=s.length-1;this.currentLayer>=0;this.currentLayer--){const t=this.style._layers[s[this.currentLayer]],e=a[t.source],i=l[t.source];this._renderTileClippingMasks(t,i,!1),this.renderLayer(this,e,t,i,u)}this.renderPass="translucent";let d=!1;for(this.currentLayer=0;this.currentLayer({u_sun_pos:t,u_atmosphere_blend:e,u_globe_position:i,u_globe_radius:r,u_inv_proj_matrix:n}))(c,u,[f[0],f[1],f[2]],d,p),_=xn(n,i);o.draw(n,s.TRIANGLES,a,Ne.disabled,Fe.alphaBlended,Oe.disabled,m,null,null,"atmosphere",_.vertexBuffer,_.indexBuffer,_.segments)}(this,this.style.sky,this.style.light),this.options.showTileBoundaries){const t=function(t,e){let i=null;const r=Object.values(t._layers).flatMap((i=>i.source&&!i.isHidden(e)?[t.sourceCaches[i.source]]:[])),n=r.filter((t=>"vector"===t.getSource().type)),s=r.filter((t=>"vector"!==t.getSource().type)),o=t=>{(!i||i.getSource().maxzoomo(t))),i||s.forEach((t=>o(t))),i}(this.style,this.transform.zoom);t&&function(t,e,i){for(let r=0;ru.getElevation(f,t,e):null;Hr(s,d,p,c,h,_,i,o,g,e.au(h,t,a,l),f.toUnwrapped(),r)}}}(n,t,r,i,r.layout.get("text-rotation-alignment"),r.layout.get("text-pitch-alignment"),r.paint.get("text-translate"),r.paint.get("text-translate-anchor"),s),0!==r.paint.get("icon-opacity").constantOr(1)&&Wr(t,i,r,n,!1,r.paint.get("icon-translate"),r.paint.get("icon-translate-anchor"),r.layout.get("icon-rotation-alignment"),r.layout.get("icon-pitch-alignment"),r.layout.get("icon-keep-upright"),l,c,a),0!==r.paint.get("text-opacity").constantOr(1)&&Wr(t,i,r,n,!0,r.paint.get("text-translate"),r.paint.get("text-translate-anchor"),r.layout.get("text-rotation-alignment"),r.layout.get("text-pitch-alignment"),r.layout.get("text-keep-upright"),l,c,a),i.map.showCollisionBoxes&&(Zr(t,i,r,n,!0),Zr(t,i,r,n,!1))}(t,i,r,n,this.style.placement.variableOffsets,s):e.bZ(r)?function(t,i,r,n,s){if("translucent"!==t.renderPass)return;const{isRenderingToTexture:o}=s,a=r.paint.get("circle-opacity"),l=r.paint.get("circle-stroke-width"),c=r.paint.get("circle-stroke-opacity"),h=!r.layout.get("circle-sort-key").isConstant();if(0===a.constantOr(1)&&(0===l.constantOr(1)||0===c.constantOr(1)))return;const u=t.context,d=u.gl,p=t.transform,f=t.getDepthModeForSublayer(0,je.ReadOnly),m=Ne.disabled,_=t.colorModeForRenderPass(),g=[],y=p.getCircleRadiusCorrection();for(let x=0;xt.sortKey-e.sortKey));for(const e of g){const{programConfiguration:i,program:n,layoutVertexBuffer:s,indexBuffer:o,uniformValues:a,terrainData:l,projectionData:c}=e.state;n.draw(u,d.TRIANGLES,f,m,_,Oe.backCCW,a,l,c,r.id,s,o,e.segments,r.paint,t.transform.zoom,i)}}(t,i,r,n,s):e.b_(r)?function(t,i,r,n,s){if(0===r.paint.get("heatmap-opacity"))return;const o=t.context,{isRenderingToTexture:a,isRenderingGlobe:l}=s;if(t.style.map.terrain){for(const e of n){const n=i.getTile(e);i.hasRenderableParent(e)||("offscreen"===t.renderPass?Yr(t,n,r,e,l):"translucent"===t.renderPass&&Jr(t,r,e,a,l))}o.viewport.set([0,0,t.width,t.height])}else"offscreen"===t.renderPass?function(t,i,r,n){const s=t.context,o=s.gl,a=t.transform,l=Ne.disabled,c=new Fe([o.ONE,o.ONE],e.b4.transparent,[!0,!0,!0,!0]);(function(t,i,r){const n=t.gl;t.activeTexture.set(n.TEXTURE1),t.viewport.set([0,0,i.width/4,i.height/4]);let s=r.heatmapFbos.get(e.bP);s?(n.bindTexture(n.TEXTURE_2D,s.colorAttachment.get()),t.bindFramebuffer.set(s.framebuffer)):(s=Qr(t,i.width/4,i.height/4),r.heatmapFbos.set(e.bP,s))})(s,t,r),s.clear({color:e.b4.transparent});for(let e=0;e0?e.pop():null}isPatternMissing(t){if(!t)return!1;if(!t.from||!t.to)return!0;const e=this.imageManager.getPattern(t.from.toString()),i=this.imageManager.getPattern(t.to.toString());return!e||!i}useProgram(t,e,i=!1){this.cache=this.cache||{};const r=!!this.style.map.terrain,n=this.style.projection,s=t+(e?e.cacheKey:"")+`/${i?ge:n.shaderVariantName}`+(this._showOverdrawInspector?"/overdraw":"")+(r?"/terrain":"");return this.cache[s]||(this.cache[s]=new Ti(this.context,de[t],e,Qi[t],this._showOverdrawInspector,r,i?de.projectionMercator:n.shaderPreludeCode,i?_e:n.shaderDefine)),this.cache[s]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()}setBaseState(){const t=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(t.FUNC_ADD)}initDebugOverlayCanvas(){null==this.debugOverlayCanvas&&(this.debugOverlayCanvas=document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new y(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){this.debugOverlayTexture&&this.debugOverlayTexture.destroy()}overLimit(){const{drawingBufferWidth:t,drawingBufferHeight:e}=this.context.gl;return this.width!==t||this.height!==e}}function bn(t,e){let i,r=!1,n=null,s=null;const o=()=>{n=null,r&&(t.apply(s,i),n=setTimeout(o,e),r=!1)};return(...t)=>(r=!0,s=this,i=t,n||o(),n)}class wn{constructor(t){this._getCurrentHash=()=>{const t=window.location.hash.replace("#","");if(this._hashName){let e;return t.split("&").map((t=>t.split("="))).forEach((t=>{t[0]===this._hashName&&(e=t)})),(e&&e[1]||"").split("/")}return t.split("/")},this._onHashChange=()=>{const t=this._getCurrentHash();if(!this._isValidHash(t))return!1;const e=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(t[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:e,pitch:+(t[4]||0)}),!0},this._updateHashUnthrottled=()=>{const t=window.location.href.replace(/(#.*)?$/,this.getHashString());window.history.replaceState(window.history.state,null,t)},this._removeHash=()=>{const t=this._getCurrentHash();if(0===t.length)return;const e=t.join("/");let i=e;i.split("&").length>0&&(i=i.split("&")[0]),this._hashName&&(i=`${this._hashName}=${e}`);let r=window.location.hash.replace(i,"");r.startsWith("#&")?r=r.slice(0,1)+r.slice(2):"#"===r&&(r="");let n=window.location.href.replace(/(#.+)?$/,r);n=n.replace("&&","&"),window.history.replaceState(window.history.state,null,n)},this._updateHash=bn(this._updateHashUnthrottled,300),this._hashName=t&&encodeURIComponent(t)}addTo(t){return this._map=t,addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this}remove(){return removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),clearTimeout(this._updateHash()),this._removeHash(),delete this._map,this}getHashString(t){const e=this._map.getCenter(),i=Math.round(100*this._map.getZoom())/100,r=Math.ceil((i*Math.LN2+Math.log(512/360/.5))/Math.LN10),n=Math.pow(10,r),s=Math.round(e.lng*n)/n,o=Math.round(e.lat*n)/n,a=this._map.getBearing(),l=this._map.getPitch();let c="";if(c+=t?`/${s}/${o}/${i}`:`${i}/${o}/${s}`,(a||l)&&(c+="/"+Math.round(10*a)/10),l&&(c+=`/${Math.round(l)}`),this._hashName){const t=this._hashName;let e=!1;const i=window.location.hash.slice(1).split("&").map((i=>{const r=i.split("=")[0];return r===t?(e=!0,`${r}=${c}`):i})).filter((t=>t));return e||i.push(`${t}=${c}`),`#${i.join("&")}`}return`#${c}`}_isValidHash(t){if(t.length<3||t.some(isNaN))return!1;try{new e.N(+t[2],+t[1])}catch(t){return!1}const i=+t[0],r=+(t[3]||0),n=+(t[4]||0);return i>=this._map.getMinZoom()&&i<=this._map.getMaxZoom()&&r>=0&&r<=180&&n>=this._map.getMinPitch()&&n<=this._map.getMaxPitch()}}const Tn={linearity:.3,easing:e.c6(0,0,.3,1)},Pn=e.e({deceleration:2500,maxSpeed:1400},Tn),Mn=e.e({deceleration:20,maxSpeed:1400},Tn),Sn=e.e({deceleration:1e3,maxSpeed:360},Tn),In=e.e({deceleration:1e3,maxSpeed:90},Tn),Cn=e.e({deceleration:1e3,maxSpeed:360},Tn);class En{constructor(t){this._map=t,this.clear()}clear(){this._inertiaBuffer=[]}record(t){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:o.now(),settings:t})}_drainInertiaBuffer(){const t=this._inertiaBuffer,e=o.now();for(;t.length>0&&e-t[0].time>160;)t.shift()}_onMoveEnd(t){if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;const i={zoom:0,bearing:0,pitch:0,roll:0,pan:new e.P(0,0),pinchAround:void 0,around:void 0};for(const{settings:e}of this._inertiaBuffer)i.zoom+=e.zoomDelta||0,i.bearing+=e.bearingDelta||0,i.pitch+=e.pitchDelta||0,i.roll+=e.rollDelta||0,e.panDelta&&i.pan._add(e.panDelta),e.around&&(i.around=e.around),e.pinchAround&&(i.pinchAround=e.pinchAround);const r=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,n={};if(i.pan.mag()){const s=zn(i.pan.mag(),r,e.e({},Pn,t||{})),o=i.pan.mult(s.amount/i.pan.mag()),a=this._map.cameraHelper.handlePanInertia(o,this._map.transform);n.center=a.easingCenter,n.offset=a.easingOffset,An(n,s)}if(i.zoom){const t=zn(i.zoom,r,Mn);n.zoom=this._map.transform.zoom+t.amount,An(n,t)}if(i.bearing){const t=zn(i.bearing,r,Sn);n.bearing=this._map.transform.bearing+e.ab(t.amount,-179,179),An(n,t)}if(i.pitch){const t=zn(i.pitch,r,In);n.pitch=this._map.transform.pitch+t.amount,An(n,t)}if(i.roll){const t=zn(i.roll,r,Cn);n.roll=this._map.transform.roll+e.ab(t.amount,-179,179),An(n,t)}if(n.zoom||n.bearing){const t=void 0===i.pinchAround?i.around:i.pinchAround;n.around=t?this._map.unproject(t):this._map.getCenter()}return this.clear(),e.e(n,{noMoveStart:!0})}}function An(t,e){(!t.duration||t.durationi.unproject(t))),l=s.reduce(((t,e,i,r)=>t.add(e.div(r.length))),new e.P(0,0));super(t,{points:s,point:l,lngLats:o,lngLat:i.unproject(l),originalEvent:r}),this._defaultPrevented=!1}}class Rn extends e.k{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(t,e,i){super(t,{originalEvent:i}),this._defaultPrevented=!1}}class Ln{constructor(t,e){this._map=t,this._clickTolerance=e.clickTolerance}reset(){delete this._mousedownPos}wheel(t){return this._firePreventable(new Rn(t.type,this._map,t))}mousedown(t,e){return this._mousedownPos=e,this._firePreventable(new kn(t.type,this._map,t))}mouseup(t){this._map.fire(new kn(t.type,this._map,t))}click(t,e){this._mousedownPos&&this._mousedownPos.dist(e)>=this._clickTolerance||this._map.fire(new kn(t.type,this._map,t))}dblclick(t){return this._firePreventable(new kn(t.type,this._map,t))}mouseover(t){this._map.fire(new kn(t.type,this._map,t))}mouseout(t){this._map.fire(new kn(t.type,this._map,t))}touchstart(t){return this._firePreventable(new Dn(t.type,this._map,t))}touchmove(t){this._map.fire(new Dn(t.type,this._map,t))}touchend(t){this._map.fire(new Dn(t.type,this._map,t))}touchcancel(t){this._map.fire(new Dn(t.type,this._map,t))}_firePreventable(t){if(this._map.fire(t),t.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class Fn{constructor(t){this._map=t}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent}mousemove(t){this._map.fire(new kn(t.type,this._map,t))}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new kn("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(t){this._delayContextMenu?this._contextMenuEvent=t:this._ignoreContextMenu||this._map.fire(new kn(t.type,this._map,t)),this._map.listens("contextmenu")&&t.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class Bn{constructor(t){this._map=t}get transform(){return this._map._requestedCameraState||this._map.transform}get center(){return{lng:this.transform.center.lng,lat:this.transform.center.lat}}get zoom(){return this.transform.zoom}get pitch(){return this.transform.pitch}get bearing(){return this.transform.bearing}unproject(t){return this.transform.screenPointToLocation(e.P.convert(t),this._map.terrain)}}class On{constructor(t,e){this._map=t,this._tr=new Bn(t),this._el=t.getCanvasContainer(),this._container=t.getContainer(),this._clickTolerance=e.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(t,e){this.isEnabled()&&t.shiftKey&&0===t.button&&(a.disableDrag(),this._startPos=this._lastPos=e,this._active=!0)}mousemoveWindow(t,e){if(!this._active)return;const i=e;if(this._lastPos.equals(i)||!this._box&&i.dist(this._startPos)t.fitScreenCoordinates(r,n,this._tr.bearing,{linear:!0})};this._fireEvent("boxzoomcancel",t)}keydown(t){this._active&&27===t.keyCode&&(this.reset(),this._fireEvent("boxzoomcancel",t))}reset(){this._active=!1,this._container.classList.remove("maplibregl-crosshair"),this._box&&(a.remove(this._box),this._box=null),a.enableDrag(),delete this._startPos,delete this._lastPos}_fireEvent(t,i){return this._map.fire(new e.k(t,{originalEvent:i}))}}function jn(t,e){if(t.length!==e.length)throw new Error(`The number of touches and points are not equal - touches ${t.length}, points ${e.length}`);const i={};for(let r=0;rthis.numTouches)&&(this.aborted=!0),this.aborted||(void 0===this.startTime&&(this.startTime=t.timeStamp),r.length===this.numTouches&&(this.centroid=function(t){const i=new e.P(0,0);for(const e of t)i._add(e);return i.div(t.length)}(i),this.touches=jn(r,i)))}touchmove(t,e,i){if(this.aborted||!this.centroid)return;const r=jn(i,e);for(const n in this.touches){const t=r[n];(!t||t.dist(this.touches[n])>30)&&(this.aborted=!0)}}touchend(t,e,i){if((!this.centroid||t.timeStamp-this.startTime>500)&&(this.aborted=!0),0===i.length){const t=!this.aborted&&this.centroid;if(this.reset(),t)return t}}}class Nn{constructor(t){this.singleTap=new Vn(t),this.numTaps=t.numTaps,this.reset()}reset(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()}touchstart(t,e,i){this.singleTap.touchstart(t,e,i)}touchmove(t,e,i){this.singleTap.touchmove(t,e,i)}touchend(t,e,i){const r=this.singleTap.touchend(t,e,i);if(r){const e=t.timeStamp-this.lastTime<500,i=!this.lastTap||this.lastTap.dist(r)<30;if(e&&i||this.reset(),this.count++,this.lastTime=t.timeStamp,this.lastTap=r,this.count===this.numTaps)return this.reset(),r}}}class Un{constructor(t){this._tr=new Bn(t),this._zoomIn=new Nn({numTouches:1,numTaps:2}),this._zoomOut=new Nn({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(t,e,i){this._zoomIn.touchstart(t,e,i),this._zoomOut.touchstart(t,e,i)}touchmove(t,e,i){this._zoomIn.touchmove(t,e,i),this._zoomOut.touchmove(t,e,i)}touchend(t,e,i){const r=this._zoomIn.touchend(t,e,i),n=this._zoomOut.touchend(t,e,i),s=this._tr;return r?(this._active=!0,t.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:e=>e.easeTo({duration:300,zoom:s.zoom+1,around:s.unproject(r)},{originalEvent:t})}):n?(this._active=!0,t.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:e=>e.easeTo({duration:300,zoom:s.zoom-1,around:s.unproject(n)},{originalEvent:t})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class Zn{constructor(t){this._enabled=!!t.enable,this._moveStateManager=t.moveStateManager,this._clickTolerance=t.clickTolerance||1,this._moveFunction=t.move,this._activateOnStart=!!t.activateOnStart,t.assignEvents(this),this.reset()}reset(t){this._active=!1,this._moved=!1,delete this._lastPoint,this._moveStateManager.endMove(t)}_move(...t){const e=this._moveFunction(...t);if(e.bearingDelta||e.pitchDelta||e.rollDelta||e.around||e.panDelta)return this._active=!0,e}dragStart(t,e){this.isEnabled()&&!this._lastPoint&&this._moveStateManager.isValidStartEvent(t)&&(this._moveStateManager.startMove(t),this._lastPoint=Array.isArray(e)?e[0]:e,this._activateOnStart&&this._lastPoint&&(this._active=!0))}dragMove(t,e){if(!this.isEnabled())return;const i=this._lastPoint;if(!i)return;if(t.preventDefault(),!this._moveStateManager.isValidMoveEvent(t))return void this.reset(t);const r=Array.isArray(e)?e[0]:e;return!this._moved&&r.dist(i)!0}),e=new qn){this.mouseMoveStateManager=t,this.oneFingerTouchMoveStateManager=e}_executeRelevantHandler(t,e,i){return t instanceof MouseEvent?e(t):"undefined"!=typeof TouchEvent&&t instanceof TouchEvent?i(t):void 0}startMove(t){this._executeRelevantHandler(t,(t=>this.mouseMoveStateManager.startMove(t)),(t=>this.oneFingerTouchMoveStateManager.startMove(t)))}endMove(t){this._executeRelevantHandler(t,(t=>this.mouseMoveStateManager.endMove(t)),(t=>this.oneFingerTouchMoveStateManager.endMove(t)))}isValidStartEvent(t){return this._executeRelevantHandler(t,(t=>this.mouseMoveStateManager.isValidStartEvent(t)),(t=>this.oneFingerTouchMoveStateManager.isValidStartEvent(t)))}isValidMoveEvent(t){return this._executeRelevantHandler(t,(t=>this.mouseMoveStateManager.isValidMoveEvent(t)),(t=>this.oneFingerTouchMoveStateManager.isValidMoveEvent(t)))}isValidEndEvent(t){return this._executeRelevantHandler(t,(t=>this.mouseMoveStateManager.isValidEndEvent(t)),(t=>this.oneFingerTouchMoveStateManager.isValidEndEvent(t)))}}const Xn=t=>{t.mousedown=t.dragStart,t.mousemoveWindow=t.dragMove,t.mouseup=t.dragEnd,t.contextmenu=t=>{t.preventDefault()}};class Wn{constructor(t,e){this._clickTolerance=t.clickTolerance||1,this._map=e,this.reset()}reset(){this._active=!1,this._touches={},this._sum=new e.P(0,0)}_shouldBePrevented(t){return t<(this._map.cooperativeGestures.isEnabled()?2:1)}touchstart(t,e,i){return this._calculateTransform(t,e,i)}touchmove(t,e,i){if(this._active){if(!this._shouldBePrevented(i.length))return t.preventDefault(),this._calculateTransform(t,e,i);this._map.cooperativeGestures.notifyGestureBlocked("touch_pan",t)}}touchend(t,e,i){this._calculateTransform(t,e,i),this._active&&this._shouldBePrevented(i.length)&&this.reset()}touchcancel(){this.reset()}_calculateTransform(t,i,r){r.length>0&&(this._active=!0);const n=jn(r,i),s=new e.P(0,0),o=new e.P(0,0);let a=0;for(const e in n){const t=n[e],i=this._touches[e];i&&(s._add(t),o._add(t.sub(i)),a++,n[e]=t)}if(this._touches=n,this._shouldBePrevented(a)||!o.mag())return;const l=o.div(a);return this._sum._add(l),this._sum.mag()Math.abs(t.x)}class rs extends Kn{constructor(t){super(),this._currentTouchCount=0,this._map=t}reset(){super.reset(),this._valid=void 0,delete this._firstMove,delete this._lastPoints}touchstart(t,e,i){super.touchstart(t,e,i),this._currentTouchCount=i.length}_start(t){this._lastPoints=t,is(t[0].sub(t[1]))&&(this._valid=!1)}_move(t,e,i){if(this._map.cooperativeGestures.isEnabled()&&this._currentTouchCount<3)return;const r=t[0].sub(this._lastPoints[0]),n=t[1].sub(this._lastPoints[1]);return this._valid=this.gestureBeginsVertically(r,n,i.timeStamp),this._valid?(this._lastPoints=t,this._active=!0,{pitchDelta:(r.y+n.y)/2*-.5}):void 0}gestureBeginsVertically(t,e,i){if(void 0!==this._valid)return this._valid;const r=t.mag()>=2,n=e.mag()>=2;if(!r&&!n)return;if(!r||!n)return void 0===this._firstMove&&(this._firstMove=i),i-this._firstMove<100&&void 0;const s=t.y>0==e.y>0;return is(t)&&is(e)&&s}}const ns={panStep:100,bearingStep:15,pitchStep:10};class ss{constructor(t){this._tr=new Bn(t);const e=ns;this._panStep=e.panStep,this._bearingStep=e.bearingStep,this._pitchStep=e.pitchStep,this._rotationDisabled=!1}reset(){this._active=!1}keydown(t){if(t.altKey||t.ctrlKey||t.metaKey)return;let e=0,i=0,r=0,n=0,s=0;switch(t.keyCode){case 61:case 107:case 171:case 187:e=1;break;case 189:case 109:case 173:e=-1;break;case 37:t.shiftKey?i=-1:(t.preventDefault(),n=-1);break;case 39:t.shiftKey?i=1:(t.preventDefault(),n=1);break;case 38:t.shiftKey?r=1:(t.preventDefault(),s=-1);break;case 40:t.shiftKey?r=-1:(t.preventDefault(),s=1);break;default:return}return this._rotationDisabled&&(i=0,r=0),{cameraAnimation:o=>{const a=this._tr;o.easeTo({duration:300,easeId:"keyboardHandler",easing:os,zoom:e?Math.round(a.zoom)+e*(t.shiftKey?2:1):a.zoom,bearing:a.bearing+i*this._bearingStep,pitch:a.pitch+r*this._pitchStep,offset:[-n*this._panStep,-s*this._panStep],center:a.center},{originalEvent:t})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=!0}enableRotation(){this._rotationDisabled=!1}}function os(t){return t*(2-t)}const as=4.000244140625;class ls{constructor(t,e){this._onTimeout=t=>{this._type="wheel",this._delta-=this._lastValue,this._active||this._start(t)},this._map=t,this._tr=new Bn(t),this._triggerRenderFrame=e,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222}setZoomRate(t){this._defaultZoomRate=t}setWheelZoomRate(t){this._wheelZoomRate=t}isEnabled(){return!!this._enabled}isActive(){return!!this._active||void 0!==this._finishTimeout}isZooming(){return!!this._zooming}enable(t){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!t&&"center"===t.around)}disable(){this.isEnabled()&&(this._enabled=!1)}_shouldBePrevented(t){return!!this._map.cooperativeGestures.isEnabled()&&!(t.ctrlKey||this._map.cooperativeGestures.isBypassed(t))}wheel(t){if(!this.isEnabled())return;if(this._shouldBePrevented(t))return void this._map.cooperativeGestures.notifyGestureBlocked("wheel_zoom",t);let e=t.deltaMode===WheelEvent.DOM_DELTA_LINE?40*t.deltaY:t.deltaY;const i=o.now(),r=i-(this._lastWheelEventTime||0);this._lastWheelEventTime=i,0!==e&&e%as==0?this._type="wheel":0!==e&&Math.abs(e)<4?this._type="trackpad":r>400?(this._type=null,this._lastValue=e,this._timeout=setTimeout(this._onTimeout,40,t)):this._type||(this._type=Math.abs(r*e)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,e+=this._lastValue)),t.shiftKey&&e&&(e/=4),this._type&&(this._lastWheelEvent=t,this._delta-=e,this._active||this._start(t)),t.preventDefault()}_start(t){if(!this._delta)return;this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);const i=a.mousePos(this._map.getCanvas(),t),r=this._tr;this._aroundPoint=this._aroundCenter?r.transform.locationToScreenPoint(e.N.convert(r.center)):i,this._frameId||(this._frameId=!0,this._triggerRenderFrame())}renderFrame(){if(!this._frameId)return;if(this._frameId=null,!this.isActive())return;const t=this._tr.transform;if("number"==typeof this._lastExpectedZoom){const e=t.zoom-this._lastExpectedZoom;"number"==typeof this._startZoom&&(this._startZoom+=e),"number"==typeof this._targetZoom&&(this._targetZoom+=e)}if(0!==this._delta){const i="wheel"===this._type&&Math.abs(this._delta)>as?this._wheelZoomRate:this._defaultZoomRate;let r=2/(1+Math.exp(-Math.abs(this._delta*i)));this._delta<0&&0!==r&&(r=1/r);const n="number"!=typeof this._targetZoom?t.scale:e.aG(this._targetZoom);this._targetZoom=Math.min(t.maxZoom,Math.max(t.minZoom,e.a8(n*r))),"wheel"===this._type&&(this._startZoom=t.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}const i="number"!=typeof this._targetZoom?t.zoom:this._targetZoom,r=this._startZoom,n=this._easing;let s,a=!1;if("wheel"===this._type&&r&&n){const t=o.now()-this._lastWheelEventTime,l=Math.min((t+5)/200,1),c=n(l);s=e.y.number(r,i,c),l<1?this._frameId||(this._frameId=!0):a=!0}else s=i,a=!0;return this._active=!0,a&&(this._active=!1,this._finishTimeout=setTimeout((()=>{this._zooming=!1,this._triggerRenderFrame(),delete this._targetZoom,delete this._lastExpectedZoom,delete this._finishTimeout}),200)),this._lastExpectedZoom=s,{noInertia:!0,needsRenderFrame:!a,zoomDelta:s-t.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}_smoothOutEasing(t){let i=e.c8;if(this._prevEase){const t=this._prevEase,r=(o.now()-t.start)/t.duration,n=t.easing(r+.01)-t.easing(r),s=.27/Math.sqrt(n*n+1e-4)*.01,a=Math.sqrt(.0729-s*s);i=e.c6(s,a,.25,1)}return this._prevEase={start:o.now(),duration:t,easing:i},i}reset(){this._active=!1,this._zooming=!1,delete this._targetZoom,delete this._lastExpectedZoom,this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout)}}class cs{constructor(t,e){this._clickZoom=t,this._tapZoom=e}enable(){this._clickZoom.enable(),this._tapZoom.enable()}disable(){this._clickZoom.disable(),this._tapZoom.disable()}isEnabled(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()}isActive(){return this._clickZoom.isActive()||this._tapZoom.isActive()}}class hs{constructor(t){this._tr=new Bn(t),this.reset()}reset(){this._active=!1}dblclick(t,e){return t.preventDefault(),{cameraAnimation:i=>{i.easeTo({duration:300,zoom:this._tr.zoom+(t.shiftKey?-1:1),around:this._tr.unproject(e)},{originalEvent:t})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class us{constructor(){this._tap=new Nn({numTouches:1,numTaps:1}),this.reset()}reset(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,delete this._tapPoint,this._tap.reset()}touchstart(t,e,i){if(!this._swipePoint)if(this._tapTime){const r=e[0],n=t.timeStamp-this._tapTime<500,s=this._tapPoint.dist(r)<30;n&&s?i.length>0&&(this._swipePoint=r,this._swipeTouch=i[0].identifier):this.reset()}else this._tap.touchstart(t,e,i)}touchmove(t,e,i){if(this._tapTime){if(this._swipePoint){if(i[0].identifier!==this._swipeTouch)return;const r=e[0],n=r.y-this._swipePoint.y;return this._swipePoint=r,t.preventDefault(),this._active=!0,{zoomDelta:n/128}}}else this._tap.touchmove(t,e,i)}touchend(t,e,i){if(this._tapTime)this._swipePoint&&0===i.length&&this.reset();else{const r=this._tap.touchend(t,e,i);r&&(this._tapTime=t.timeStamp,this._tapPoint=r)}}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class ds{constructor(t,e,i){this._el=t,this._mousePan=e,this._touchPan=i}enable(t){this._inertiaOptions=t||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("maplibregl-touch-drag-pan")}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("maplibregl-touch-drag-pan")}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class ps{constructor(t,e,i,r){this._pitchWithRotate=t.pitchWithRotate,this._rollEnabled=t.rollEnabled,this._mouseRotate=e,this._mousePitch=i,this._mouseRoll=r}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable(),this._rollEnabled&&this._mouseRoll.enable()}disable(){this._mouseRotate.disable(),this._mousePitch.disable(),this._mouseRoll.disable()}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())&&(!this._rollEnabled||this._mouseRoll.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()||this._mouseRoll.isActive()}}class fs{constructor(t,e,i,r){this._el=t,this._touchZoom=e,this._touchRotate=i,this._tapDragZoom=r,this._rotationDisabled=!1,this._enabled=!0}enable(t){this._touchZoom.enable(t),this._rotationDisabled||this._touchRotate.enable(t),this._tapDragZoom.enable(),this._el.classList.add("maplibregl-touch-zoom-rotate")}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("maplibregl-touch-zoom-rotate")}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable()}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()}}class ms{constructor(t,e){this._bypassKey=-1!==navigator.userAgent.indexOf("Mac")?"metaKey":"ctrlKey",this._map=t,this._options=e,this._enabled=!1}isActive(){return!1}reset(){}_setupUI(){if(this._container)return;const t=this._map.getCanvasContainer();t.classList.add("maplibregl-cooperative-gestures"),this._container=a.create("div","maplibregl-cooperative-gesture-screen",t);let e=this._map._getUIString("CooperativeGesturesHandler.WindowsHelpText");"metaKey"===this._bypassKey&&(e=this._map._getUIString("CooperativeGesturesHandler.MacHelpText"));const i=this._map._getUIString("CooperativeGesturesHandler.MobileHelpText"),r=document.createElement("div");r.className="maplibregl-desktop-message",r.textContent=e,this._container.appendChild(r);const n=document.createElement("div");n.className="maplibregl-mobile-message",n.textContent=i,this._container.appendChild(n),this._container.setAttribute("aria-hidden","true")}_destroyUI(){this._container&&(a.remove(this._container),this._map.getCanvasContainer().classList.remove("maplibregl-cooperative-gestures")),delete this._container}enable(){this._setupUI(),this._enabled=!0}disable(){this._enabled=!1,this._destroyUI()}isEnabled(){return this._enabled}isBypassed(t){return t[this._bypassKey]}notifyGestureBlocked(t,i){this._enabled&&(this._map.fire(new e.k("cooperativegestureprevented",{gestureType:t,originalEvent:i})),this._container.classList.add("maplibregl-show"),setTimeout((()=>{this._container.classList.remove("maplibregl-show")}),100))}}const _s=t=>t.zoom||t.drag||t.roll||t.pitch||t.rotate;class gs extends e.k{}function ys(t){return t.panDelta&&t.panDelta.mag()||t.zoomDelta||t.bearingDelta||t.pitchDelta||t.rollDelta}class xs{constructor(t,e){this.handleWindowEvent=t=>{this.handleEvent(t,`${t.type}Window`)},this.handleEvent=(t,e)=>{if("blur"===t.type)return void this.stop(!0);this._updatingCamera=!0;const i="renderFrame"===t.type?void 0:t,r={needsRenderFrame:!1},n={},s={},o=t.touches,l=o?this._getMapTouches(o):void 0,c=l?a.touchPos(this._map.getCanvas(),l):a.mousePos(this._map.getCanvas(),t);for(const{handlerName:a,handler:d,allowed:p}of this._handlers){if(!d.isEnabled())continue;let o;this._blockedByActive(s,p,a)?d.reset():d[e||t.type]&&(o=d[e||t.type](t,c,l),this.mergeHandlerResult(r,n,o,a,i),o&&o.needsRenderFrame&&this._triggerRenderFrame()),(o||d.isActive())&&(s[a]=d)}const h={};for(const a in this._previousActiveHandlers)s[a]||(h[a]=i);this._previousActiveHandlers=s,(Object.keys(h).length||ys(r))&&(this._changes.push([r,n,h]),this._triggerRenderFrame()),(Object.keys(s).length||ys(r))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:u}=r;u&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],u(this._map))},this._map=t,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new En(t),this._bearingSnap=e.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(e);const i=this._el;this._listeners=[[i,"touchstart",{passive:!0}],[i,"touchmove",{passive:!1}],[i,"touchend",void 0],[i,"touchcancel",void 0],[i,"mousedown",void 0],[i,"mousemove",void 0],[i,"mouseup",void 0],[document,"mousemove",{capture:!0}],[document,"mouseup",void 0],[i,"mouseover",void 0],[i,"mouseout",void 0],[i,"dblclick",void 0],[i,"click",void 0],[i,"keydown",{capture:!1}],[i,"keyup",void 0],[i,"wheel",{passive:!1}],[i,"contextmenu",void 0],[window,"blur",void 0]];for(const[r,n,s]of this._listeners)a.addEventListener(r,n,r===document?this.handleWindowEvent:this.handleEvent,s)}destroy(){for(const[t,e,i]of this._listeners)a.removeEventListener(t,e,t===document?this.handleWindowEvent:this.handleEvent,i)}_addDefaultHandlers(t){const i=this._map,r=i.getCanvasContainer();this._add("mapEvent",new Ln(i,t));const n=i.boxZoom=new On(i,t);this._add("boxZoom",n),t.interactive&&t.boxZoom&&n.enable();const s=i.cooperativeGestures=new ms(i,t.cooperativeGestures);this._add("cooperativeGestures",s),t.cooperativeGestures&&s.enable();const o=new Un(i),l=new hs(i);i.doubleClickZoom=new cs(l,o),this._add("tapZoom",o),this._add("clickZoom",l),t.interactive&&t.doubleClickZoom&&i.doubleClickZoom.enable();const c=new us;this._add("tapDragZoom",c);const h=i.touchPitch=new rs(i);this._add("touchPitch",h),t.interactive&&t.touchPitch&&i.touchPitch.enable(t.touchPitch);const u=()=>i.project(i.getCenter()),d=function({enable:t,clickTolerance:i,aroundCenter:r=!0,minPixelCenterThreshold:n=100,rotateDegreesPerPixelMoved:s=.8},o){const l=new $n({checkCorrectEvent:t=>0===a.mouseButton(t)&&t.ctrlKey||2===a.mouseButton(t)&&!t.ctrlKey});return new Zn({clickTolerance:i,move:(t,i)=>{const a=o();if(r&&Math.abs(a.y-t.y)>n)return{bearingDelta:e.c7(new e.P(t.x,i.y),i,a)};let l=(i.x-t.x)*s;return r&&i.y0===a.mouseButton(t)&&t.ctrlKey||2===a.mouseButton(t)});return new Zn({clickTolerance:e,move:(t,e)=>({pitchDelta:(e.y-t.y)*i}),moveStateManager:r,enable:t,assignEvents:Xn})}(t),f=function({enable:t,clickTolerance:e,rollDegreesPerPixelMoved:i=.3},r){const n=new $n({checkCorrectEvent:t=>2===a.mouseButton(t)&&t.ctrlKey});return new Zn({clickTolerance:e,move:(t,e)=>{const n=r();let s=(e.x-t.x)*i;return e.y0===a.mouseButton(t)&&!t.ctrlKey});return new Zn({clickTolerance:e,move:(t,e)=>({around:e,panDelta:e.sub(t)}),activateOnStart:!0,moveStateManager:i,enable:t,assignEvents:Xn})}(t),_=new Wn(t,i);i.dragPan=new ds(r,m,_),this._add("mousePan",m),this._add("touchPan",_,["touchZoom","touchRotate"]),t.interactive&&t.dragPan&&i.dragPan.enable(t.dragPan);const g=new es,y=new Qn;i.touchZoomRotate=new fs(r,y,g,c),this._add("touchRotate",g,["touchPan","touchZoom"]),this._add("touchZoom",y,["touchPan","touchRotate"]),t.interactive&&t.touchZoomRotate&&i.touchZoomRotate.enable(t.touchZoomRotate);const x=i.scrollZoom=new ls(i,(()=>this._triggerRenderFrame()));this._add("scrollZoom",x,["mousePan"]),t.interactive&&t.scrollZoom&&i.scrollZoom.enable(t.scrollZoom);const v=i.keyboard=new ss(i);this._add("keyboard",v),t.interactive&&t.keyboard&&i.keyboard.enable(),this._add("blockableMapEvent",new Fn(i))}_add(t,e,i){this._handlers.push({handlerName:t,handler:e,allowed:i}),this._handlersById[t]=e}stop(t){if(!this._updatingCamera){for(const{handler:t}of this._handlers)t.reset();this._inertia.clear(),this._fireEvents({},{},t),this._changes=[]}}isActive(){for(const{handler:t}of this._handlers)if(t.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return Boolean(_s(this._eventsInProgress))||this.isZooming()}_blockedByActive(t,e,i){for(const r in t)if(r!==i&&(!e||e.indexOf(r)<0))return!0;return!1}_getMapTouches(t){const e=[];for(const i of t)this._el.contains(i.target)&&e.push(i);return e}mergeHandlerResult(t,i,r,n,s){if(!r)return;e.e(t,r);const o={handlerName:n,originalEvent:r.originalEvent||s};void 0!==r.zoomDelta&&(i.zoom=o),void 0!==r.panDelta&&(i.drag=o),void 0!==r.rollDelta&&(i.roll=o),void 0!==r.pitchDelta&&(i.pitch=o),void 0!==r.bearingDelta&&(i.rotate=o)}_applyChanges(){const t={},i={},r={};for(const[n,s,o]of this._changes)n.panDelta&&(t.panDelta=(t.panDelta||new e.P(0,0))._add(n.panDelta)),n.zoomDelta&&(t.zoomDelta=(t.zoomDelta||0)+n.zoomDelta),n.bearingDelta&&(t.bearingDelta=(t.bearingDelta||0)+n.bearingDelta),n.pitchDelta&&(t.pitchDelta=(t.pitchDelta||0)+n.pitchDelta),n.rollDelta&&(t.rollDelta=(t.rollDelta||0)+n.rollDelta),void 0!==n.around&&(t.around=n.around),void 0!==n.pinchAround&&(t.pinchAround=n.pinchAround),n.noInertia&&(t.noInertia=n.noInertia),e.e(i,s),e.e(r,o);this._updateMapTransform(t,i,r),this._changes=[]}_updateMapTransform(t,e,i){const r=this._map,n=r._getTransformForUpdate(),s=r.terrain;if(!(ys(t)||s&&this._terrainMovement))return this._fireEvents(e,i,!0);r._stop(!0);let{panDelta:o,zoomDelta:a,bearingDelta:l,pitchDelta:c,rollDelta:h,around:u,pinchAround:d}=t;void 0!==d&&(u=d),u=u||r.transform.centerPoint,s&&!n.isPointOnMapSurface(u)&&(u=n.centerPoint);const p={panDelta:o,zoomDelta:a,rollDelta:h,pitchDelta:c,bearingDelta:l,around:u};this._map.cameraHelper.useGlobeControls&&!n.isPointOnMapSurface(u)&&(u=n.centerPoint);const f=u.distSqr(n.centerPoint)<.01?n.center:n.screenPointToLocation(o?u.sub(o):u);s?(this._map.cameraHelper.handleMapControlsRollPitchBearingZoom(p,n),this._terrainMovement||!e.drag&&!e.zoom?e.drag&&this._terrainMovement?n.setCenter(n.screenPointToLocation(n.centerPoint.sub(o))):this._map.cameraHelper.handleMapControlsPan(p,n,f):(this._terrainMovement=!0,this._map._elevationFreeze=!0,this._map.cameraHelper.handleMapControlsPan(p,n,f))):(this._map.cameraHelper.handleMapControlsRollPitchBearingZoom(p,n),this._map.cameraHelper.handleMapControlsPan(p,n,f)),r._applyUpdatedTransform(n),this._map._update(),t.noInertia||this._inertia.record(t),this._fireEvents(e,i,!0)}_fireEvents(t,i,r){const n=_s(this._eventsInProgress),s=_s(t),a={};for(const e in t){const{originalEvent:i}=t[e];this._eventsInProgress[e]||(a[`${e}start`]=i),this._eventsInProgress[e]=t[e]}!n&&s&&this._fireEvent("movestart",s.originalEvent);for(const e in a)this._fireEvent(e,a[e]);s&&this._fireEvent("move",s.originalEvent);for(const e in t){const{originalEvent:i}=t[e];this._fireEvent(e,i)}const l={};let c;for(const e in this._eventsInProgress){const{handlerName:t,originalEvent:r}=this._eventsInProgress[e];this._handlersById[t].isActive()||(delete this._eventsInProgress[e],c=i[t]||r,l[`${e}end`]=c)}for(const e in l)this._fireEvent(e,l[e]);const h=_s(this._eventsInProgress),u=(n||s)&&!h;if(u&&this._terrainMovement){this._map._elevationFreeze=!1,this._terrainMovement=!1;const t=this._map._getTransformForUpdate();this._map.getCenterClampedToGround()&&t.recalculateZoomAndCenter(this._map.terrain),this._map._applyUpdatedTransform(t)}if(r&&u){this._updatingCamera=!0;const t=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),i=t=>0!==t&&-this._bearingSnap{delete this._frameId,this.handleEvent(new gs("renderFrame",{timeStamp:t})),this._applyChanges()}))}_triggerRenderFrame(){void 0===this._frameId&&(this._frameId=this._requestFrame())}}class vs extends e.E{constructor(t,e,i){super(),this._renderFrameCallback=()=>{const t=Math.min((o.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(t)),t<1&&this._easeFrameId?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},this._moving=!1,this._zooming=!1,this.transform=t,this._bearingSnap=i.bearingSnap,this.cameraHelper=e,this.on("moveend",(()=>{delete this._requestedCameraState}))}migrateProjection(t,e){t.apply(this.transform),this.transform=t,this.cameraHelper=e}getCenter(){return new e.N(this.transform.center.lng,this.transform.center.lat)}setCenter(t,e){return this.jumpTo({center:t},e)}getCenterElevation(){return this.transform.elevation}setCenterElevation(t,e){return this.jumpTo({elevation:t},e),this}getCenterClampedToGround(){return this._centerClampedToGround}setCenterClampedToGround(t){this._centerClampedToGround=t}panBy(t,i,r){return t=e.P.convert(t).mult(-1),this.panTo(this.transform.center,e.e({offset:t},i),r)}panTo(t,i,r){return this.easeTo(e.e({center:t},i),r)}getZoom(){return this.transform.zoom}setZoom(t,e){return this.jumpTo({zoom:t},e),this}zoomTo(t,i,r){return this.easeTo(e.e({zoom:t},i),r)}zoomIn(t,e){return this.zoomTo(this.getZoom()+1,t,e),this}zoomOut(t,e){return this.zoomTo(this.getZoom()-1,t,e),this}getVerticalFieldOfView(){return this.transform.fov}setVerticalFieldOfView(t,i){return t!=this.transform.fov&&(this.transform.setFov(t),this.fire(new e.k("movestart",i)).fire(new e.k("move",i)).fire(new e.k("moveend",i))),this}getBearing(){return this.transform.bearing}setBearing(t,e){return this.jumpTo({bearing:t},e),this}getPadding(){return this.transform.padding}setPadding(t,e){return this.jumpTo({padding:t},e),this}rotateTo(t,i,r){return this.easeTo(e.e({bearing:t},i),r)}resetNorth(t,i){return this.rotateTo(0,e.e({duration:1e3},t),i),this}resetNorthPitch(t,i){return this.easeTo(e.e({bearing:0,pitch:0,roll:0,duration:1e3},t),i),this}snapToNorth(t,e){return Math.abs(this.getBearing()){_.easeFunc(e),this.terrain&&!t.freezeElevation&&this._updateElevation(e),this._applyUpdatedTransform(r),this._fireMoveEvents(i)}),(e=>{this.terrain&&t.freezeElevation&&this._finalizeElevation(),this._afterEase(i,e)}),t),this}_prepareEase(t,i,r={}){this._moving=!0,i||r.moving||this.fire(new e.k("movestart",t)),this._zooming&&!r.zooming&&this.fire(new e.k("zoomstart",t)),this._rotating&&!r.rotating&&this.fire(new e.k("rotatestart",t)),this._pitching&&!r.pitching&&this.fire(new e.k("pitchstart",t)),this._rolling&&!r.rolling&&this.fire(new e.k("rollstart",t))}_prepareElevation(t){this._elevationCenter=t,this._elevationStart=this.transform.elevation,this._elevationTarget=this.terrain.getElevationForLngLatZoom(t,this.transform.tileZoom),this._elevationFreeze=!0}_updateElevation(t){this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom));const i=this.terrain.getElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);if(t<1&&i!==this._elevationTarget){const e=this._elevationTarget-this._elevationStart;this._elevationStart+=t*(e-(i-(e*t+this._elevationStart))/(1-t)),this._elevationTarget=i}this.transform.setElevation(e.y.number(this._elevationStart,this._elevationTarget,t))}_finalizeElevation(){this._elevationFreeze=!1,this.getCenterClampedToGround()&&this.transform.recalculateZoomAndCenter(this.terrain)}_getTransformForUpdate(){return this.transformCameraUpdate||this.terrain?(this._requestedCameraState||(this._requestedCameraState=this.transform.clone()),this._requestedCameraState):this.transform}_elevateCameraIfInsideTerrain(t){if(!this.terrain&&t.elevation>=0&&t.pitch<=90)return{};const e=t.getCameraLngLat(),i=t.getCameraAltitude(),r=this.terrain?this.terrain.getElevationForLngLatZoom(e,t.zoom):0;if(ithis._elevateCameraIfInsideTerrain(t))),this.transformCameraUpdate&&e.push((t=>this.transformCameraUpdate(t))),!e.length)return;const i=t.clone();for(const r of e){const t=i.clone(),{center:e,zoom:n,roll:s,pitch:o,bearing:a,elevation:l}=r(t);e&&t.setCenter(e),void 0!==l&&t.setElevation(l),void 0!==n&&t.setZoom(n),void 0!==s&&t.setRoll(s),void 0!==o&&t.setPitch(o),void 0!==a&&t.setBearing(a),i.apply(t)}this.transform.apply(i)}_fireMoveEvents(t){this.fire(new e.k("move",t)),this._zooming&&this.fire(new e.k("zoom",t)),this._rotating&&this.fire(new e.k("rotate",t)),this._pitching&&this.fire(new e.k("pitch",t)),this._rolling&&this.fire(new e.k("roll",t))}_afterEase(t,i){if(this._easeId&&i&&this._easeId===i)return;delete this._easeId;const r=this._zooming,n=this._rotating,s=this._pitching,o=this._rolling;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._rolling=!1,this._padding=!1,r&&this.fire(new e.k("zoomend",t)),n&&this.fire(new e.k("rotateend",t)),s&&this.fire(new e.k("pitchend",t)),o&&this.fire(new e.k("rollend",t)),this.fire(new e.k("moveend",t))}flyTo(t,i){if(!t.essential&&o.prefersReducedMotion){const r=e.M(t,["center","zoom","bearing","pitch","roll","elevation"]);return this.jumpTo(r,i)}this.stop(),t=e.e({offset:[0,0],speed:1.2,curve:1.42,easing:e.c8},t);const r=this._getTransformForUpdate(),n=r.bearing,s=r.pitch,a=r.roll,l=r.padding,c="bearing"in t?this._normalizeBearing(t.bearing,n):n,h="pitch"in t?+t.pitch:s,u="roll"in t?this._normalizeBearing(t.roll,a):a,d="padding"in t?t.padding:r.padding,p=e.P.convert(t.offset);let f=r.centerPoint.add(p);const m=r.screenPointToLocation(f),_=this.cameraHelper.handleFlyTo(r,{bearing:c,pitch:h,roll:u,padding:d,locationAtOffset:m,offsetAsPoint:p,center:t.center,minZoom:t.minZoom,zoom:t.zoom});let g=t.curve;const y=Math.max(r.width,r.height),x=y/_.scaleOfZoom,v=_.pixelPathLength;"number"==typeof _.scaleOfMinZoom&&(g=Math.sqrt(y/_.scaleOfMinZoom/v*2));const b=g*g;function w(t){const e=(x*x-y*y+(t?-1:1)*b*b*v*v)/(2*(t?x:y)*b*v);return Math.log(Math.sqrt(e*e+1)-e)}function T(t){return(Math.exp(t)-Math.exp(-t))/2}function P(t){return(Math.exp(t)+Math.exp(-t))/2}const M=w(!1);let S=function(t){return P(M)/P(M+g*t)},I=function(t){return y*((P(M)*(T(e=M+g*t)/P(e))-T(M))/b)/v;var e},C=(w(!0)-M)/g;if(Math.abs(v)<2e-6||!isFinite(C)){if(Math.abs(y-x)<1e-6)return this.easeTo(t,i);const e=x0,S=t=>Math.exp(e*g*t)}return t.duration="duration"in t?+t.duration:1e3*C/("screenSpeed"in t?+t.screenSpeed/g:+t.speed),t.maxDuration&&t.duration>t.maxDuration&&(t.duration=0),this._zooming=!0,this._rotating=n!==c,this._pitching=h!==s,this._rolling=u!==a,this._padding=!r.isPaddingEqual(d),this._prepareEase(i,!1),this.terrain&&this._prepareElevation(_.targetCenter),this._ease((o=>{const m=o*C,g=1/S(m),y=I(m);this._rotating&&r.setBearing(e.y.number(n,c,o)),this._pitching&&r.setPitch(e.y.number(s,h,o)),this._rolling&&r.setRoll(e.y.number(a,u,o)),this._padding&&(r.interpolatePadding(l,d,o),f=r.centerPoint.add(p)),_.easeFunc(o,g,y,f),this.terrain&&!t.freezeElevation&&this._updateElevation(o),this._applyUpdatedTransform(r),this._fireMoveEvents(i)}),(()=>{this.terrain&&t.freezeElevation&&this._finalizeElevation(),this._afterEase(i)}),t),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(t,e){var i;if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){const t=this._onEaseEnd;delete this._onEaseEnd,t.call(this,e)}return t||null===(i=this.handlers)||void 0===i||i.stop(!1),this}_ease(t,e,i){!1===i.animate||0===i.duration?(t(1),e()):(this._easeStart=o.now(),this._easeOptions=i,this._onEaseFrame=t,this._onEaseEnd=e,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_normalizeBearing(t,i){t=e.aI(t,-180,180);const r=Math.abs(t-i);return Math.abs(t-360-i)MapLibre'};class ws{constructor(t=bs){this._toggleAttribution=()=>{this._container.classList.contains("maplibregl-compact")&&(this._container.classList.contains("maplibregl-compact-show")?(this._container.setAttribute("open",""),this._container.classList.remove("maplibregl-compact-show")):(this._container.classList.add("maplibregl-compact-show"),this._container.removeAttribute("open")))},this._updateData=t=>{!t||"metadata"!==t.sourceDataType&&"visibility"!==t.sourceDataType&&"style"!==t.dataType&&"terrain"!==t.type||this._updateAttributions()},this._updateCompact=()=>{this._map.getCanvasContainer().offsetWidth<=640||this._compact?!1===this._compact?this._container.setAttribute("open",""):this._container.classList.contains("maplibregl-compact")||this._container.classList.contains("maplibregl-attrib-empty")||(this._container.setAttribute("open",""),this._container.classList.add("maplibregl-compact","maplibregl-compact-show")):(this._container.setAttribute("open",""),this._container.classList.contains("maplibregl-compact")&&this._container.classList.remove("maplibregl-compact","maplibregl-compact-show"))},this._updateCompactMinimize=()=>{this._container.classList.contains("maplibregl-compact")&&this._container.classList.contains("maplibregl-compact-show")&&this._container.classList.remove("maplibregl-compact-show")},this.options=t}getDefaultPosition(){return"bottom-right"}onAdd(t){return this._map=t,this._compact=this.options.compact,this._container=a.create("details","maplibregl-ctrl maplibregl-ctrl-attrib"),this._compactButton=a.create("summary","maplibregl-ctrl-attrib-button",this._container),this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=a.create("div","maplibregl-ctrl-attrib-inner",this._container),this._updateAttributions(),this._updateCompact(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("terrain",this._updateData),this._map.on("resize",this._updateCompact),this._map.on("drag",this._updateCompactMinimize),this._container}onRemove(){a.remove(this._container),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("terrain",this._updateData),this._map.off("resize",this._updateCompact),this._map.off("drag",this._updateCompactMinimize),this._map=void 0,this._compact=void 0,this._sanitizedAttributionHTML=void 0}_setElementTitle(t,e){const i=this._map._getUIString(`AttributionControl.${e}`);t.title=i,t.setAttribute("aria-label",i)}_updateAttributions(){if(!this._map.style)return;let t=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?t=t.concat(this.options.customAttribution.map((t=>"string"!=typeof t?"":t))):"string"==typeof this.options.customAttribution&&t.push(this.options.customAttribution)),this._map.style.stylesheet){const t=this._map.style.stylesheet;this.styleOwner=t.owner,this.styleId=t.id}const e=this._map.style.sourceCaches;for(const r in e){const i=e[r];if(i.used||i.usedForTerrain){const e=i.getSource();e.attribution&&t.indexOf(e.attribution)<0&&t.push(e.attribution)}}t=t.filter((t=>String(t).trim())),t.sort(((t,e)=>t.length-e.length)),t=t.filter(((e,i)=>{for(let r=i+1;r=0)return!1;return!0}));const i=t.join(" | ");i!==this._sanitizedAttributionHTML&&(this._sanitizedAttributionHTML=a.sanitize(i),t.length?(this._innerContainer.innerHTML=this._sanitizedAttributionHTML,this._container.classList.remove("maplibregl-attrib-empty")):this._container.classList.add("maplibregl-attrib-empty"),this._updateCompact(),this._editLink=null)}}class Ts{constructor(t={}){this._updateCompact=()=>{const t=this._container.children;if(t.length){const e=t[0];this._map.getCanvasContainer().offsetWidth<=640||this._compact?!1!==this._compact&&e.classList.add("maplibregl-compact"):e.classList.remove("maplibregl-compact")}},this.options=t}getDefaultPosition(){return"bottom-left"}onAdd(t){this._map=t,this._compact=this.options&&this.options.compact,this._container=a.create("div","maplibregl-ctrl");const e=a.create("a","maplibregl-ctrl-logo");return e.target="_blank",e.rel="noopener nofollow",e.href="https://maplibre.org/",e.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),e.setAttribute("rel","noopener nofollow"),this._container.appendChild(e),this._container.style.display="block",this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}onRemove(){a.remove(this._container),this._map.off("resize",this._updateCompact),this._map=void 0,this._compact=void 0}}class Ps{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(t){const e=++this._id;return this._queue.push({callback:t,id:e,cancelled:!1}),e}remove(t){const e=this._currentlyRunning,i=e?this._queue.concat(e):this._queue;for(const r of i)if(r.id===t)return void(r.cancelled=!0)}run(t=0){if(this._currentlyRunning)throw new Error("Attempting to run(), but is already running.");const e=this._currentlyRunning=this._queue;this._queue=[];for(const i of e)if(!i.cancelled&&(i.callback(t),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}var Ms=e.aA([{name:"a_pos3d",type:"Int16",components:3}]);class Ss extends e.E{constructor(t){super(),this._lastTilesetChange=o.now(),this.sourceCache=t,this._tiles={},this._renderableTilesKeys=[],this._sourceTileCache={},this.minzoom=0,this.maxzoom=22,this.deltaZoom=1,this.tileSize=t._source.tileSize*2**this.deltaZoom,t.usedForTerrain=!0,t.tileSize=this.tileSize}destruct(){this.sourceCache.usedForTerrain=!1,this.sourceCache.tileSize=null}update(t,i){this.sourceCache.update(t,i),this._renderableTilesKeys=[];const r={};for(const n of ut(t,{tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,reparseOverscaled:!1,terrain:i,calculateTileZoom:this.sourceCache._source.calculateTileZoom}))r[n.key]=!0,this._renderableTilesKeys.push(n.key),this._tiles[n.key]||(n.terrainRttPosMatrix32f=new Float64Array(16),e.bL(n.terrainRttPosMatrix32f,0,e.X,e.X,0,0,1),this._tiles[n.key]=new st(n,this.tileSize),this._lastTilesetChange=o.now());for(const e in this._tiles)r[e]||delete this._tiles[e]}freeRtt(t){for(const e in this._tiles){const i=this._tiles[e];(!t||i.tileID.equals(t)||i.tileID.isChildOf(t)||t.isChildOf(i.tileID))&&(i.rtt=[])}}getRenderableTiles(){return this._renderableTilesKeys.map((t=>this.getTileByID(t)))}getTileByID(t){return this._tiles[t]}getTerrainCoords(t){const i={};for(const r of this._renderableTilesKeys){const n=this._tiles[r].tileID,s=t.clone(),o=e.a$();if(n.canonical.equals(t.canonical))e.bL(o,0,e.X,e.X,0,0,1);else if(n.canonical.isChildOf(t.canonical)){const i=n.canonical.z-t.canonical.z,r=n.canonical.x-(n.canonical.x>>i<>i<>i;e.bL(o,0,a,a,0,0,1),e.J(o,o,[-r*a,-s*a,0])}else{if(!t.canonical.isChildOf(n.canonical))continue;{const i=t.canonical.z-n.canonical.z,r=t.canonical.x-(t.canonical.x>>i<>i<>i;e.bL(o,0,e.X,e.X,0,0,1),e.J(o,o,[r*a,s*a,0]),e.K(o,o,[1/2**i,1/2**i,0])}}s.terrainRttPosMatrix32f=new Float32Array(o),i[r]=s}return i}getSourceTile(t,e){const i=this.sourceCache._source;let r=t.overscaledZ-this.deltaZoom;if(r>i.maxzoom&&(r=i.maxzoom),r=i.minzoom&&(!n||!n.dem);)n=this.sourceCache.getTileByID(t.scaledTo(r--).key);return n}anyTilesAfterTime(t=Date.now()){return this._lastTilesetChange>=t}}class Is{constructor(t,e,i){this._meshCache={},this.painter=t,this.sourceCache=new Ss(e),this.options=i,this.exaggeration="number"==typeof i.exaggeration?i.exaggeration:1,this.qualityFactor=2,this.meshSize=128,this._demMatrixCache={},this.coordsIndex=[],this._coordsTextureSize=1024}getDEMElevation(t,i,r,n=e.X){var s;if(!(i>=0&&i=0&&rt.canonical.z&&(t.canonical.z>=r?n=t.canonical.z-r:e.w("cannot calculate elevation if elevation maxzoom > source.maxzoom"));const s=t.canonical.x-(t.canonical.x>>n<>n<>8<<4|e>>8,i[s+3]=0;const r=new e.R({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(i.buffer)),n=new y(t,r,t.gl.RGBA,{premultiply:!1});return n.bind(t.gl.NEAREST,t.gl.CLAMP_TO_EDGE),this._coordsTexture=n,n}pointCoordinate(t){this.painter.maybeDrawDepthAndCoords(!0);const i=new Uint8Array(4),r=this.painter.context,n=r.gl,s=Math.round(t.x*this.painter.pixelRatio/devicePixelRatio),o=Math.round(t.y*this.painter.pixelRatio/devicePixelRatio),a=Math.round(this.painter.height/devicePixelRatio);r.bindFramebuffer.set(this.getFramebuffer("coords").framebuffer),n.readPixels(s,a-o-1,1,1,n.RGBA,n.UNSIGNED_BYTE,i),r.bindFramebuffer.set(null);const l=i[0]+(i[2]>>4<<8),c=i[1]+((15&i[2])<<8),h=this.coordsIndex[255-i[3]],u=h&&this.sourceCache.getTileByID(h);if(!u)return null;const d=this._coordsTextureSize,p=(1<0,n=r&&0===t.canonical.y,s=r&&t.canonical.y===(1<t.id!==e)),this._recentlyUsed.push(t.id)}stampObject(t){t.stamp=++this._stamp}getOrCreateFreeObject(){for(const e of this._recentlyUsed)if(!this._objects[e].inUse)return this._objects[e];if(this._objects.length>=this._size)throw new Error("No free RenderPool available, call freeAllObjects() required!");const t=this._createObject(this._objects.length);return this._objects.push(t),t}freeObject(t){t.inUse=!1}freeAllObjects(){for(const t of this._objects)this.freeObject(t)}isFull(){return!(this._objects.length!t.inUse))}}const Es={background:!0,fill:!0,line:!0,raster:!0,hillshade:!0};class As{constructor(t,e){this.painter=t,this.terrain=e,this.pool=new Cs(t.context,30,e.sourceCache.tileSize*e.qualityFactor)}destruct(){this.pool.destruct()}getTexture(t){return this.pool.getObjectForId(t.rtt[this._stacks.length-1].id).texture}prepareForRender(t,e){this._stacks=[],this._prevType=null,this._rttTiles=[],this._renderableTiles=this.terrain.sourceCache.getRenderableTiles(),this._renderableLayerIds=t._order.filter((i=>!t._layers[i].isHidden(e))),this._coordsAscending={};for(const i in t.sourceCaches){this._coordsAscending[i]={};const e=t.sourceCaches[i].getVisibleCoordinates();for(const t of e){const e=this.terrain.sourceCache.getTerrainCoords(t);for(const t in e)this._coordsAscending[i][t]||(this._coordsAscending[i][t]=[]),this._coordsAscending[i][t].push(e[t])}}this._coordsAscendingStr={};for(const i of t._order){const e=t._layers[i],r=e.source;if(Es[e.type]&&!this._coordsAscendingStr[r]){this._coordsAscendingStr[r]={};for(const t in this._coordsAscending[r])this._coordsAscendingStr[r][t]=this._coordsAscending[r][t].map((t=>t.key)).sort().join()}}for(const i of this._renderableTiles)for(const t in this._coordsAscendingStr){const e=this._coordsAscendingStr[t][i.tileID.key];e&&e!==i.rttCoords[t]&&(i.rtt=[])}}renderLayer(t,i){if(t.isHidden(this.painter.transform.zoom))return!1;const r=Object.assign(Object.assign({},i),{isRenderingToTexture:!0}),n=t.type,s=this.painter,o=this._renderableLayerIds[this._renderableLayerIds.length-1]===t.id;if(Es[n]&&(this._prevType&&Es[this._prevType]||this._stacks.push([]),this._prevType=n,this._stacks[this._stacks.length-1].push(t.id),!o))return!0;if(Es[this._prevType]||Es[n]&&o){this._prevType=n;const t=this._stacks.length-1,i=this._stacks[t]||[];for(const n of this._renderableTiles){if(this.pool.isFull()&&(yn(this.painter,this.terrain,this._rttTiles,r),this._rttTiles=[],this.pool.freeAllObjects()),this._rttTiles.push(n),n.rtt[t]){const e=this.pool.getObjectForId(n.rtt[t].id);if(e.stamp===n.rtt[t].stamp){this.pool.useObject(e);continue}}const o=this.pool.getOrCreateFreeObject();this.pool.useObject(o),this.pool.stampObject(o),n.rtt[t]={id:o.id,stamp:o.stamp},s.context.bindFramebuffer.set(o.fbo.framebuffer),s.context.clear({color:e.b4.transparent,stencil:0}),s.currentStencilSource=void 0;for(let t=0;t{this.startMove(t,a.mousePos(this.element,t)),a.addEventListener(window,"mousemove",this.mousemove),a.addEventListener(window,"mouseup",this.mouseup)},this.mousemove=t=>{this.move(t,a.mousePos(this.element,t))},this.mouseup=t=>{this._rotatePitchHanlder.dragEnd(t),this.offTemp()},this.touchstart=t=>{1!==t.targetTouches.length?this.reset():(this._startPos=this._lastPos=a.touchPos(this.element,t.targetTouches)[0],this.startMove(t,this._startPos),a.addEventListener(window,"touchmove",this.touchmove,{passive:!1}),a.addEventListener(window,"touchend",this.touchend))},this.touchmove=t=>{1!==t.targetTouches.length?this.reset():(this._lastPos=a.touchPos(this.element,t.targetTouches)[0],this.move(t,this._lastPos))},this.touchend=t=>{0===t.targetTouches.length&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos){this._rotatePitchHanlder.reset(),delete this._startPos,delete this._lastPos,this.offTemp()},this._clickTolerance=10,this.element=i;const n=new Hn;this._rotatePitchHanlder=new Zn({clickTolerance:3,move:(t,n)=>{const s=i.getBoundingClientRect(),o=new e.P((s.bottom-s.top)/2,(s.right-s.left)/2);return{bearingDelta:e.c7(new e.P(t.x,n.y),n,o),pitchDelta:r?-.5*(n.y-t.y):void 0}},moveStateManager:n,enable:!0,assignEvents:()=>{}}),this.map=t,a.addEventListener(i,"mousedown",this.mousedown),a.addEventListener(i,"touchstart",this.touchstart,{passive:!1}),a.addEventListener(i,"touchcancel",this.reset)}startMove(t,e){this._rotatePitchHanlder.dragStart(t,e),a.disableDrag()}move(t,e){const i=this.map,{bearingDelta:r,pitchDelta:n}=this._rotatePitchHanlder.dragMove(t,e)||{};r&&i.setBearing(i.getBearing()+r),n&&i.setPitch(i.getPitch()+n)}off(){const t=this.element;a.removeEventListener(t,"mousedown",this.mousedown),a.removeEventListener(t,"touchstart",this.touchstart,{passive:!1}),a.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),a.removeEventListener(window,"touchend",this.touchend),a.removeEventListener(t,"touchcancel",this.reset),this.offTemp()}offTemp(){a.enableDrag(),a.removeEventListener(window,"mousemove",this.mousemove),a.removeEventListener(window,"mouseup",this.mouseup),a.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),a.removeEventListener(window,"touchend",this.touchend)}}let Fs;function Bs(t,i,r){const n=new e.N(t.lng,t.lat);if(t=new e.N(t.lng,t.lat),i){const n=new e.N(t.lng-360,t.lat),s=new e.N(t.lng+360,t.lat),o=r.locationToScreenPoint(t).distSqr(i);r.locationToScreenPoint(n).distSqr(i)180;){const e=r.locationToScreenPoint(t);if(e.x>=0&&e.y>=0&&e.x<=r.width&&e.y<=r.height)break;t.lng>r.center.lng?t.lng-=360:t.lng+=360}return t.lng!==n.lng&&r.isPointOnMapSurface(r.locationToScreenPoint(t))?t:n}const Os={center:"translate(-50%,-50%)",top:"translate(-50%,0)","top-left":"translate(0,0)","top-right":"translate(-100%,0)",bottom:"translate(-50%,-100%)","bottom-left":"translate(0,-100%)","bottom-right":"translate(-100%,-100%)",left:"translate(0,-50%)",right:"translate(-100%,-50%)"};function js(t,e,i){const r=t.classList;for(const n in Os)r.remove(`maplibregl-${i}-anchor-${n}`);r.add(`maplibregl-${i}-anchor-${e}`)}class Vs extends e.E{constructor(t){if(super(),this._onKeyPress=t=>{const e=t.code,i=t.charCode||t.keyCode;"Space"!==e&&"Enter"!==e&&32!==i&&13!==i||this.togglePopup()},this._onMapClick=t=>{const e=t.originalEvent.target,i=this._element;this._popup&&(e===i||i.contains(e))&&this.togglePopup()},this._update=t=>{var e;if(!this._map)return;const i=this._map.loaded()&&!this._map.isMoving();("terrain"===(null==t?void 0:t.type)||"render"===(null==t?void 0:t.type)&&!i)&&this._map.once("render",this._update),this._lngLat=this._map.transform.renderWorldCopies?Bs(this._lngLat,this._flatPos,this._map.transform):null===(e=this._lngLat)||void 0===e?void 0:e.wrap(),this._flatPos=this._pos=this._map.project(this._lngLat)._add(this._offset),this._map.terrain&&(this._flatPos=this._map.transform.locationToScreenPoint(this._lngLat)._add(this._offset));let r="";"viewport"===this._rotationAlignment||"auto"===this._rotationAlignment?r=`rotateZ(${this._rotation}deg)`:"map"===this._rotationAlignment&&(r=`rotateZ(${this._rotation-this._map.getBearing()}deg)`);let n="";"viewport"===this._pitchAlignment||"auto"===this._pitchAlignment?n="rotateX(0deg)":"map"===this._pitchAlignment&&(n=`rotateX(${this._map.getPitch()}deg)`),this._subpixelPositioning||t&&"moveend"!==t.type||(this._pos=this._pos.round()),a.setTransform(this._element,`${Os[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${n} ${r}`),o.frameAsync(new AbortController).then((()=>{this._updateOpacity(t&&"moveend"===t.type)})).catch((()=>{}))},this._onMove=t=>{if(!this._isDragging){const e=this._clickTolerance||this._map._clickTolerance;this._isDragging=t.point.dist(this._pointerdownPos)>=e}this._isDragging&&(this._pos=t.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents="none","pending"===this._state&&(this._state="active",this.fire(new e.k("dragstart"))),this.fire(new e.k("drag")))},this._onUp=()=>{this._element.style.pointerEvents="auto",this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1,this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),"active"===this._state&&this.fire(new e.k("dragend")),this._state="inactive"},this._addDragHandler=t=>{this._element.contains(t.originalEvent.target)&&(t.preventDefault(),this._positionDelta=t.point.sub(this._pos).add(this._offset),this._pointerdownPos=t.point,this._state="pending",this._map.on("mousemove",this._onMove),this._map.on("touchmove",this._onMove),this._map.once("mouseup",this._onUp),this._map.once("touchend",this._onUp))},this._anchor=t&&t.anchor||"center",this._color=t&&t.color||"#3FB1CE",this._scale=t&&t.scale||1,this._draggable=t&&t.draggable||!1,this._clickTolerance=t&&t.clickTolerance||0,this._subpixelPositioning=t&&t.subpixelPositioning||!1,this._isDragging=!1,this._state="inactive",this._rotation=t&&t.rotation||0,this._rotationAlignment=t&&t.rotationAlignment||"auto",this._pitchAlignment=t&&t.pitchAlignment&&"auto"!==t.pitchAlignment?t.pitchAlignment:this._rotationAlignment,this.setOpacity(),this.setOpacity(null==t?void 0:t.opacity,null==t?void 0:t.opacityWhenCovered),t&&t.element)this._element=t.element,this._offset=e.P.convert(t&&t.offset||[0,0]);else{this._defaultMarker=!0,this._element=a.create("div");const i=a.createNS("http://www.w3.org/2000/svg","svg"),r=41,n=27;i.setAttributeNS(null,"display","block"),i.setAttributeNS(null,"height",`${r}px`),i.setAttributeNS(null,"width",`${n}px`),i.setAttributeNS(null,"viewBox",`0 0 ${n} ${r}`);const s=a.createNS("http://www.w3.org/2000/svg","g");s.setAttributeNS(null,"stroke","none"),s.setAttributeNS(null,"stroke-width","1"),s.setAttributeNS(null,"fill","none"),s.setAttributeNS(null,"fill-rule","evenodd");const o=a.createNS("http://www.w3.org/2000/svg","g");o.setAttributeNS(null,"fill-rule","nonzero");const l=a.createNS("http://www.w3.org/2000/svg","g");l.setAttributeNS(null,"transform","translate(3.0, 29.0)"),l.setAttributeNS(null,"fill","#000000");const c=[{rx:"10.5",ry:"5.25002273"},{rx:"10.5",ry:"5.25002273"},{rx:"9.5",ry:"4.77275007"},{rx:"8.5",ry:"4.29549936"},{rx:"7.5",ry:"3.81822308"},{rx:"6.5",ry:"3.34094679"},{rx:"5.5",ry:"2.86367051"},{rx:"4.5",ry:"2.38636864"}];for(const t of c){const e=a.createNS("http://www.w3.org/2000/svg","ellipse");e.setAttributeNS(null,"opacity","0.04"),e.setAttributeNS(null,"cx","10.5"),e.setAttributeNS(null,"cy","5.80029008"),e.setAttributeNS(null,"rx",t.rx),e.setAttributeNS(null,"ry",t.ry),l.appendChild(e)}const h=a.createNS("http://www.w3.org/2000/svg","g");h.setAttributeNS(null,"fill",this._color);const u=a.createNS("http://www.w3.org/2000/svg","path");u.setAttributeNS(null,"d","M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z"),h.appendChild(u);const d=a.createNS("http://www.w3.org/2000/svg","g");d.setAttributeNS(null,"opacity","0.25"),d.setAttributeNS(null,"fill","#000000");const p=a.createNS("http://www.w3.org/2000/svg","path");p.setAttributeNS(null,"d","M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z"),d.appendChild(p);const f=a.createNS("http://www.w3.org/2000/svg","g");f.setAttributeNS(null,"transform","translate(6.0, 7.0)"),f.setAttributeNS(null,"fill","#FFFFFF");const m=a.createNS("http://www.w3.org/2000/svg","g");m.setAttributeNS(null,"transform","translate(8.0, 8.0)");const _=a.createNS("http://www.w3.org/2000/svg","circle");_.setAttributeNS(null,"fill","#000000"),_.setAttributeNS(null,"opacity","0.25"),_.setAttributeNS(null,"cx","5.5"),_.setAttributeNS(null,"cy","5.5"),_.setAttributeNS(null,"r","5.4999962");const g=a.createNS("http://www.w3.org/2000/svg","circle");g.setAttributeNS(null,"fill","#FFFFFF"),g.setAttributeNS(null,"cx","5.5"),g.setAttributeNS(null,"cy","5.5"),g.setAttributeNS(null,"r","5.4999962"),m.appendChild(_),m.appendChild(g),o.appendChild(l),o.appendChild(h),o.appendChild(d),o.appendChild(f),o.appendChild(m),i.appendChild(o),i.setAttributeNS(null,"height",r*this._scale+"px"),i.setAttributeNS(null,"width",n*this._scale+"px"),this._element.appendChild(i),this._offset=e.P.convert(t&&t.offset||[0,-14])}if(this._element.classList.add("maplibregl-marker"),this._element.addEventListener("dragstart",(t=>{t.preventDefault()})),this._element.addEventListener("mousedown",(t=>{t.preventDefault()})),js(this._element,this._anchor,"marker"),t&&t.className)for(const e of t.className.split(" "))this._element.classList.add(e);this._popup=null}addTo(t){return this.remove(),this._map=t,this._element.setAttribute("aria-label",t._getUIString("Marker.Title")),t.getCanvasContainer().appendChild(this._element),t.on("move",this._update),t.on("moveend",this._update),t.on("terrain",this._update),t.on("projectiontransition",this._update),this.setDraggable(this._draggable),this._update(),this._map.on("click",this._onMapClick),this}remove(){return this._opacityTimeout&&(clearTimeout(this._opacityTimeout),delete this._opacityTimeout),this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._update),this._map.off("moveend",this._update),this._map.off("terrain",this._update),this._map.off("projectiontransition",this._update),this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler),this._map.off("mouseup",this._onUp),this._map.off("touchend",this._onUp),this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),delete this._map),a.remove(this._element),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(t){return this._lngLat=e.N.convert(t),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this}getElement(){return this._element}setPopup(t){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),t){if(!("offset"in t.options)){const e=38.1,i=13.5,r=Math.abs(i)/Math.SQRT2;t.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[r,-1*(e-i+r)],"bottom-right":[-r,-1*(e-i+r)],left:[i,-1*(e-i)],right:[-13.5,-1*(e-i)]}:this._offset}this._popup=t,this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress)}return this}setSubpixelPositioning(t){return this._subpixelPositioning=t,this}getPopup(){return this._popup}togglePopup(){const t=this._popup;return this._element.style.opacity===this._opacityWhenCovered?this:t?(t.isOpen()?t.remove():(t.setLngLat(this._lngLat),t.addTo(this._map)),this):this}_updateOpacity(t=!1){var i,r;if(!(null===(i=this._map)||void 0===i?void 0:i.terrain)){const t=this._map.transform.isLocationOccluded(this._lngLat)?this._opacityWhenCovered:this._opacity;return void(this._element.style.opacity!==t&&(this._element.style.opacity=t))}if(t)this._opacityTimeout=null;else{if(this._opacityTimeout)return;this._opacityTimeout=setTimeout((()=>{this._opacityTimeout=null}),100)}const n=this._map,s=n.terrain.depthAtPoint(this._pos),o=n.terrain.getElevationForLngLatZoom(this._lngLat,n.transform.tileZoom);if(n.transform.lngLatToCameraDepth(this._lngLat,o)-s<.006)return void(this._element.style.opacity=this._opacity);const a=-this._offset.y/n.transform.pixelsPerMeter,l=Math.sin(n.getPitch()*Math.PI/180)*a,c=n.terrain.depthAtPoint(new e.P(this._pos.x,this._pos.y-this._offset.y)),h=n.transform.lngLatToCameraDepth(this._lngLat,o+l)-c>.006;(null===(r=this._popup)||void 0===r?void 0:r.isOpen())&&h&&this._popup.remove(),this._element.style.opacity=h?this._opacityWhenCovered:this._opacity}getOffset(){return this._offset}setOffset(t){return this._offset=e.P.convert(t),this._update(),this}addClassName(t){this._element.classList.add(t)}removeClassName(t){this._element.classList.remove(t)}toggleClassName(t){return this._element.classList.toggle(t)}setDraggable(t){return this._draggable=!!t,this._map&&(t?(this._map.on("mousedown",this._addDragHandler),this._map.on("touchstart",this._addDragHandler)):(this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler))),this}isDraggable(){return this._draggable}setRotation(t){return this._rotation=t||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(t){return this._rotationAlignment=t||"auto",this._update(),this}getRotationAlignment(){return this._rotationAlignment}setPitchAlignment(t){return this._pitchAlignment=t&&"auto"!==t?t:this._rotationAlignment,this._update(),this}getPitchAlignment(){return this._pitchAlignment}setOpacity(t,e){return void 0===t&&void 0===e&&(this._opacity="1",this._opacityWhenCovered="0.2"),void 0!==t&&(this._opacity=t),void 0!==e&&(this._opacityWhenCovered=e),this._map&&this._updateOpacity(!0),this}}const Ns={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0};let Us=0,Zs=!1;const Gs={maxWidth:100,unit:"metric"};function $s(t,e,i){const r=i&&i.maxWidth||100,n=t._container.clientHeight/2,s=t._container.clientWidth/2,o=t.unproject([s-r/2,n]),a=t.unproject([s+r/2,n]),l=Math.round(t.project(a).x-t.project(o).x),c=Math.min(r,l,t._container.clientWidth),h=o.distanceTo(a);if(i&&"imperial"===i.unit){const i=3.2808*h;i>5280?qs(e,c,i/5280,t._getUIString("ScaleControl.Miles")):qs(e,c,i,t._getUIString("ScaleControl.Feet"))}else i&&"nautical"===i.unit?qs(e,c,h/1852,t._getUIString("ScaleControl.NauticalMiles")):h>=1e3?qs(e,c,h/1e3,t._getUIString("ScaleControl.Kilometers")):qs(e,c,h,t._getUIString("ScaleControl.Meters"))}function qs(t,e,i,r){const n=function(t){const e=Math.pow(10,`${Math.floor(t)}`.length-1);let i=t/e;return i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:i>=1?1:function(t){const e=Math.pow(10,Math.ceil(-Math.log(t)/Math.LN10));return Math.round(t*e)/e}(i),e*i}(i);t.style.width=e*(n/i)+"px",t.innerHTML=`${n} ${r}`}const Hs={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px",subpixelPositioning:!1},Xs=["a[href]","[tabindex]:not([tabindex='-1'])","[contenteditable]:not([contenteditable='false'])","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].join(", ");function Ws(t){if(t){if("number"==typeof t){const i=Math.round(Math.abs(t)/Math.SQRT2);return{center:new e.P(0,0),top:new e.P(0,t),"top-left":new e.P(i,i),"top-right":new e.P(-i,i),bottom:new e.P(0,-t),"bottom-left":new e.P(i,-i),"bottom-right":new e.P(-i,-i),left:new e.P(t,0),right:new e.P(-t,0)}}if(t instanceof e.P||Array.isArray(t)){const i=e.P.convert(t);return{center:i,top:i,"top-left":i,"top-right":i,bottom:i,"bottom-left":i,"bottom-right":i,left:i,right:i}}return{center:e.P.convert(t.center||[0,0]),top:e.P.convert(t.top||[0,0]),"top-left":e.P.convert(t["top-left"]||[0,0]),"top-right":e.P.convert(t["top-right"]||[0,0]),bottom:e.P.convert(t.bottom||[0,0]),"bottom-left":e.P.convert(t["bottom-left"]||[0,0]),"bottom-right":e.P.convert(t["bottom-right"]||[0,0]),left:e.P.convert(t.left||[0,0]),right:e.P.convert(t.right||[0,0])}}return Ws(new e.P(0,0))}const Ks=i;t.AJAXError=e.cg,t.Event=e.k,t.Evented=e.E,t.LngLat=e.N,t.MercatorCoordinate=e.Y,t.Point=e.P,t.addProtocol=e.ch,t.config=e.a,t.removeProtocol=e.ci,t.AttributionControl=ws,t.BoxZoomHandler=On,t.CanvasSource=J,t.CooperativeGesturesHandler=ms,t.DoubleClickZoomHandler=cs,t.DragPanHandler=ds,t.DragRotateHandler=ps,t.EdgeInsets=Pe,t.FullscreenControl=class extends e.E{constructor(t={}){super(),this._onFullscreenChange=()=>{var t;let e=window.document.fullscreenElement||window.document.mozFullScreenElement||window.document.webkitFullscreenElement||window.document.msFullscreenElement;for(;null===(t=null==e?void 0:e.shadowRoot)||void 0===t?void 0:t.fullscreenElement;)e=e.shadowRoot.fullscreenElement;e===this._container!==this._fullscreen&&this._handleFullscreenChange()},this._onClickFullscreen=()=>{this._isFullscreen()?this._exitFullscreen():this._requestFullscreen()},this._fullscreen=!1,t&&t.container&&(t.container instanceof HTMLElement?this._container=t.container:e.w("Full screen control 'container' must be a DOM element.")),"onfullscreenchange"in document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in document&&(this._fullscreenchange="MSFullscreenChange")}onAdd(t){return this._map=t,this._container||(this._container=this._map.getContainer()),this._controlContainer=a.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),this._controlContainer}onRemove(){a.remove(this._controlContainer),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._onFullscreenChange)}_setupUI(){const t=this._fullscreenButton=a.create("button","maplibregl-ctrl-fullscreen",this._controlContainer);a.create("span","maplibregl-ctrl-icon",t).setAttribute("aria-hidden","true"),t.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange)}_updateTitle(){const t=this._getTitle();this._fullscreenButton.setAttribute("aria-label",t),this._fullscreenButton.title=t}_getTitle(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")}_isFullscreen(){return this._fullscreen}_handleFullscreenChange(){this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("maplibregl-ctrl-shrink"),this._fullscreenButton.classList.toggle("maplibregl-ctrl-fullscreen"),this._updateTitle(),this._fullscreen?(this.fire(new e.k("fullscreenstart")),this._prevCooperativeGesturesEnabled=this._map.cooperativeGestures.isEnabled(),this._map.cooperativeGestures.disable()):(this.fire(new e.k("fullscreenend")),this._prevCooperativeGesturesEnabled&&this._map.cooperativeGestures.enable())}_exitFullscreen(){window.document.exitFullscreen?window.document.exitFullscreen():window.document.mozCancelFullScreen?window.document.mozCancelFullScreen():window.document.msExitFullscreen?window.document.msExitFullscreen():window.document.webkitCancelFullScreen?window.document.webkitCancelFullScreen():this._togglePseudoFullScreen()}_requestFullscreen(){this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen?this._container.webkitRequestFullscreen():this._togglePseudoFullScreen()}_togglePseudoFullScreen(){this._container.classList.toggle("maplibregl-pseudo-fullscreen"),this._handleFullscreenChange(),this._map.resize()}},t.GeoJSONSource=W,t.GeolocateControl=class extends e.E{constructor(t){super(),this._onSuccess=t=>{if(this._map){if(this._isOutOfMapMaxBounds(t))return this._setErrorState(),this.fire(new e.k("outofmaxbounds",t)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=t,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background");break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}this.options.showUserLocation&&"OFF"!==this._watchState&&this._updateMarker(t),this.options.trackUserLocation&&"ACTIVE_LOCK"!==this._watchState||this._updateCamera(t),this.options.showUserLocation&&this._dotElement.classList.remove("maplibregl-user-location-dot-stale"),this.fire(new e.k("geolocate",t)),this._finish()}},this._updateCamera=t=>{const i=new e.N(t.coords.longitude,t.coords.latitude),r=t.coords.accuracy,n=this._map.getBearing(),s=e.e({bearing:n},this.options.fitBoundsOptions),o=G.fromLngLat(i,r);this._map.fitBounds(o,s,{geolocateSource:!0})},this._updateMarker=t=>{if(t){const i=new e.N(t.coords.longitude,t.coords.latitude);this._accuracyCircleMarker.setLngLat(i).addTo(this._map),this._userLocationDotMarker.setLngLat(i).addTo(this._map),this._accuracy=t.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},this._onZoom=()=>{this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},this._onError=t=>{if(this._map){if(this.options.trackUserLocation)if(1===t.code){this._watchState="OFF",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;const t=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=t,this._geolocateButton.setAttribute("aria-label",t),void 0!==this._geolocationWatchID&&this._clearWatch()}else{if(3===t.code&&Zs)return;this._setErrorState()}"OFF"!==this._watchState&&this.options.showUserLocation&&this._dotElement.classList.add("maplibregl-user-location-dot-stale"),this.fire(new e.k("error",t)),this._finish()}},this._finish=()=>{this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},this._setupUI=()=>{this._map&&(this._container.addEventListener("contextmenu",(t=>t.preventDefault())),this._geolocateButton=a.create("button","maplibregl-ctrl-geolocate",this._container),a.create("span","maplibregl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",this._geolocateButton.disabled=!0)},this._finishSetupUI=t=>{if(this._map){if(!1===t){e.w("Geolocation support is not available so the GeolocateControl will be disabled.");const t=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=t,this._geolocateButton.setAttribute("aria-label",t)}else{const t=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.disabled=!1,this._geolocateButton.title=t,this._geolocateButton.setAttribute("aria-label",t)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=a.create("div","maplibregl-user-location-dot"),this._userLocationDotMarker=new Vs({element:this._dotElement}),this._circleElement=a.create("div","maplibregl-user-location-accuracy-circle"),this._accuracyCircleMarker=new Vs({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",(()=>this.trigger())),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",(t=>{t.geolocateSource||"ACTIVE_LOCK"!==this._watchState||t.originalEvent&&"resize"===t.originalEvent.type||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this.fire(new e.k("trackuserlocationend")),this.fire(new e.k("userlocationlostfocus")))}))}},this.options=e.e({},Ns,t)}onAdd(t){return this._map=t,this._container=a.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),function(){return e._(this,arguments,void 0,(function*(t=!1){if(void 0!==Fs&&!t)return Fs;if(void 0===window.navigator.permissions)return Fs=!!window.navigator.geolocation,Fs;try{const t=yield window.navigator.permissions.query({name:"geolocation"});Fs="denied"!==t.state}catch(t){Fs=!!window.navigator.geolocation}return Fs}))}().then((t=>this._finishSetupUI(t))),this._container}onRemove(){void 0!==this._geolocationWatchID&&(window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),a.remove(this._container),this._map.off("zoom",this._onZoom),this._map=void 0,Us=0,Zs=!1}_isOutOfMapMaxBounds(t){const e=this._map.getMaxBounds(),i=t.coords;return e&&(i.longitudee.getEast()||i.latitudee.getNorth())}_setErrorState(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting");break;case"ACTIVE_ERROR":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}}_updateCircleRadius(){const t=this._map.getBounds(),e=t.getSouthEast(),i=t.getNorthEast(),r=e.distanceTo(i),n=Math.ceil(this._accuracy/(r/this._map._container.clientHeight)*2);this._circleElement.style.width=`${n}px`,this._circleElement.style.height=`${n}px`}trigger(){if(!this._setup)return e.w("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new e.k("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":Us--,Zs=!1,this._watchState="OFF",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this.fire(new e.k("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new e.k("trackuserlocationstart")),this.fire(new e.k("userlocationfocus"));break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"OFF":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}if("OFF"===this._watchState&&void 0!==this._geolocationWatchID)this._clearWatch();else if(void 0===this._geolocationWatchID){let t;this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),Us++,Us>1?(t={maximumAge:6e5,timeout:0},Zs=!0):(t=this.options.positionOptions,Zs=!1),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,t)}}else window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0}_clearWatch(){window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)}},t.GlobeControl=class{constructor(){this._toggleProjection=()=>{var t;const e=null===(t=this._map.getProjection())||void 0===t?void 0:t.type;this._map.setProjection("mercator"!==e&&e?{type:"mercator"}:{type:"globe"}),this._updateGlobeIcon()},this._updateGlobeIcon=()=>{var t;this._globeButton.classList.remove("maplibregl-ctrl-globe"),this._globeButton.classList.remove("maplibregl-ctrl-globe-enabled"),"globe"===(null===(t=this._map.getProjection())||void 0===t?void 0:t.type)?(this._globeButton.classList.add("maplibregl-ctrl-globe-enabled"),this._globeButton.title=this._map._getUIString("GlobeControl.Disable")):(this._globeButton.classList.add("maplibregl-ctrl-globe"),this._globeButton.title=this._map._getUIString("GlobeControl.Enable"))}}onAdd(t){return this._map=t,this._container=a.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._globeButton=a.create("button","maplibregl-ctrl-globe",this._container),a.create("span","maplibregl-ctrl-icon",this._globeButton).setAttribute("aria-hidden","true"),this._globeButton.type="button",this._globeButton.addEventListener("click",this._toggleProjection),this._updateGlobeIcon(),this._map.on("styledata",this._updateGlobeIcon),this._container}onRemove(){a.remove(this._container),this._map.off("styledata",this._updateGlobeIcon),this._globeButton.removeEventListener("click",this._toggleProjection),this._map=void 0}},t.Hash=wn,t.ImageSource=K,t.KeyboardHandler=ss,t.LngLatBounds=G,t.LogoControl=Ts,t.Map=class extends vs{constructor(t){var i,r;e.cd.mark(e.ce.create);const n=Object.assign(Object.assign(Object.assign({},Ds),t),{canvasContextAttributes:Object.assign(Object.assign({},Ds.canvasContextAttributes),t.canvasContextAttributes)});if(null!=n.minZoom&&null!=n.maxZoom&&n.minZoom>n.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(null!=n.minPitch&&null!=n.maxPitch&&n.minPitch>n.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(null!=n.minPitch&&n.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(null!=n.maxPitch&&n.maxPitch>180)throw new Error("maxPitch must be less than or equal to 180");const s=new ze,o=new Le;if(void 0!==n.minZoom&&s.setMinZoom(n.minZoom),void 0!==n.maxZoom&&s.setMaxZoom(n.maxZoom),void 0!==n.minPitch&&s.setMinPitch(n.minPitch),void 0!==n.maxPitch&&s.setMaxPitch(n.maxPitch),void 0!==n.renderWorldCopies&&s.setRenderWorldCopies(n.renderWorldCopies),super(s,o,{bearingSnap:n.bearingSnap}),this._idleTriggered=!1,this._crossFadingFactor=1,this._renderTaskQueue=new Ps,this._controls=[],this._mapId=e.a1(),this._contextLost=t=>{t.preventDefault(),this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this.fire(new e.k("webglcontextlost",{originalEvent:t}))},this._contextRestored=t=>{this._setupPainter(),this.resize(),this._update(),this.fire(new e.k("webglcontextrestored",{originalEvent:t}))},this._onMapScroll=t=>{if(t.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1},this._onWindowOnline=()=>{this._update()},this._interactive=n.interactive,this._maxTileCacheSize=n.maxTileCacheSize,this._maxTileCacheZoomLevels=n.maxTileCacheZoomLevels,this._canvasContextAttributes=Object.assign({},n.canvasContextAttributes),this._trackResize=!0===n.trackResize,this._bearingSnap=n.bearingSnap,this._centerClampedToGround=n.centerClampedToGround,this._refreshExpiredTiles=!0===n.refreshExpiredTiles,this._fadeDuration=n.fadeDuration,this._crossSourceCollisions=!0===n.crossSourceCollisions,this._collectResourceTiming=!0===n.collectResourceTiming,this._locale=Object.assign(Object.assign({},zs),n.locale),this._clickTolerance=n.clickTolerance,this._overridePixelRatio=n.pixelRatio,this._maxCanvasSize=n.maxCanvasSize,this.transformCameraUpdate=n.transformCameraUpdate,this.cancelPendingTileRequestsWhileZooming=!0===n.cancelPendingTileRequestsWhileZooming,this._imageQueueHandle=f.addThrottleControl((()=>this.isMoving())),this._requestManager=new m(n.transformRequest),"string"==typeof n.container){if(this._container=document.getElementById(n.container),!this._container)throw new Error(`Container '${n.container}' not found.`)}else{if(!(n.container instanceof HTMLElement))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=n.container}if(n.maxBounds&&this.setMaxBounds(n.maxBounds),this._setupContainer(),this._setupPainter(),this.on("move",(()=>this._update(!1))),this.on("moveend",(()=>this._update(!1))),this.on("zoom",(()=>this._update(!0))),this.on("terrain",(()=>{this.painter.terrainFacilitator.dirty=!0,this._update(!0)})),this.once("idle",(()=>{this._idleTriggered=!0})),"undefined"!=typeof window){addEventListener("online",this._onWindowOnline,!1);let t=!1;const e=bn((t=>{this._trackResize&&!this._removed&&(this.resize(t),this.redraw())}),50);this._resizeObserver=new ResizeObserver((i=>{t?e(i):t=!0})),this._resizeObserver.observe(this._container)}this.handlers=new xs(this,n),this._hash=n.hash&&new wn("string"==typeof n.hash&&n.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:n.center,elevation:n.elevation,zoom:n.zoom,bearing:n.bearing,pitch:n.pitch,roll:n.roll}),n.bounds&&(this.resize(),this.fitBounds(n.bounds,e.e({},n.fitBoundsOptions,{duration:0}))));const a="string"==typeof n.style||!("globe"===(null===(r=null===(i=n.style)||void 0===i?void 0:i.projection)||void 0===r?void 0:r.type));this.resize(null,a),this._localIdeographFontFamily=n.localIdeographFontFamily,this._validateStyle=n.validateStyle,n.style&&this.setStyle(n.style,{localIdeographFontFamily:n.localIdeographFontFamily}),n.attributionControl&&this.addControl(new ws("boolean"==typeof n.attributionControl?void 0:n.attributionControl)),n.maplibreLogo&&this.addControl(new Ts,n.logoPosition),this.on("style.load",(()=>{if(a||this._resizeTransform(),this.transform.unmodified){const t=e.M(this.style.stylesheet,["center","zoom","bearing","pitch","roll"]);this.jumpTo(t)}})),this.on("data",(t=>{this._update("style"===t.dataType),this.fire(new e.k(`${t.dataType}data`,t))})),this.on("dataloading",(t=>{this.fire(new e.k(`${t.dataType}dataloading`,t))})),this.on("dataabort",(t=>{this.fire(new e.k("sourcedataabort",t))}))}_getMapId(){return this._mapId}addControl(t,i){if(void 0===i&&(i=t.getDefaultPosition?t.getDefaultPosition():"top-right"),!t||!t.onAdd)return this.fire(new e.j(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));const r=t.onAdd(this);this._controls.push(t);const n=this._controlPositions[i];return-1!==i.indexOf("bottom")?n.insertBefore(r,n.firstChild):n.appendChild(r),this}removeControl(t){if(!t||!t.onRemove)return this.fire(new e.j(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));const i=this._controls.indexOf(t);return i>-1&&this._controls.splice(i,1),t.onRemove(this),this}hasControl(t){return this._controls.indexOf(t)>-1}calculateCameraOptionsFromTo(t,e,i,r){return null==r&&this.terrain&&(r=this.terrain.getElevationForLngLatZoom(i,this.transform.tileZoom)),super.calculateCameraOptionsFromTo(t,e,i,r)}resize(t,i=!0){const[r,n]=this._containerDimensions(),s=this._getClampedPixelRatio(r,n);if(this._resizeCanvas(r,n,s),this.painter.resize(r,n,s),this.painter.overLimit()){const t=this.painter.context.gl;this._maxCanvasSize=[t.drawingBufferWidth,t.drawingBufferHeight];const e=this._getClampedPixelRatio(r,n);this._resizeCanvas(r,n,e),this.painter.resize(r,n,e)}this._resizeTransform(i);const o=!this._moving;return o&&(this.stop(),this.fire(new e.k("movestart",t)).fire(new e.k("move",t))),this.fire(new e.k("resize",t)),o&&this.fire(new e.k("moveend",t)),this}_resizeTransform(t=!0){var e;const[i,r]=this._containerDimensions();this.transform.resize(i,r,t),null===(e=this._requestedCameraState)||void 0===e||e.resize(i,r,t)}_getClampedPixelRatio(t,e){const{0:i,1:r}=this._maxCanvasSize,n=this.getPixelRatio(),s=t*n,o=e*n;return Math.min(s>i?i/s:1,o>r?r/o:1)*n}getPixelRatio(){var t;return null!==(t=this._overridePixelRatio)&&void 0!==t?t:devicePixelRatio}setPixelRatio(t){this._overridePixelRatio=t,this.resize()}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()}setMaxBounds(t){return this.transform.setMaxBounds(G.convert(t)),this._update()}setMinZoom(t){if((t=null==t?-2:t)>=-2&&t<=this.transform.maxZoom)return this.transform.setMinZoom(t),this._update(),this.getZoom()=this.transform.minZoom)return this.transform.setMaxZoom(t),this._update(),this.getZoom()>t&&this.setZoom(t),this;throw new Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(t){if((t=null==t?0:t)<0)throw new Error("minPitch must be greater than or equal to 0");if(t>=0&&t<=this.transform.maxPitch)return this.transform.setMinPitch(t),this._update(),this.getPitch()180)throw new Error("maxPitch must be less than or equal to 180");if(t>=this.transform.minPitch)return this.transform.setMaxPitch(t),this._update(),this.getPitch()>t&&this.setPitch(t),this;throw new Error("maxPitch must be greater than the current minPitch")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(t){return this.transform.setRenderWorldCopies(t),this._update()}project(t){return this.transform.locationToScreenPoint(e.N.convert(t),this.style&&this.terrain)}unproject(t){return this.transform.screenPointToLocation(e.P.convert(t),this.terrain)}isMoving(){var t;return this._moving||(null===(t=this.handlers)||void 0===t?void 0:t.isMoving())}isZooming(){var t;return this._zooming||(null===(t=this.handlers)||void 0===t?void 0:t.isZooming())}isRotating(){var t;return this._rotating||(null===(t=this.handlers)||void 0===t?void 0:t.isRotating())}_createDelegatedListener(t,e,i){if("mouseenter"===t||"mouseover"===t){let r=!1;const n=n=>{const s=e.filter((t=>this.getLayer(t))),o=0!==s.length?this.queryRenderedFeatures(n.point,{layers:s}):[];o.length?r||(r=!0,i.call(this,new kn(t,this,n.originalEvent,{features:o}))):r=!1};return{layers:e,listener:i,delegates:{mousemove:n,mouseout:()=>{r=!1}}}}if("mouseleave"===t||"mouseout"===t){let r=!1;const n=n=>{const s=e.filter((t=>this.getLayer(t)));(0!==s.length?this.queryRenderedFeatures(n.point,{layers:s}):[]).length?r=!0:r&&(r=!1,i.call(this,new kn(t,this,n.originalEvent)))},s=e=>{r&&(r=!1,i.call(this,new kn(t,this,e.originalEvent)))};return{layers:e,listener:i,delegates:{mousemove:n,mouseout:s}}}{const r=t=>{const r=e.filter((t=>this.getLayer(t))),n=0!==r.length?this.queryRenderedFeatures(t.point,{layers:r}):[];n.length&&(t.features=n,i.call(this,t),delete t.features)};return{layers:e,listener:i,delegates:{[t]:r}}}}_saveDelegatedListener(t,e){this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[t]=this._delegatedListeners[t]||[],this._delegatedListeners[t].push(e)}_removeDelegatedListener(t,e,i){if(!this._delegatedListeners||!this._delegatedListeners[t])return;const r=this._delegatedListeners[t];for(let n=0;ne.includes(t)))){for(const e in t.delegates)this.off(e,t.delegates[e]);return void r.splice(n,1)}}}on(t,e,i){if(void 0===i)return super.on(t,e);const r="string"==typeof e?[e]:e,n=this._createDelegatedListener(t,r,i);this._saveDelegatedListener(t,n);for(const s in n.delegates)this.on(s,n.delegates[s]);return{unsubscribe:()=>{this._removeDelegatedListener(t,r,i)}}}once(t,e,i){if(void 0===i)return super.once(t,e);const r="string"==typeof e?[e]:e,n=this._createDelegatedListener(t,r,i);for(const s in n.delegates){const e=n.delegates[s];n.delegates[s]=(...n)=>{this._removeDelegatedListener(t,r,i),e(...n)}}this._saveDelegatedListener(t,n);for(const s in n.delegates)this.once(s,n.delegates[s]);return this}off(t,e,i){return void 0===i?super.off(t,e):(this._removeDelegatedListener(t,"string"==typeof e?[e]:e,i),this)}queryRenderedFeatures(t,i){if(!this.style)return[];let r;const n=t instanceof e.P||Array.isArray(t),s=n?t:[[0,0],[this.transform.width,this.transform.height]];if(i=i||(n?{}:t)||{},s instanceof e.P||"number"==typeof s[0])r=[e.P.convert(s)];else{const t=e.P.convert(s[0]),i=e.P.convert(s[1]);r=[t,new e.P(i.x,t.y),i,new e.P(t.x,i.y),t]}return this.style.queryRenderedFeatures(r,i,this.transform)}querySourceFeatures(t,e){return this.style.querySourceFeatures(t,e)}setStyle(t,i){return!1!==(i=e.e({},{localIdeographFontFamily:this._localIdeographFontFamily,validate:this._validateStyle},i)).diff&&i.localIdeographFontFamily===this._localIdeographFontFamily&&this.style&&t?(this._diffStyle(t,i),this):(this._localIdeographFontFamily=i.localIdeographFontFamily,this._updateStyle(t,i))}setTransformRequest(t){return this._requestManager.setTransformRequest(t),this}_getUIString(t){const e=this._locale[t];if(null==e)throw new Error(`Missing UI string '${t}'`);return e}_updateStyle(t,e){var i,r;if(e.transformStyle&&this.style&&!this.style._loaded)return void this.style.once("style.load",(()=>this._updateStyle(t,e)));const n=this.style&&e.transformStyle?this.style.serialize():void 0;return this.style&&(this.style.setEventedParent(null),this.style._remove(!t)),t?(this.style=new gi(this,e||{}),this.style.setEventedParent(this,{style:this.style}),"string"==typeof t?this.style.loadURL(t,e,n):this.style.loadJSON(t,e,n),this):(null===(r=null===(i=this.style)||void 0===i?void 0:i.projection)||void 0===r||r.destroy(),delete this.style,this)}_lazyInitEmptyStyle(){this.style||(this.style=new gi(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())}_diffStyle(t,i){if("string"==typeof t){const r=this._requestManager.transformRequest(t,"Style");e.h(r,new AbortController).then((t=>{this._updateDiff(t.data,i)})).catch((t=>{t&&this.fire(new e.j(t))}))}else"object"==typeof t&&this._updateDiff(t,i)}_updateDiff(t,i){try{this.style.setState(t,i)&&this._update(!0)}catch(r){e.w(`Unable to perform style diff: ${r.message||r.error||r}. Rebuilding the style from scratch.`),this._updateStyle(t,i)}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():e.w("There is no style added to the map.")}addSource(t,e){return this._lazyInitEmptyStyle(),this.style.addSource(t,e),this._update(!0)}isSourceLoaded(t){const i=this.style&&this.style.sourceCaches[t];if(void 0!==i)return i.loaded();this.fire(new e.j(new Error(`There is no source with ID '${t}'`)))}setTerrain(t){if(this.style._checkLoaded(),this._terrainDataCallback&&this.style.off("data",this._terrainDataCallback),t){const i=this.style.sourceCaches[t.source];if(!i)throw new Error(`cannot load terrain, because there exists no source with ID: ${t.source}`);null===this.terrain&&i.reload();for(const r in this.style._layers){const i=this.style._layers[r];"hillshade"===i.type&&i.source===t.source&&e.w("You are using the same source for a hillshade layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.")}this.terrain=new Is(this.painter,i,t),this.painter.renderToTexture=new As(this.painter,this.terrain),this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this._terrainDataCallback=e=>{"style"===e.dataType?this.terrain.sourceCache.freeRtt():"source"===e.dataType&&e.tile&&(e.sourceId!==t.source||this._elevationFreeze||(this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this._centerClampedToGround&&this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom))),this.terrain.sourceCache.freeRtt(e.tile.tileID))},this.style.on("data",this._terrainDataCallback)}else this.terrain&&this.terrain.sourceCache.destruct(),this.terrain=null,this.painter.renderToTexture&&this.painter.renderToTexture.destruct(),this.painter.renderToTexture=null,this.transform.setMinElevationForCurrentTile(0),this._centerClampedToGround&&this.transform.setElevation(0);return this.fire(new e.k("terrain",{terrain:t})),this}getTerrain(){var t,e;return null!==(e=null===(t=this.terrain)||void 0===t?void 0:t.options)&&void 0!==e?e:null}areTilesLoaded(){const t=this.style&&this.style.sourceCaches;for(const e in t){const i=t[e]._tiles;for(const t in i){const e=i[t];if("loaded"!==e.state&&"errored"!==e.state)return!1}}return!0}removeSource(t){return this.style.removeSource(t),this._update(!0)}getSource(t){return this.style.getSource(t)}addImage(t,i,r={}){const{pixelRatio:n=1,sdf:s=!1,stretchX:a,stretchY:l,content:c,textFitWidth:h,textFitHeight:u}=r;if(this._lazyInitEmptyStyle(),!(i instanceof HTMLImageElement||e.b(i))){if(void 0===i.width||void 0===i.height)return this.fire(new e.j(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));{const{width:r,height:o,data:d}=i,p=i;return this.style.addImage(t,{data:new e.R({width:r,height:o},new Uint8Array(d)),pixelRatio:n,stretchX:a,stretchY:l,content:c,textFitWidth:h,textFitHeight:u,sdf:s,version:0,userImage:p}),p.onAdd&&p.onAdd(this,t),this}}{const{width:r,height:d,data:p}=o.getImageData(i);this.style.addImage(t,{data:new e.R({width:r,height:d},p),pixelRatio:n,stretchX:a,stretchY:l,content:c,textFitWidth:h,textFitHeight:u,sdf:s,version:0})}}updateImage(t,i){const r=this.style.getImage(t);if(!r)return this.fire(new e.j(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));const n=i instanceof HTMLImageElement||e.b(i)?o.getImageData(i):i,{width:s,height:a,data:l}=n;if(void 0===s||void 0===a)return this.fire(new e.j(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));if(s!==r.data.width||a!==r.data.height)return this.fire(new e.j(new Error("The width and height of the updated image must be that same as the previous version of the image")));const c=!(i instanceof HTMLImageElement||e.b(i));return r.data.replace(l,c),this.style.updateImage(t,r),this}getImage(t){return this.style.getImage(t)}hasImage(t){return t?!!this.style.getImage(t):(this.fire(new e.j(new Error("Missing required image id"))),!1)}removeImage(t){this.style.removeImage(t)}loadImage(t){return f.getImage(this._requestManager.transformRequest(t,"Image"),new AbortController)}listImages(){return this.style.listImages()}addLayer(t,e){return this._lazyInitEmptyStyle(),this.style.addLayer(t,e),this._update(!0)}moveLayer(t,e){return this.style.moveLayer(t,e),this._update(!0)}removeLayer(t){return this.style.removeLayer(t),this._update(!0)}getLayer(t){return this.style.getLayer(t)}getLayersOrder(){return this.style.getLayersOrder()}setLayerZoomRange(t,e,i){return this.style.setLayerZoomRange(t,e,i),this._update(!0)}setFilter(t,e,i={}){return this.style.setFilter(t,e,i),this._update(!0)}getFilter(t){return this.style.getFilter(t)}setPaintProperty(t,e,i,r={}){return this.style.setPaintProperty(t,e,i,r),this._update(!0)}getPaintProperty(t,e){return this.style.getPaintProperty(t,e)}setLayoutProperty(t,e,i,r={}){return this.style.setLayoutProperty(t,e,i,r),this._update(!0)}getLayoutProperty(t,e){return this.style.getLayoutProperty(t,e)}setGlyphs(t,e={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(t,e),this._update(!0)}getGlyphs(){return this.style.getGlyphsUrl()}addSprite(t,e,i={}){return this._lazyInitEmptyStyle(),this.style.addSprite(t,e,i,(t=>{t||this._update(!0)})),this}removeSprite(t){return this._lazyInitEmptyStyle(),this.style.removeSprite(t),this._update(!0)}getSprite(){return this.style.getSprite()}setSprite(t,e={}){return this._lazyInitEmptyStyle(),this.style.setSprite(t,e,(t=>{t||this._update(!0)})),this}setLight(t,e={}){return this._lazyInitEmptyStyle(),this.style.setLight(t,e),this._update(!0)}getLight(){return this.style.getLight()}setSky(t,e={}){return this._lazyInitEmptyStyle(),this.style.setSky(t,e),this._update(!0)}getSky(){return this.style.getSky()}setFeatureState(t,e){return this.style.setFeatureState(t,e),this._update()}removeFeatureState(t,e){return this.style.removeFeatureState(t,e),this._update()}getFeatureState(t){return this.style.getFeatureState(t)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let t=0,e=0;return this._container&&(t=this._container.clientWidth||400,e=this._container.clientHeight||300),[t,e]}_setupContainer(){const t=this._container;t.classList.add("maplibregl-map");const e=this._canvasContainer=a.create("div","maplibregl-canvas-container",t);this._interactive&&e.classList.add("maplibregl-interactive"),this._canvas=a.create("canvas","maplibregl-canvas",e),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex",this._interactive?"0":"-1"),this._canvas.setAttribute("aria-label",this._getUIString("Map.Title")),this._canvas.setAttribute("role","region");const i=this._containerDimensions(),r=this._getClampedPixelRatio(i[0],i[1]);this._resizeCanvas(i[0],i[1],r);const n=this._controlContainer=a.create("div","maplibregl-control-container",t),s=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach((t=>{s[t]=a.create("div",`maplibregl-ctrl-${t} `,n)})),this._container.addEventListener("scroll",this._onMapScroll,!1)}_resizeCanvas(t,e,i){this._canvas.width=Math.floor(i*t),this._canvas.height=Math.floor(i*e),this._canvas.style.width=`${t}px`,this._canvas.style.height=`${e}px`}_setupPainter(){const t=Object.assign(Object.assign({},this._canvasContextAttributes),{alpha:!0,depth:!0,stencil:!0,premultipliedAlpha:!0});let e=null;this._canvas.addEventListener("webglcontextcreationerror",(i=>{e={requestedAttributes:t},i&&(e.statusMessage=i.statusMessage,e.type=i.type)}),{once:!0});let i=null;if(i=this._canvasContextAttributes.contextType?this._canvas.getContext(this._canvasContextAttributes.contextType,t):this._canvas.getContext("webgl2",t)||this._canvas.getContext("webgl",t),!i){const t="Failed to initialize WebGL";throw e?(e.message=t,new Error(JSON.stringify(e))):new Error(t)}this.painter=new vn(i,this.transform),l.testSupport(i)}migrateProjection(t,i){super.migrateProjection(t,i),this.painter.transform=t,this.fire(new e.k("projectiontransition",{newProjection:this.style.projection.name}))}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(t){return this.style&&this.style._loaded?(this._styleDirty=this._styleDirty||t,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(t){return this._update(),this._renderTaskQueue.add(t)}_cancelRenderFrame(t){this._renderTaskQueue.remove(t)}_render(t){var i,r,n,s,a;const l=this._idleTriggered?this._fadeDuration:0,c=(null===(i=this.style.projection)||void 0===i?void 0:i.transitionState)>0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(t),this._removed)return;let h=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;const t=this.transform.zoom,i=o.now();this.style.zoomHistory.update(t,i);const r=new e.z(t,{now:i,fadeDuration:l,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),n=r.crossFadingFactor();1===n&&n===this._crossFadingFactor||(h=!0,this._crossFadingFactor=n),this.style.update(r)}const u=(null===(r=this.style.projection)||void 0===r?void 0:r.transitionState)>0!==c;null===(n=this.style.projection)||void 0===n||n.setErrorQueryLatitudeDegrees(this.transform.center.lat),this.transform.setTransitionState(null===(s=this.style.projection)||void 0===s?void 0:s.transitionState,null===(a=this.style.projection)||void 0===a?void 0:a.latitudeErrorCorrectionRadians),this.style&&(this._sourcesDirty||u)&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.terrain?(this.terrain.sourceCache.update(this.transform,this.terrain),this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),!this._elevationFreeze&&this._centerClampedToGround&&this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom))):(this.transform.setMinElevationForCurrentTile(0),this._centerClampedToGround&&this.transform.setElevation(0)),this._placementDirty=this.style&&this.style._updatePlacement(this.transform,this.showCollisionBoxes,l,this._crossSourceCollisions,u),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:l,showPadding:this.showPadding}),this.fire(new e.k("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,e.cd.mark(e.ce.load),this.fire(new e.k("load"))),this.style&&(this.style.hasTransitions()||h)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles();const d=this._sourcesDirty||this._styleDirty||this._placementDirty;return d||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new e.k("idle")),!this._loaded||this._fullyLoaded||d||(this._fullyLoaded=!0,e.cd.mark(e.ce.fullLoad)),this}redraw(){return this.style&&(this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._render(0)),this}remove(){var t;this._hash&&this._hash.remove();for(const e of this._controls)e.onRemove(this);this._controls=[],this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._renderTaskQueue.clear(),this.painter.destroy(),this.handlers.destroy(),delete this.handlers,this.setStyle(null),"undefined"!=typeof window&&removeEventListener("online",this._onWindowOnline,!1),f.removeThrottleControl(this._imageQueueHandle),null===(t=this._resizeObserver)||void 0===t||t.disconnect();const i=this.painter.context.gl.getExtension("WEBGL_lose_context");(null==i?void 0:i.loseContext)&&i.loseContext(),this._canvas.removeEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.removeEventListener("webglcontextlost",this._contextLost,!1),a.remove(this._canvasContainer),a.remove(this._controlContainer),this._container.removeEventListener("scroll",this._onMapScroll,!1),this._container.classList.remove("maplibregl-map"),e.cd.clearMetrics(),this._removed=!0,this.fire(new e.k("remove"))}triggerRepaint(){this.style&&!this._frameRequest&&(this._frameRequest=new AbortController,o.frameAsync(this._frameRequest).then((t=>{e.cd.frame(t),this._frameRequest=null,this._render(t)})).catch((t=>{if(!e.cf(t)&&!function(t){return t.message===jr}(t))throw t})))}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(t){this._showTileBoundaries!==t&&(this._showTileBoundaries=t,this._update())}get showPadding(){return!!this._showPadding}set showPadding(t){this._showPadding!==t&&(this._showPadding=t,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(t){this._showCollisionBoxes!==t&&(this._showCollisionBoxes=t,t?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(t){this._showOverdrawInspector!==t&&(this._showOverdrawInspector=t,this._update())}get repaint(){return!!this._repaint}set repaint(t){this._repaint!==t&&(this._repaint=t,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(t){this._vertices=t,this._update()}get version(){return ks}getCameraTargetElevation(){return this.transform.elevation}getProjection(){return this.style.getProjection()}setProjection(t){return this._lazyInitEmptyStyle(),this.style.setProjection(t),this._update(!0)}},t.MapMouseEvent=kn,t.MapTouchEvent=Dn,t.MapWheelEvent=Rn,t.Marker=Vs,t.NavigationControl=class{constructor(t){this._updateZoomButtons=()=>{const t=this._map.getZoom(),e=t===this._map.getMaxZoom(),i=t===this._map.getMinZoom();this._zoomInButton.disabled=e,this._zoomOutButton.disabled=i,this._zoomInButton.setAttribute("aria-disabled",e.toString()),this._zoomOutButton.setAttribute("aria-disabled",i.toString())},this._rotateCompassArrow=()=>{this._compassIcon.style.transform=this.options.visualizePitch&&this.options.visualizeRoll?`scale(${1/Math.pow(Math.cos(this._map.transform.pitchInRadians),.5)}) rotateZ(${-this._map.transform.roll}deg) rotateX(${this._map.transform.pitch}deg) rotateZ(${-this._map.transform.bearing}deg)`:this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(this._map.transform.pitchInRadians),.5)}) rotateX(${this._map.transform.pitch}deg) rotateZ(${-this._map.transform.bearing}deg)`:this.options.visualizeRoll?`rotate(${-this._map.transform.bearing-this._map.transform.roll}deg)`:`rotate(${-this._map.transform.bearing}deg)`},this._setButtonTitle=(t,e)=>{const i=this._map._getUIString(`NavigationControl.${e}`);t.title=i,t.setAttribute("aria-label",i)},this.options=e.e({},Rs,t),this._container=a.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._container.addEventListener("contextmenu",(t=>t.preventDefault())),this.options.showZoom&&(this._zoomInButton=this._createButton("maplibregl-ctrl-zoom-in",(t=>this._map.zoomIn({},{originalEvent:t}))),a.create("span","maplibregl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden","true"),this._zoomOutButton=this._createButton("maplibregl-ctrl-zoom-out",(t=>this._map.zoomOut({},{originalEvent:t}))),a.create("span","maplibregl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden","true")),this.options.showCompass&&(this._compass=this._createButton("maplibregl-ctrl-compass",(t=>{this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:t}):this._map.resetNorth({},{originalEvent:t})})),this._compassIcon=a.create("span","maplibregl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden","true"))}onAdd(t){return this._map=t,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),this._map.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&this._map.on("pitch",this._rotateCompassArrow),this.options.visualizeRoll&&this._map.on("roll",this._rotateCompassArrow),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new Ls(this._map,this._compass,this.options.visualizePitch)),this._container}onRemove(){a.remove(this._container),this.options.showZoom&&this._map.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off("pitch",this._rotateCompassArrow),this.options.visualizeRoll&&this._map.off("roll",this._rotateCompassArrow),this._map.off("rotate",this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map}_createButton(t,e){const i=a.create("button",t,this._container);return i.type="button",i.addEventListener("click",e),i}},t.Popup=class extends e.E{constructor(t){super(),this.remove=()=>(this._content&&a.remove(this._content),this._container&&(a.remove(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("move",this._onClose),this._map.off("click",this._onClose),this._map.off("remove",this.remove),this._map.off("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),this._map._canvasContainer.classList.remove("maplibregl-track-pointer"),delete this._map,this.fire(new e.k("close"))),this),this._onMouseUp=t=>{this._update(t.point)},this._onMouseMove=t=>{this._update(t.point)},this._onDrag=t=>{this._update(t.point)},this._update=t=>{var e;if(!this._map||!this._lngLat&&!this._trackPointer||!this._content)return;if(!this._container){if(this._container=a.create("div","maplibregl-popup",this._map.getContainer()),this._tip=a.create("div","maplibregl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className)for(const t of this.options.className.split(" "))this._container.classList.add(t);this._closeButton&&this._closeButton.setAttribute("aria-label",this._map._getUIString("Popup.Close")),this._trackPointer&&this._container.classList.add("maplibregl-popup-track-pointer")}if(this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._lngLat=this._map.transform.renderWorldCopies&&!this._trackPointer?Bs(this._lngLat,this._flatPos,this._map.transform):null===(e=this._lngLat)||void 0===e?void 0:e.wrap(),this._trackPointer&&!t)return;const i=this._flatPos=this._pos=this._trackPointer&&t?t:this._map.project(this._lngLat);this._map.terrain&&(this._flatPos=this._trackPointer&&t?t:this._map.transform.locationToScreenPoint(this._lngLat));let r=this.options.anchor;const n=Ws(this.options.offset);if(!r){const t=this._container.offsetWidth,e=this._container.offsetHeight;let s;s=i.y+n.bottom.ythis._map.transform.height-e?["bottom"]:[],i.xthis._map.transform.width-t/2&&s.push("right"),r=0===s.length?"bottom":s.join("-")}let s=i.add(n[r]);this.options.subpixelPositioning||(s=s.round()),a.setTransform(this._container,`${Os[r]} translate(${s.x}px,${s.y}px)`),js(this._container,r,"popup")},this._onClose=()=>{this.remove()},this.options=e.e(Object.create(Hs),t)}addTo(t){return this._map&&this.remove(),this._map=t,this.options.closeOnClick&&this._map.on("click",this._onClose),this.options.closeOnMove&&this._map.on("move",this._onClose),this._map.on("remove",this.remove),this._update(),this._focusFirstElement(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),this._container&&this._container.classList.add("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.add("maplibregl-track-pointer")):this._map.on("move",this._update),this.fire(new e.k("open")),this}isOpen(){return!!this._map}getLngLat(){return this._lngLat}setLngLat(t){return this._lngLat=e.N.convert(t),this._pos=null,this._flatPos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),this._container&&this._container.classList.remove("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.remove("maplibregl-track-pointer")),this}trackPointer(){return this._trackPointer=!0,this._pos=null,this._flatPos=null,this._update(),this._map&&(this._map.off("move",this._update),this._map.on("mousemove",this._onMouseMove),this._map.on("drag",this._onDrag),this._container&&this._container.classList.add("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.add("maplibregl-track-pointer")),this}getElement(){return this._container}setText(t){return this.setDOMContent(document.createTextNode(t))}setHTML(t){const e=document.createDocumentFragment(),i=document.createElement("body");let r;for(i.innerHTML=t;r=i.firstChild,r;)e.appendChild(r);return this.setDOMContent(e)}getMaxWidth(){var t;return null===(t=this._container)||void 0===t?void 0:t.style.maxWidth}setMaxWidth(t){return this.options.maxWidth=t,this._update(),this}setDOMContent(t){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=a.create("div","maplibregl-popup-content",this._container);return this._content.appendChild(t),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(t){return this._container&&this._container.classList.add(t),this}removeClassName(t){return this._container&&this._container.classList.remove(t),this}setOffset(t){return this.options.offset=t,this._update(),this}toggleClassName(t){if(this._container)return this._container.classList.toggle(t)}setSubpixelPositioning(t){this.options.subpixelPositioning=t}_createCloseButton(){this.options.closeButton&&(this._closeButton=a.create("button","maplibregl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose))}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const t=this._container.querySelector(Xs);t&&t.focus()}},t.RasterDEMTileSource=X,t.RasterTileSource=H,t.ScaleControl=class{constructor(t){this._onMove=()=>{$s(this._map,this._container,this.options)},this.setUnit=t=>{this.options.unit=t,$s(this._map,this._container,this.options)},this.options=Object.assign(Object.assign({},Gs),t)}getDefaultPosition(){return"bottom-left"}onAdd(t){return this._map=t,this._container=a.create("div","maplibregl-ctrl maplibregl-ctrl-scale",t.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container}onRemove(){a.remove(this._container),this._map.off("move",this._onMove),this._map=void 0}},t.ScrollZoomHandler=ls,t.Style=gi,t.TerrainControl=class{constructor(t){this._toggleTerrain=()=>{this._map.getTerrain()?this._map.setTerrain(null):this._map.setTerrain(this.options),this._updateTerrainIcon()},this._updateTerrainIcon=()=>{this._terrainButton.classList.remove("maplibregl-ctrl-terrain"),this._terrainButton.classList.remove("maplibregl-ctrl-terrain-enabled"),this._map.terrain?(this._terrainButton.classList.add("maplibregl-ctrl-terrain-enabled"),this._terrainButton.title=this._map._getUIString("TerrainControl.Disable")):(this._terrainButton.classList.add("maplibregl-ctrl-terrain"),this._terrainButton.title=this._map._getUIString("TerrainControl.Enable"))},this.options=t}onAdd(t){return this._map=t,this._container=a.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._terrainButton=a.create("button","maplibregl-ctrl-terrain",this._container),a.create("span","maplibregl-ctrl-icon",this._terrainButton).setAttribute("aria-hidden","true"),this._terrainButton.type="button",this._terrainButton.addEventListener("click",this._toggleTerrain),this._updateTerrainIcon(),this._map.on("terrain",this._updateTerrainIcon),this._container}onRemove(){a.remove(this._container),this._map.off("terrain",this._updateTerrainIcon),this._map=void 0}},t.TwoFingersTouchPitchHandler=rs,t.TwoFingersTouchRotateHandler=es,t.TwoFingersTouchZoomHandler=Qn,t.TwoFingersTouchZoomRotateHandler=fs,t.VectorTileSource=q,t.VideoSource=Y,t.addSourceType=(t,i)=>e._(void 0,void 0,void 0,(function*(){if(tt(t))throw new Error(`A source type called "${t}" already exists.`);((t,e)=>{Q[t]=e})(t,i)})),t.clearPrewarmedResources=function(){const t=R;t&&(t.isPreloaded()&&1===t.numActive()?(t.release(z),R=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},t.createTileMesh=qe,t.getMaxParallelImageRequests=function(){return e.a.MAX_PARALLEL_IMAGE_REQUESTS},t.getRTLTextPluginStatus=function(){return nt().getRTLTextPluginStatus()},t.getVersion=function(){return Ks},t.getWorkerCount=function(){return k.workerCount},t.getWorkerUrl=function(){return e.a.WORKER_URL},t.importScriptInWorkers=function(t){return O().broadcast("IS",t)},t.prewarm=function(){F().acquire(z)},t.setMaxParallelImageRequests=function(t){e.a.MAX_PARALLEL_IMAGE_REQUESTS=t},t.setRTLTextPlugin=function(t,e){return nt().setRTLTextPlugin(t,e)},t.setWorkerCount=function(t){k.workerCount=t},t.setWorkerUrl=function(t){e.a.WORKER_URL=t}})),t}()}}]); \ No newline at end of file diff --git a/assets/js/6443.921386ee.js.LICENSE.txt b/assets/js/6443.921386ee.js.LICENSE.txt new file mode 100644 index 00000000..adc2d1a8 --- /dev/null +++ b/assets/js/6443.921386ee.js.LICENSE.txt @@ -0,0 +1,4 @@ +/** + * MapLibre GL JS + * @license 3-Clause BSD. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v5.0.1/LICENSE.txt + */ diff --git a/assets/js/65007ee8.a3259ec2.js b/assets/js/65007ee8.a3259ec2.js deleted file mode 100644 index 89ea4e95..00000000 --- a/assets/js/65007ee8.a3259ec2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkreact_map_gl_website=self.webpackChunkreact_map_gl_website||[]).push([[1528],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>m});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),c=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=c(e.components);return n.createElement(u.Provider,{value:t},e.children)},p="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),p=c(r),d=o,m=p["".concat(u,".").concat(d)]||p[d]||f[d]||a;return r?n.createElement(m,i(i({ref:t},l),{},{components:r})):n.createElement(m,i({ref:t},l))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[p]="string"==typeof e?e:o,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>y,contentTitle:()=>v,default:()=>E,frontMatter:()=>m,metadata:()=>g,toc:()=>h});var n=r(7462),o=r(3366),a=r(7294),i=r(3905),s=(r(745),r(945));function u(e){return a.createElement("div",{className:"control-panel"},a.createElement("h3",null,"3D Terrain"),a.createElement("p",null,"Add 3D terrain and sky to a map."),a.createElement("div",{className:"source-link"},a.createElement("a",{href:"https://github.com/visgl/react-map-gl/tree/7.1-release/examples/terrain",target:"_new"},"View Code \u2197")))}const c=a.memo(u);var l="",p={id:"sky",type:"sky",paint:{"sky-type":"atmosphere","sky-atmosphere-sun":[0,0],"sky-atmosphere-sun-intensity":15}};function f(){return a.createElement(a.Fragment,null,a.createElement(s.ZP,{initialViewState:{latitude:32.6141,longitude:-114.34411,zoom:14,bearing:80,pitch:80},maxPitch:85,mapStyle:"mapbox://styles/mapbox/satellite-v9",mapboxAccessToken:l,terrain:{source:"mapbox-dem",exaggeration:1.5}},a.createElement(s.Hw,{id:"mapbox-dem",type:"raster-dem",url:"mapbox://mapbox.mapbox-terrain-dem-v1",tileSize:512,maxzoom:14}),a.createElement(s.mh,p)),a.createElement(c,null))}var d=["components"],m={},v="Terrain",g={unversionedId:"terrain",id:"terrain",title:"Terrain",description:"",source:"@site/src/examples/terrain.mdx",sourceDirName:".",slug:"/terrain",permalink:"/react-map-gl/examples/terrain",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"examplesSidebar",previous:{title:"Draw Polygon",permalink:"/react-map-gl/examples/draw-polygon"},next:{title:"Geocoder",permalink:"/react-map-gl/examples/geocoder"}},y={},h=[],b={toc:h},_="wrapper";function E(e){var t=e.components,r=(0,o.Z)(e,d);return(0,i.kt)(_,(0,n.Z)({},b,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"terrain"},"Terrain"),(0,i.kt)(f,{mdxType:"App"}))}E.isMDXComponent=!0},945:(e,t,r)=>{r.d(t,{ot:()=>$,$j:()=>te,mh:()=>ne,D5:()=>X,Jx:()=>K,Pv:()=>ee,GI:()=>Y,jf:()=>re,Hw:()=>oe,ZP:()=>ae,PE:()=>Z});var n=r(7294),o=n.createContext(null);var a=r(1202);function i(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(var r=0;r0;)r.appendChild(a.childNodes[0]);o._container=r;var i=o._resizeObserver;i&&(i.disconnect(),i.observe(r)),n.setProps(Object.assign({},t,{styleDiffing:!1})),o.resize();var s=t.initialViewState;return s&&(s.bounds?o.fitBounds(s.bounds,Object.assign({},s.fitBoundsOptions,{duration:0})):n._updateViewState(s,!1)),o.isStyleLoaded()?o.fire("load"):o.once("styledata",(function(){return o.fire("load")})),o._update(),n},t._initialize=function(e){var t=this,r=this.props,n=r.mapStyle,o=void 0===n?d:n,a=Object.assign({},r,r.initialViewState,{accessToken:r.mapboxAccessToken||_()||null,container:e,style:f(o)}),i=a.initialViewState||a.viewState||a;if(Object.assign(a,{center:[i.longitude||0,i.latitude||0],zoom:i.zoom||0,pitch:i.pitch||0,bearing:i.bearing||0}),r.gl){var u=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=function(){return HTMLCanvasElement.prototype.getContext=u,r.gl}}var c=new this._MapClass(a);i.padding&&c.setPadding(i.padding),r.cursor&&(c.getCanvas().style.cursor=r.cursor),this._createShadowTransform(c);var l=c._render;c._render=function(e){t._inRender=!0,l.call(c,e),t._inRender=!1};var p=c._renderTaskQueue.run;c._renderTaskQueue.run=function(e){p.call(c._renderTaskQueue,e),t._onBeforeRepaint()},c.on("render",(function(){return t._onAfterRepaint()}));var y=c.fire;for(var h in c.fire=this._fireEvent.bind(this,y),c.on("resize",(function(){t._renderTransform.resize(c.transform.width,c.transform.height)})),c.on("styledata",(function(){t._updateStyleComponents(t.props,{}),s(c.transform,t._renderTransform)})),c.on("sourcedata",(function(){return t._updateStyleComponents(t.props,{})})),m)c.on(h,this._onPointerEvent);for(var b in v)c.on(b,this._onCameraEvent);for(var E in g)c.on(E,this._onEvent);this._map=c},t.recycle=function(){var t=this.map.getContainer().querySelector("[mapboxgl-children]");null==t||t.remove(),e.savedMaps.push(this)},t.destroy=function(){this._map.remove()},t.redraw=function(){var e=this._map;!this._inRender&&e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())},t._createShadowTransform=function(e){var t,r,n=(t=e.transform,(r=t.clone()).pixelsToGLUnits=t.pixelsToGLUnits,r);e.painter.transform=n,this._renderTransform=n},t._updateSize=function(e){var t=e.viewState;if(t){var r=this._map;if(t.width!==r.transform.width||t.height!==r.transform.height)return r.resize(),!0}return!1},t._updateViewState=function(e,t){if(this._internalUpdate)return!1;var r=this._map,n=this._renderTransform,o=n.zoom,a=n.pitch,i=n.bearing,s=r.isMoving();s&&(n.cameraElevationReference="sea");var l=c(n,Object.assign({},u(r.transform),e));if(s&&(n.cameraElevationReference="ground"),l&&t){var p=this._deferredEvents;p.move=!0,p.zoom||(p.zoom=o!==n.zoom),p.rotate||(p.rotate=i!==n.bearing),p.pitch||(p.pitch=a!==n.pitch)}return s||c(r.transform,e),l},t._updateSettings=function(e,t){for(var r=this._map,n=!1,o=0,a=y;o0,a=this._queryRenderedFeatures(e.point),i=a.length>0;!i&&o&&(e.type="mouseleave",this._onPointerEvent(e)),this._hoveredFeatures=a,i&&!o&&(e.type="mouseenter",this._onPointerEvent(e)),e.type=n}else this._hoveredFeatures=null},t._fireEvent=function(e,t,r){var n=this._map,o=n.transform,a="string"==typeof t?t:t.type;return"move"===a&&this._updateViewState(this.props,!1),a in v&&("object"==typeof t&&(t.viewState=u(o)),this._map.isMoving())?(n.transform=this._renderTransform,e.call(n,t,r),n.transform=o,n):(e.call(n,t,r),n)},t._onBeforeRepaint=function(){var e=this,t=this._map;for(var r in this._internalUpdate=!0,this._deferredEvents)this._deferredEvents[r]&&t.fire(r);this._internalUpdate=!1;var n=this._map.transform;t.transform=this._renderTransform,this._onAfterRepaint=function(){s(e._renderTransform,n),t.transform=n}},(0,a.Z)(e,[{key:"map",get:function(){return this._map}},{key:"transform",get:function(){return this._renderTransform}}]),e}();function _(){var e=null;if("undefined"!=typeof location){var t=/access_token=([^&\/]*)/.exec(location.search);e=t&&t[1]}try{e=e||"pk.eyJ1IjoidWNmLW1hcGJveCIsImEiOiJja2tyNHQzdnIzYmNnMndwZGI3djNzdjVyIn0.xgCXV9mLZ47q7easx6WLCQ"}catch(r){}try{e=e||process.env.REACT_APP_MAPBOX_ACCESS_TOKEN}catch(n){}return e}b.savedMaps=[];var E=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function x(e){if(!e)return null;for(var t,r=e.map,n={getMap:function(){return r},getCenter:function(){return e.transform.center},getZoom:function(){return e.transform.zoom},getBearing:function(){return e.transform.bearing},getPitch:function(){return e.transform.pitch},getPadding:function(){return e.transform.padding},getBounds:function(){return e.transform.getBounds()},project:function(t){var n=r.transform;r.transform=e.transform;var o=r.project(t);return r.transform=n,o},unproject:function(t){var n=r.transform;r.transform=e.transform;var o=r.unproject(t);return r.transform=n,o},queryTerrainElevation:function(t,n){var o=r.transform;r.transform=e.transform;var a=r.queryTerrainElevation(t,n);return r.transform=o,a},queryRenderedFeatures:function(t,n){var o=r.transform;r.transform=e.transform;var a=r.queryRenderedFeatures(t,n);return r.transform=o,a}},o=(0,l.Z)(function(e){var t=new Set,r=e;for(;r;){for(var n,o=(0,l.Z)(Object.getOwnPropertyNames(r));!(n=o()).done;){var a=n.value;"_"!==a[0]&&"function"==typeof e[a]&&"fire"!==a&&"setEventedParent"!==a&&t.add(a)}r=Object.getPrototypeOf(r)}return Array.from(t)}(r));!(t=o()).done;){var a=t.value;a in n||E.includes(a)||(n[a]=r[a].bind(r))}return n}const w="undefined"!=typeof document?n.useLayoutEffect:n.useEffect;var S=["baseApiUrl","maxParallelImageRequests","workerClass","workerCount","workerUrl"];var L=n.createContext(null);function P(e,t,r){var a=(0,n.useContext)(o),i=(0,n.useState)(null),s=i[0],u=i[1],c=(0,n.useRef)(),p=(0,n.useRef)({mapLib:null,map:null}).current;(0,n.useEffect)((function(){var t,n=e.mapLib,o=!0;return Promise.resolve(n||r).then((function(r){if(o){if(!r)throw new Error("Invalid mapLib");var n="Map"in r?r:r.default;if(!n.Map)throw new Error("Invalid mapLib");if(function(e,t){for(var r,n=(0,l.Z)(S);!(r=n()).done;){var o=r.value;o in t&&(e[o]=t[o])}var a=t.RTLTextPlugin,i=void 0===a?"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js":a;i&&e.getRTLTextPluginStatus&&"unavailable"===e.getRTLTextPluginStatus()&&e.setRTLTextPlugin(i,(function(e){e&&console.error(e)}),!0)}(n,e),n.supported&&!n.supported(e))throw new Error("Map is not supported by this browser");e.reuseMaps&&(t=b.reuse(e,c.current)),t||(t=new b(n.Map,e,c.current)),p.map=x(t),p.mapLib=n,u(t),null==a||a.onMapMount(p.map,e.id)}})).catch((function(t){var r=e.onError;r?r({type:"error",target:null,originalEvent:null,error:t}):console.error(t)})),function(){o=!1,t&&(null==a||a.onMapUnmount(e.id),e.reuseMaps?t.recycle():t.destroy())}}),[]),w((function(){s&&s.setProps(e)})),(0,n.useImperativeHandle)(t,(function(){return p.map}),[s]);var f=(0,n.useMemo)((function(){return Object.assign({position:"relative",width:"100%",height:"100%"},e.style)}),[e.style]);return n.createElement("div",{id:e.id,ref:c,style:f},s&&n.createElement(L.Provider,{value:p},n.createElement("div",{"mapboxgl-children":"",style:{height:"100%"}},e.children)))}var C=r(3935),O=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function M(e,t){if(e&&t){var r=e.style;for(var n in t){var o=t[n];Number.isFinite(o)&&!O.test(n)?r[n]=o+"px":r[n]=o}}}function T(e,t){var r=(0,n.useContext)(L),o=r.map,a=r.mapLib,i=(0,n.useRef)({props:e});i.current.props=e;var s=(0,n.useMemo)((function(){var t=!1;n.Children.forEach(e.children,(function(e){e&&(t=!0)}));var r=Object.assign({},e,{element:t?document.createElement("div"):null}),o=new a.Marker(r);return o.setLngLat([e.longitude,e.latitude]),o.getElement().addEventListener("click",(function(e){null==i.current.props.onClick||i.current.props.onClick({type:"click",target:o,originalEvent:e})})),o.on("dragstart",(function(e){var t=e;t.lngLat=s.getLngLat(),null==i.current.props.onDragStart||i.current.props.onDragStart(t)})),o.on("drag",(function(e){var t=e;t.lngLat=s.getLngLat(),null==i.current.props.onDrag||i.current.props.onDrag(t)})),o.on("dragend",(function(e){var t=e;t.lngLat=s.getLngLat(),null==i.current.props.onDragEnd||i.current.props.onDragEnd(t)})),o}),[]);(0,n.useEffect)((function(){return s.addTo(o.getMap()),function(){s.remove()}}),[]);var u,c,l,p,f,d,m=e.longitude,v=e.latitude,g=e.offset,y=e.style,h=e.draggable,b=void 0!==h&&h,_=e.popup,E=void 0===_?null:_,x=e.rotation,w=void 0===x?0:x,S=e.rotationAlignment,P=void 0===S?"auto":S,O=e.pitchAlignment,T=void 0===O?"auto":O;return(0,n.useEffect)((function(){M(s.getElement(),y)}),[y]),(0,n.useImperativeHandle)(t,(function(){return s}),[]),s.getLngLat().lng===m&&s.getLngLat().lat===v||s.setLngLat([m,v]),g&&(u=s.getOffset(),c=g,l=Array.isArray(u)?u[0]:u?u.x:0,p=Array.isArray(u)?u[1]:u?u.y:0,f=Array.isArray(c)?c[0]:c?c.x:0,d=Array.isArray(c)?c[1]:c?c.y:0,l!==f||p!==d)&&s.setOffset(g),s.isDraggable()!==b&&s.setDraggable(b),s.getRotation()!==w&&s.setRotation(w),s.getRotationAlignment()!==P&&s.setRotationAlignment(P),s.getPitchAlignment()!==T&&s.setPitchAlignment(T),s.getPopup()!==E&&s.setPopup(E),(0,C.createPortal)(e.children,s.getElement())}const j=(0,n.memo)((0,n.forwardRef)(T));function k(e){return new Set(e?e.trim().split(/\s+/):[])}function R(e,t){var r=(0,n.useContext)(L),o=r.map,a=r.mapLib,s=(0,n.useMemo)((function(){return document.createElement("div")}),[]),u=(0,n.useRef)({props:e});u.current.props=e;var c=(0,n.useMemo)((function(){var t=Object.assign({},e),r=new a.Popup(t);return r.setLngLat([e.longitude,e.latitude]),r.once("open",(function(e){null==u.current.props.onOpen||u.current.props.onOpen(e)})),r}),[]);if((0,n.useEffect)((function(){var e=function(e){null==u.current.props.onClose||u.current.props.onClose(e)};return c.on("close",e),c.setDOMContent(s).addTo(o.getMap()),function(){c.off("close",e),c.isOpen()&&c.remove()}}),[]),(0,n.useEffect)((function(){M(c.getElement(),e.style)}),[e.style]),(0,n.useImperativeHandle)(t,(function(){return c}),[]),c.isOpen()&&(c.getLngLat().lng===e.longitude&&c.getLngLat().lat===e.latitude||c.setLngLat([e.longitude,e.latitude]),e.offset&&!i(c.options.offset,e.offset)&&c.setOffset(e.offset),c.options.anchor===e.anchor&&c.options.maxWidth===e.maxWidth||(c.options.anchor=e.anchor,c.setMaxWidth(e.maxWidth)),c.options.className!==e.className)){for(var p,f=k(c.options.className),d=k(e.className),m=(0,l.Z)(f);!(p=m()).done;){var v=p.value;d.has(v)||c.removeClassName(v)}for(var g,y=(0,l.Z)(d);!(g=y()).done;){var h=g.value;f.has(h)||c.addClassName(h)}c.options.className=e.className}return(0,C.createPortal)(e.children,s)}const z=(0,n.memo)((0,n.forwardRef)(R));const Z=function(e,t,r,o){var a=(0,n.useContext)(L),i=(0,n.useMemo)((function(){return e(a)}),[]);return(0,n.useEffect)((function(){var e=o||r||t,n="function"==typeof t&&"function"==typeof r?t:null,s="function"==typeof r?r:"function"==typeof t?t:null,u=a.map;return u.hasControl(i)||(u.addControl(i,null==e?void 0:e.position),n&&n(a)),function(){s&&s(a),u.hasControl(i)&&u.removeControl(i)}}),[]),i};function I(e){var t=Z((function(t){return new t.mapLib.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)})}),{position:e.position});return(0,n.useEffect)((function(){M(t._controlContainer,e.style)}),[e.style]),null}const A=(0,n.memo)(I);function D(e,t){var r=(0,n.useRef)({props:e}),o=Z((function(t){var n=new t.mapLib.GeolocateControl(e),o=n._setupUI;return n._setupUI=function(e){n._container.hasChildNodes()||o(e)},n.on("geolocate",(function(e){null==r.current.props.onGeolocate||r.current.props.onGeolocate(e)})),n.on("error",(function(e){null==r.current.props.onError||r.current.props.onError(e)})),n.on("outofmaxbounds",(function(e){null==r.current.props.onOutOfMaxBounds||r.current.props.onOutOfMaxBounds(e)})),n.on("trackuserlocationstart",(function(e){null==r.current.props.onTrackUserLocationStart||r.current.props.onTrackUserLocationStart(e)})),n.on("trackuserlocationend",(function(e){null==r.current.props.onTrackUserLocationEnd||r.current.props.onTrackUserLocationEnd(e)})),n}),{position:e.position});return r.current.props=e,(0,n.useImperativeHandle)(t,(function(){return o}),[]),(0,n.useEffect)((function(){M(o._container,e.style)}),[e.style]),null}const N=(0,n.memo)((0,n.forwardRef)(D));function F(e){var t=Z((function(t){return new t.mapLib.NavigationControl(e)}),{position:e.position});return(0,n.useEffect)((function(){M(t._container,e.style)}),[e.style]),null}const U=(0,n.memo)(F);function B(e){var t=Z((function(t){return new t.mapLib.ScaleControl(e)}),{position:e.position}),r=(0,n.useRef)(e),o=r.current;r.current=e;var a=e.style;return void 0!==e.maxWidth&&e.maxWidth!==o.maxWidth&&(t.options.maxWidth=e.maxWidth),void 0!==e.unit&&e.unit!==o.unit&&t.setUnit(e.unit),(0,n.useEffect)((function(){M(t._container,a)}),[a]),null}const W=(0,n.memo)(B);function H(e,t){if(!e)throw new Error(t)}var q=0;const V=function(e){var t=(0,n.useContext)(L).map.getMap(),r=(0,n.useRef)(e),o=(0,n.useState)(0)[1],a=(0,n.useMemo)((function(){return e.id||"jsx-layer-"+q++}),[]);if((0,n.useEffect)((function(){if(t){var e=function(){return o((function(e){return e+1}))};return t.on("styledata",e),e(),function(){t.off("styledata",e),t.style&&t.style._loaded&&t.getLayer(a)&&t.removeLayer(a)}}}),[t]),t&&t.style&&t.getLayer(a))try{!function(e,t,r,n){if(H(r.id===n.id,"layer id changed"),H(r.type===n.type,"layer type changed"),"custom"!==r.type&&"custom"!==n.type){var o=r.layout,a=void 0===o?{}:o,s=r.paint,u=void 0===s?{}:s,c=r.filter,l=r.minzoom,p=r.maxzoom,f=r.beforeId;if(f!==n.beforeId&&e.moveLayer(t,f),a!==n.layout){var d=n.layout||{};for(var m in a)i(a[m],d[m])||e.setLayoutProperty(t,m,a[m]);for(var v in d)a.hasOwnProperty(v)||e.setLayoutProperty(t,v,void 0)}if(u!==n.paint){var g=n.paint||{};for(var y in u)i(u[y],g[y])||e.setPaintProperty(t,y,u[y]);for(var h in g)u.hasOwnProperty(h)||e.setPaintProperty(t,h,void 0)}i(c,n.filter)||e.setFilter(t,c),l===n.minzoom&&p===n.maxzoom||e.setLayerZoomRange(t,l,p)}}(t,a,e,r.current)}catch(s){console.warn(s)}else!function(e,t,r){if(e.style&&e.style._loaded&&(!("source"in r)||e.getSource(r.source))){var n=Object.assign({},r,{id:t});delete n.beforeId,e.addLayer(n,r.beforeId)}}(t,a,e);return r.current=e,null};var G=0;const J=function(e){var t=(0,n.useContext)(L).map.getMap(),r=(0,n.useRef)(e),o=(0,n.useState)(0)[1],a=(0,n.useMemo)((function(){return e.id||"jsx-source-"+G++}),[]);(0,n.useEffect)((function(){if(t){var e=function(){return setTimeout((function(){return o((function(e){return e+1}))}),0)};return t.on("styledata",e),e(),function(){if(t.off("styledata",e),t.style&&t.style._loaded&&t.getSource(a)){var r,n=null==(r=t.getStyle())?void 0:r.layers;if(n)for(var o,i=(0,l.Z)(n);!(o=i()).done;){var s=o.value;s.source===a&&t.removeLayer(s.id)}t.removeSource(a)}}}}),[t]);var s=t&&t.style&&t.getSource(a);return s?function(e,t,r){H(t.id===r.id,"source id changed"),H(t.type===r.type,"source type changed");var n="",o=0;for(var a in t)"children"===a||"id"===a||i(r[a],t[a])||(n=a,o++);if(o){var s=t.type;if("geojson"===s)e.setData(t.data);else if("image"===s)e.updateImage({url:t.url,coordinates:t.coordinates});else if("setCoordinates"in e&&1===o&&"coordinates"===n)e.setCoordinates(t.coordinates);else if("setUrl"in e)switch(n){case"url":e.setUrl(t.url);break;case"tiles":e.setTiles(t.tiles)}else console.warn("Unable to update prop: "+n)}}(s,e,r.current):s=function(e,t,r){if(e.style&&e.style._loaded){var n=Object.assign({},r);return delete n.id,delete n.children,e.addSource(t,n),e.getSource(t)}return null}(t,a,e),r.current=e,s&&n.Children.map(e.children,(function(e){return e&&(0,n.cloneElement)(e,{source:a})}))||null};var Q=r.e(8539).then(r.t.bind(r,8539,23)),X=n.forwardRef((function(e,t){return P(e,t,Q)})),K=j,Y=z,$=A,ee=U,te=N,re=W,ne=V,oe=J;const ae=X},745:(e,t,r)=>{var n=r(3935);n.createRoot,n.hydrateRoot},1202:(e,t,r)=>{r.d(t,{Z:()=>i});var n=r(1002);function o(e){var t=function(e,t){if("object"!==(0,n.Z)(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!==(0,n.Z)(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===(0,n.Z)(t)?t:String(t)}function a(e,t){for(var r=0;r{"use strict";r.d(e,{Zo:()=>c,kt:()=>l});var n=r(7294);function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function o(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function u(t){for(var e=1;e=0||(i[r]=t[r]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(i[r]=t[r])}return i}var a=n.createContext({}),f=function(t){var e=n.useContext(a),r=e;return t&&(r="function"==typeof t?t(e):u(u({},e),t)),r},c=function(t){var e=f(t.components);return n.createElement(a.Provider,{value:e},t.children)},h="mdxType",p={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},_=n.forwardRef((function(t,e){var r=t.components,i=t.mdxType,o=t.originalType,a=t.parentName,c=s(t,["components","mdxType","originalType","parentName"]),h=f(r),_=i,l=h["".concat(a,".").concat(_)]||h[_]||p[_]||o;return r?n.createElement(l,u(u({ref:e},c),{},{components:r})):n.createElement(l,u({ref:e},c))}));function l(t,e){var r=arguments,i=e&&e.mdxType;if("string"==typeof t||i){var o=r.length,u=new Array(o);u[0]=_;var s={};for(var a in e)hasOwnProperty.call(e,a)&&(s[a]=e[a]);s.originalType=t,s[h]="string"==typeof t?t:i,u[1]=s;for(var f=2;f>>0;if(""+r!==e||4294967295===r)return NaN;e=r}return e<0?E(t)+e:e}function q(){return!0}function M(t,e,r){return(0===t||void 0!==r&&t<=-r)&&(void 0===e||void 0!==r&&e>=r)}function x(t,e){return j(t,e,0)}function k(t,e){return j(t,e,e)}function j(t,e,r){return void 0===t?r:t<0?Math.max(0,e+t):void 0===e?t:Math.min(e,t)}var A=0,R=1,U=2,K="function"==typeof Symbol&&Symbol.iterator,T="@@iterator",P=K||T;function L(t){this.next=t}function B(t,e,r,n){var i=0===t?e:1===t?r:[e,r];return n?n.value=i:n={value:i,done:!1},n}function W(){return{value:void 0,done:!0}}function C(t){return!!H(t)}function N(t){return t&&"function"==typeof t.next}function J(t){var e=H(t);return e&&e.call(t)}function H(t){var e=t&&(K&&t[K]||t[T]);if("function"==typeof e)return e}function V(t){return t&&"number"==typeof t.length}function Z(t){return null==t?ut():u(t)?t.toSeq():ft(t)}function X(t){return null==t?ut().toKeyedSeq():u(t)?s(t)?t.toSeq():t.fromEntrySeq():st(t)}function Y(t){return null==t?ut():u(t)?s(t)?t.entrySeq():t.toIndexedSeq():at(t)}function F(t){return(null==t?ut():u(t)?s(t)?t.entrySeq():t:at(t)).toSetSeq()}L.prototype.toString=function(){return"[Iterator]"},L.KEYS=A,L.VALUES=R,L.ENTRIES=U,L.prototype.inspect=L.prototype.toSource=function(){return this.toString()},L.prototype[P]=function(){return this},e(Z,r),Z.of=function(){return Z(arguments)},Z.prototype.toSeq=function(){return this},Z.prototype.toString=function(){return this.__toString("Seq {","}")},Z.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},Z.prototype.__iterate=function(t,e){return ht(this,t,e,!0)},Z.prototype.__iterator=function(t,e){return pt(this,t,e,!0)},e(X,Z),X.prototype.toKeyedSeq=function(){return this},e(Y,Z),Y.of=function(){return Y(arguments)},Y.prototype.toIndexedSeq=function(){return this},Y.prototype.toString=function(){return this.__toString("Seq [","]")},Y.prototype.__iterate=function(t,e){return ht(this,t,e,!1)},Y.prototype.__iterator=function(t,e){return pt(this,t,e,!1)},e(F,Z),F.of=function(){return F(arguments)},F.prototype.toSetSeq=function(){return this},Z.isSeq=ot,Z.Keyed=X,Z.Set=F,Z.Indexed=Y;var Q,G,$,tt="@@__IMMUTABLE_SEQ__@@";function et(t){this._array=t,this.size=t.length}function rt(t){var e=Object.keys(t);this._object=t,this._keys=e,this.size=e.length}function nt(t){this._iterable=t,this.size=t.length||t.size}function it(t){this._iterator=t,this._iteratorCache=[]}function ot(t){return!(!t||!t[tt])}function ut(){return Q||(Q=new et([]))}function st(t){var e=Array.isArray(t)?new et(t).fromEntrySeq():N(t)?new it(t).fromEntrySeq():C(t)?new nt(t).fromEntrySeq():"object"==typeof t?new rt(t):void 0;if(!e)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+t);return e}function at(t){var e=ct(t);if(!e)throw new TypeError("Expected Array or iterable object of values: "+t);return e}function ft(t){var e=ct(t)||"object"==typeof t&&new rt(t);if(!e)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+t);return e}function ct(t){return V(t)?new et(t):N(t)?new it(t):C(t)?new nt(t):void 0}function ht(t,e,r,n){var i=t._cache;if(i){for(var o=i.length-1,u=0;u<=o;u++){var s=i[r?o-u:u];if(!1===e(s[1],n?s[0]:u,t))return u+1}return u}return t.__iterateUncached(e,r)}function pt(t,e,r,n){var i=t._cache;if(i){var o=i.length-1,u=0;return new L((function(){var t=i[r?o-u:u];return u++>o?W():B(e,n?t[0]:u-1,t[1])}))}return t.__iteratorUncached(e,r)}function _t(t,e){return e?lt(e,t,"",{"":t}):vt(t)}function lt(t,e,r,n){return Array.isArray(e)?t.call(n,r,Y(e).map((function(r,n){return lt(t,r,n,e)}))):yt(e)?t.call(n,r,X(e).map((function(r,n){return lt(t,r,n,e)}))):e}function vt(t){return Array.isArray(t)?Y(t).map(vt).toList():yt(t)?X(t).map(vt).toMap():t}function yt(t){return t&&(t.constructor===Object||void 0===t.constructor)}function dt(t,e){if(t===e||t!=t&&e!=e)return!0;if(!t||!e)return!1;if("function"==typeof t.valueOf&&"function"==typeof e.valueOf){if((t=t.valueOf())===(e=e.valueOf())||t!=t&&e!=e)return!0;if(!t||!e)return!1}return!("function"!=typeof t.equals||"function"!=typeof e.equals||!t.equals(e))}function mt(t,e){if(t===e)return!0;if(!u(e)||void 0!==t.size&&void 0!==e.size&&t.size!==e.size||void 0!==t.__hash&&void 0!==e.__hash&&t.__hash!==e.__hash||s(t)!==s(e)||a(t)!==a(e)||c(t)!==c(e))return!1;if(0===t.size&&0===e.size)return!0;var r=!f(t);if(c(t)){var n=t.entries();return e.every((function(t,e){var i=n.next().value;return i&&dt(i[1],t)&&(r||dt(i[0],e))}))&&n.next().done}var i=!1;if(void 0===t.size)if(void 0===e.size)"function"==typeof t.cacheResult&&t.cacheResult();else{i=!0;var o=t;t=e,e=o}var h=!0,p=e.__iterate((function(e,n){if(r?!t.has(e):i?!dt(e,t.get(n,g)):!dt(t.get(n,g),e))return h=!1,!1}));return h&&t.size===p}function gt(t,e){if(!(this instanceof gt))return new gt(t,e);if(this._value=t,this.size=void 0===e?1/0:Math.max(0,e),0===this.size){if(G)return G;G=this}}function wt(t,e){if(!t)throw new Error(e)}function St(t,e,r){if(!(this instanceof St))return new St(t,e,r);if(wt(0!==r,"Cannot step a Range by 0"),t=t||0,void 0===e&&(e=1/0),r=void 0===r?1:Math.abs(r),en?W():B(t,i,r[e?n-i++:i++])}))},e(rt,X),rt.prototype.get=function(t,e){return void 0===e||this.has(t)?this._object[t]:e},rt.prototype.has=function(t){return this._object.hasOwnProperty(t)},rt.prototype.__iterate=function(t,e){for(var r=this._object,n=this._keys,i=n.length-1,o=0;o<=i;o++){var u=n[e?i-o:o];if(!1===t(r[u],u,this))return o+1}return o},rt.prototype.__iterator=function(t,e){var r=this._object,n=this._keys,i=n.length-1,o=0;return new L((function(){var u=n[e?i-o:o];return o++>i?W():B(t,u,r[u])}))},rt.prototype[l]=!0,e(nt,Y),nt.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);var r=J(this._iterable),n=0;if(N(r))for(var i;!(i=r.next()).done&&!1!==t(i.value,n++,this););return n},nt.prototype.__iteratorUncached=function(t,e){if(e)return this.cacheResult().__iterator(t,e);var r=J(this._iterable);if(!N(r))return new L(W);var n=0;return new L((function(){var e=r.next();return e.done?e:B(t,n++,e.value)}))},e(it,Y),it.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);for(var r,n=this._iterator,i=this._iteratorCache,o=0;o=n.length){var e=r.next();if(e.done)return e;n[i]=e.value}return B(t,i,n[i++])}))},e(gt,Y),gt.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},gt.prototype.get=function(t,e){return this.has(t)?this._value:e},gt.prototype.includes=function(t){return dt(this._value,t)},gt.prototype.slice=function(t,e){var r=this.size;return M(t,e,r)?this:new gt(this._value,k(e,r)-x(t,r))},gt.prototype.reverse=function(){return this},gt.prototype.indexOf=function(t){return dt(this._value,t)?0:-1},gt.prototype.lastIndexOf=function(t){return dt(this._value,t)?this.size:-1},gt.prototype.__iterate=function(t,e){for(var r=0;r=0&&e=0&&rr?W():B(t,o++,u)}))},St.prototype.equals=function(t){return t instanceof St?this._start===t._start&&this._end===t._end&&this._step===t._step:mt(this,t)},e(bt,r),e(zt,bt),e(It,bt),e(Ot,bt),bt.Keyed=zt,bt.Indexed=It,bt.Set=Ot;var Et="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(t,e){var r=65535&(t|=0),n=65535&(e|=0);return r*n+((t>>>16)*n+r*(e>>>16)<<16>>>0)|0};function Dt(t){return t>>>1&1073741824|3221225471&t}function qt(t){if(!1===t||null==t)return 0;if("function"==typeof t.valueOf&&(!1===(t=t.valueOf())||null==t))return 0;if(!0===t)return 1;var e=typeof t;if("number"===e){if(t!=t||t===1/0)return 0;var r=0|t;for(r!==t&&(r^=4294967295*t);t>4294967295;)r^=t/=4294967295;return Dt(r)}if("string"===e)return t.length>Lt?Mt(t):xt(t);if("function"==typeof t.hashCode)return t.hashCode();if("object"===e)return kt(t);if("function"==typeof t.toString)return xt(t.toString());throw new Error("Value type "+e+" cannot be hashed.")}function Mt(t){var e=Ct[t];return void 0===e&&(e=xt(t),Wt===Bt&&(Wt=0,Ct={}),Wt++,Ct[t]=e),e}function xt(t){for(var e=0,r=0;r0)switch(t.nodeType){case 1:return t.uniqueID;case 9:return t.documentElement&&t.documentElement.uniqueID}}var Ut,Kt="function"==typeof WeakMap;Kt&&(Ut=new WeakMap);var Tt=0,Pt="__immutablehash__";"function"==typeof Symbol&&(Pt=Symbol(Pt));var Lt=16,Bt=255,Wt=0,Ct={};function Nt(t){wt(t!==1/0,"Cannot perform this action with an infinite size.")}function Jt(t){return null==t?ie():Ht(t)&&!c(t)?t:ie().withMutations((function(e){var r=n(t);Nt(r.size),r.forEach((function(t,r){return e.set(r,t)}))}))}function Ht(t){return!(!t||!t[Zt])}e(Jt,zt),Jt.of=function(){var e=t.call(arguments,0);return ie().withMutations((function(t){for(var r=0;r=e.length)throw new Error("Missing value for key: "+e[r]);t.set(e[r],e[r+1])}}))},Jt.prototype.toString=function(){return this.__toString("Map {","}")},Jt.prototype.get=function(t,e){return this._root?this._root.get(0,void 0,t,e):e},Jt.prototype.set=function(t,e){return oe(this,t,e)},Jt.prototype.setIn=function(t,e){return this.updateIn(t,g,(function(){return e}))},Jt.prototype.remove=function(t){return oe(this,t,g)},Jt.prototype.deleteIn=function(t){return this.updateIn(t,(function(){return g}))},Jt.prototype.update=function(t,e,r){return 1===arguments.length?t(this):this.updateIn([t],e,r)},Jt.prototype.updateIn=function(t,e,r){r||(r=e,e=void 0);var n=ye(this,Sr(t),e,r);return n===g?void 0:n},Jt.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):ie()},Jt.prototype.merge=function(){return pe(this,void 0,arguments)},Jt.prototype.mergeWith=function(e){return pe(this,e,t.call(arguments,1))},Jt.prototype.mergeIn=function(e){var r=t.call(arguments,1);return this.updateIn(e,ie(),(function(t){return"function"==typeof t.merge?t.merge.apply(t,r):r[r.length-1]}))},Jt.prototype.mergeDeep=function(){return pe(this,_e,arguments)},Jt.prototype.mergeDeepWith=function(e){var r=t.call(arguments,1);return pe(this,le(e),r)},Jt.prototype.mergeDeepIn=function(e){var r=t.call(arguments,1);return this.updateIn(e,ie(),(function(t){return"function"==typeof t.mergeDeep?t.mergeDeep.apply(t,r):r[r.length-1]}))},Jt.prototype.sort=function(t){return Ce(cr(this,t))},Jt.prototype.sortBy=function(t,e){return Ce(cr(this,e,t))},Jt.prototype.withMutations=function(t){var e=this.asMutable();return t(e),e.wasAltered()?e.__ensureOwner(this.__ownerID):this},Jt.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new I)},Jt.prototype.asImmutable=function(){return this.__ensureOwner()},Jt.prototype.wasAltered=function(){return this.__altered},Jt.prototype.__iterator=function(t,e){return new te(this,t,e)},Jt.prototype.__iterate=function(t,e){var r=this,n=0;return this._root&&this._root.iterate((function(e){return n++,t(e[1],e[0],r)}),e),n},Jt.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?ne(this.size,this._root,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},Jt.isMap=Ht;var Vt,Zt="@@__IMMUTABLE_MAP__@@",Xt=Jt.prototype;function Yt(t,e){this.ownerID=t,this.entries=e}function Ft(t,e,r){this.ownerID=t,this.bitmap=e,this.nodes=r}function Qt(t,e,r){this.ownerID=t,this.count=e,this.nodes=r}function Gt(t,e,r){this.ownerID=t,this.keyHash=e,this.entries=r}function $t(t,e,r){this.ownerID=t,this.keyHash=e,this.entry=r}function te(t,e,r){this._type=e,this._reverse=r,this._stack=t._root&&re(t._root)}function ee(t,e){return B(t,e[0],e[1])}function re(t,e){return{node:t,index:0,__prev:e}}function ne(t,e,r,n){var i=Object.create(Xt);return i.size=t,i._root=e,i.__ownerID=r,i.__hash=n,i.__altered=!1,i}function ie(){return Vt||(Vt=ne(0))}function oe(t,e,r){var n,i;if(t._root){var o=b(w),u=b(S);if(n=ue(t._root,t.__ownerID,0,void 0,e,r,o,u),!u.value)return t;i=t.size+(o.value?r===g?-1:1:0)}else{if(r===g)return t;i=1,n=new Yt(t.__ownerID,[[e,r]])}return t.__ownerID?(t.size=i,t._root=n,t.__hash=void 0,t.__altered=!0,t):n?ne(i,n):ie()}function ue(t,e,r,n,i,o,u,s){return t?t.update(e,r,n,i,o,u,s):o===g?t:(z(s),z(u),new $t(e,n,[i,o]))}function se(t){return t.constructor===$t||t.constructor===Gt}function ae(t,e,r,n,i){if(t.keyHash===n)return new Gt(e,n,[t.entry,i]);var o,u=(0===r?t.keyHash:t.keyHash>>>r)&m,s=(0===r?n:n>>>r)&m;return new Ft(e,1<>>=1)u[s]=1&r?e[o++]:void 0;return u[n]=i,new Qt(t,o+1,u)}function pe(t,e,r){for(var i=[],o=0;o>1&1431655765))+(t>>2&858993459))+(t>>4)&252645135,t+=t>>8,127&(t+=t>>16)}function me(t,e,r,n){var i=n?t:O(t);return i[e]=r,i}function ge(t,e,r,n){var i=t.length+1;if(n&&e+1===i)return t[e]=r,t;for(var o=new Array(i),u=0,s=0;s=Se)return fe(t,a,n,i);var p=t&&t===this.ownerID,_=p?a:O(a);return h?s?f===c-1?_.pop():_[f]=_.pop():_[f]=[n,i]:_.push([n,i]),p?(this.entries=_,this):new Yt(t,_)}},Ft.prototype.get=function(t,e,r,n){void 0===e&&(e=qt(r));var i=1<<((0===t?e:e>>>t)&m),o=this.bitmap;return 0==(o&i)?n:this.nodes[de(o&i-1)].get(t+y,e,r,n)},Ft.prototype.update=function(t,e,r,n,i,o,u){void 0===r&&(r=qt(n));var s=(0===e?r:r>>>e)&m,a=1<=be)return he(t,p,f,s,l);if(c&&!l&&2===p.length&&se(p[1^h]))return p[1^h];if(c&&l&&1===p.length&&se(l))return l;var v=t&&t===this.ownerID,d=c?l?f:f^a:f|a,w=c?l?me(p,h,l,v):we(p,h,v):ge(p,h,l,v);return v?(this.bitmap=d,this.nodes=w,this):new Ft(t,d,w)},Qt.prototype.get=function(t,e,r,n){void 0===e&&(e=qt(r));var i=(0===t?e:e>>>t)&m,o=this.nodes[i];return o?o.get(t+y,e,r,n):n},Qt.prototype.update=function(t,e,r,n,i,o,u){void 0===r&&(r=qt(n));var s=(0===e?r:r>>>e)&m,a=i===g,f=this.nodes,c=f[s];if(a&&!c)return this;var h=ue(c,t,e+y,r,n,i,o,u);if(h===c)return this;var p=this.count;if(c){if(!h&&--p0&&n=0&&t>>e&m;if(n>=this.array.length)return new qe([],t);var i,o=0===n;if(e>0){var u=this.array[n];if((i=u&&u.removeBefore(t,e-y,r))===u&&o)return this}if(o&&!i)return this;var s=Te(this,t);if(!o)for(var a=0;a>>e&m;if(i>=this.array.length)return this;if(e>0){var o=this.array[i];if((n=o&&o.removeAfter(t,e-y,r))===o&&i===this.array.length-1)return this}var u=Te(this,t);return u.array.splice(i+1),n&&(u.array[i]=n),u};var Me,xe,ke={};function je(t,e){var r=t._origin,n=t._capacity,i=We(n),o=t._tail;return u(t._root,t._level,0);function u(t,e,r){return 0===e?s(t,r):a(t,e,r)}function s(t,u){var s=u===i?o&&o.array:t&&t.array,a=u>r?0:r-u,f=n-u;return f>d&&(f=d),function(){if(a===f)return ke;var t=e?--f:a++;return s&&s[t]}}function a(t,i,o){var s,a=t&&t.array,f=o>r?0:r-o>>i,c=1+(n-o>>i);return c>d&&(c=d),function(){for(;;){if(s){var t=s();if(t!==ke)return t;s=null}if(f===c)return ke;var r=e?--c:f++;s=u(a&&a[r],i-y,o+(r<=t.size||e<0)return t.withMutations((function(t){e<0?Le(t,e).set(0,r):Le(t,0,e+1).set(e,r)}));e+=t._origin;var n=t._tail,i=t._root,o=b(S);return e>=We(t._capacity)?n=Ke(n,t.__ownerID,0,e,r,o):i=Ke(i,t.__ownerID,t._level,e,r,o),o.value?t.__ownerID?(t._root=i,t._tail=n,t.__hash=void 0,t.__altered=!0,t):Ae(t._origin,t._capacity,t._level,i,n):t}function Ke(t,e,r,n,i,o){var u,s=n>>>r&m,a=t&&s0){var f=t&&t.array[s],c=Ke(f,e,r-y,n,i,o);return c===f?t:((u=Te(t,e)).array[s]=c,u)}return a&&t.array[s]===i?t:(z(o),u=Te(t,e),void 0===i&&s===u.array.length-1?u.array.pop():u.array[s]=i,u)}function Te(t,e){return e&&t&&e===t.ownerID?t:new qe(t?t.array.slice():[],e)}function Pe(t,e){if(e>=We(t._capacity))return t._tail;if(e<1<0;)r=r.array[e>>>n&m],n-=y;return r}}function Le(t,e,r){void 0!==e&&(e|=0),void 0!==r&&(r|=0);var n=t.__ownerID||new I,i=t._origin,o=t._capacity,u=i+e,s=void 0===r?o:r<0?o+r:i+r;if(u===i&&s===o)return t;if(u>=s)return t.clear();for(var a=t._level,f=t._root,c=0;u+c<0;)f=new qe(f&&f.array.length?[void 0,f]:[],n),c+=1<<(a+=y);c&&(u+=c,i+=c,s+=c,o+=c);for(var h=We(o),p=We(s);p>=1<h?new qe([],n):_;if(_&&p>h&&uy;d-=y){var g=h>>>d&m;v=v.array[g]=Te(v.array[g],n)}v.array[h>>>y&m]=_}if(s=p)u-=p,s-=p,a=y,f=null,l=l&&l.removeBefore(n,0,u);else if(u>i||p>>a&m;if(w!==p>>>a&m)break;w&&(c+=(1<i&&(f=f.removeBefore(n,a,u-c)),f&&po&&(o=f.size),u(a)||(f=f.map((function(t){return _t(t)}))),n.push(f)}return o>t.size&&(t=t.setSize(o)),ve(t,e,n)}function We(t){return t>>y<=d&&u.size>=2*o.size?(n=(i=u.filter((function(t,e){return void 0!==t&&s!==e}))).toKeyedSeq().map((function(t){return t[0]})).flip().toMap(),t.__ownerID&&(n.__ownerID=i.__ownerID=t.__ownerID)):(n=o.remove(e),i=s===u.size-1?u.pop():u.set(s,void 0))}else if(a){if(r===u.get(s)[1])return t;n=o,i=u.set(s,[e,r])}else n=o.set(e,u.size),i=u.set(u.size,[e,r]);return t.__ownerID?(t.size=n.size,t._map=n,t._list=i,t.__hash=void 0,t):Je(n,i)}function Ze(t,e){this._iter=t,this._useKeys=e,this.size=t.size}function Xe(t){this._iter=t,this.size=t.size}function Ye(t){this._iter=t,this.size=t.size}function Fe(t){this._iter=t,this.size=t.size}function Qe(t){var e=mr(t);return e._iter=t,e.size=t.size,e.flip=function(){return t},e.reverse=function(){var e=t.reverse.apply(this);return e.flip=function(){return t.reverse()},e},e.has=function(e){return t.includes(e)},e.includes=function(e){return t.has(e)},e.cacheResult=gr,e.__iterateUncached=function(e,r){var n=this;return t.__iterate((function(t,r){return!1!==e(r,t,n)}),r)},e.__iteratorUncached=function(e,r){if(e===U){var n=t.__iterator(e,r);return new L((function(){var t=n.next();if(!t.done){var e=t.value[0];t.value[0]=t.value[1],t.value[1]=e}return t}))}return t.__iterator(e===R?A:R,r)},e}function Ge(t,e,r){var n=mr(t);return n.size=t.size,n.has=function(e){return t.has(e)},n.get=function(n,i){var o=t.get(n,g);return o===g?i:e.call(r,o,n,t)},n.__iterateUncached=function(n,i){var o=this;return t.__iterate((function(t,i,u){return!1!==n(e.call(r,t,i,u),i,o)}),i)},n.__iteratorUncached=function(n,i){var o=t.__iterator(U,i);return new L((function(){var i=o.next();if(i.done)return i;var u=i.value,s=u[0];return B(n,s,e.call(r,u[1],s,t),i)}))},n}function $e(t,e){var r=mr(t);return r._iter=t,r.size=t.size,r.reverse=function(){return t},t.flip&&(r.flip=function(){var e=Qe(t);return e.reverse=function(){return t.flip()},e}),r.get=function(r,n){return t.get(e?r:-1-r,n)},r.has=function(r){return t.has(e?r:-1-r)},r.includes=function(e){return t.includes(e)},r.cacheResult=gr,r.__iterate=function(e,r){var n=this;return t.__iterate((function(t,r){return e(t,r,n)}),!r)},r.__iterator=function(e,r){return t.__iterator(e,!r)},r}function tr(t,e,r,n){var i=mr(t);return n&&(i.has=function(n){var i=t.get(n,g);return i!==g&&!!e.call(r,i,n,t)},i.get=function(n,i){var o=t.get(n,g);return o!==g&&e.call(r,o,n,t)?o:i}),i.__iterateUncached=function(i,o){var u=this,s=0;return t.__iterate((function(t,o,a){if(e.call(r,t,o,a))return s++,i(t,n?o:s-1,u)}),o),s},i.__iteratorUncached=function(i,o){var u=t.__iterator(U,o),s=0;return new L((function(){for(;;){var o=u.next();if(o.done)return o;var a=o.value,f=a[0],c=a[1];if(e.call(r,c,f,t))return B(i,n?f:s++,c,o)}}))},i}function er(t,e,r){var n=Jt().asMutable();return t.__iterate((function(i,o){n.update(e.call(r,i,o,t),0,(function(t){return t+1}))})),n.asImmutable()}function rr(t,e,r){var n=s(t),i=(c(t)?Ce():Jt()).asMutable();t.__iterate((function(o,u){i.update(e.call(r,o,u,t),(function(t){return(t=t||[]).push(n?[u,o]:o),t}))}));var o=dr(t);return i.map((function(e){return lr(t,o(e))}))}function nr(t,e,r,n){var i=t.size;if(void 0!==e&&(e|=0),void 0!==r&&(r===1/0?r=i:r|=0),M(e,r,i))return t;var o=x(e,i),u=k(r,i);if(o!=o||u!=u)return nr(t.toSeq().cacheResult(),e,r,n);var s,a=u-o;a==a&&(s=a<0?0:a);var f=mr(t);return f.size=0===s?s:t.size&&s||void 0,!n&&ot(t)&&s>=0&&(f.get=function(e,r){return(e=D(this,e))>=0&&es)return W();var t=i.next();return n||e===R?t:B(e,a-1,e===A?void 0:t.value[1],t)}))},f}function ir(t,e,r){var n=mr(t);return n.__iterateUncached=function(n,i){var o=this;if(i)return this.cacheResult().__iterate(n,i);var u=0;return t.__iterate((function(t,i,s){return e.call(r,t,i,s)&&++u&&n(t,i,o)})),u},n.__iteratorUncached=function(n,i){var o=this;if(i)return this.cacheResult().__iterator(n,i);var u=t.__iterator(U,i),s=!0;return new L((function(){if(!s)return W();var t=u.next();if(t.done)return t;var i=t.value,a=i[0],f=i[1];return e.call(r,f,a,o)?n===U?t:B(n,a,f,t):(s=!1,W())}))},n}function or(t,e,r,n){var i=mr(t);return i.__iterateUncached=function(i,o){var u=this;if(o)return this.cacheResult().__iterate(i,o);var s=!0,a=0;return t.__iterate((function(t,o,f){if(!s||!(s=e.call(r,t,o,f)))return a++,i(t,n?o:a-1,u)})),a},i.__iteratorUncached=function(i,o){var u=this;if(o)return this.cacheResult().__iterator(i,o);var s=t.__iterator(U,o),a=!0,f=0;return new L((function(){var t,o,c;do{if((t=s.next()).done)return n||i===R?t:B(i,f++,i===A?void 0:t.value[1],t);var h=t.value;o=h[0],c=h[1],a&&(a=e.call(r,c,o,u))}while(a);return i===U?t:B(i,o,c,t)}))},i}function ur(t,e){var r=s(t),i=[t].concat(e).map((function(t){return u(t)?r&&(t=n(t)):t=r?st(t):at(Array.isArray(t)?t:[t]),t})).filter((function(t){return 0!==t.size}));if(0===i.length)return t;if(1===i.length){var o=i[0];if(o===t||r&&s(o)||a(t)&&a(o))return o}var f=new et(i);return r?f=f.toKeyedSeq():a(t)||(f=f.toSetSeq()),(f=f.flatten(!0)).size=i.reduce((function(t,e){if(void 0!==t){var r=e.size;if(void 0!==r)return t+r}}),0),f}function sr(t,e,r){var n=mr(t);return n.__iterateUncached=function(n,i){var o=0,s=!1;function a(t,f){var c=this;t.__iterate((function(t,i){return(!e||f0}function _r(t,e,n){var i=mr(t);return i.size=new et(n).map((function(t){return t.size})).min(),i.__iterate=function(t,e){for(var r,n=this.__iterator(R,e),i=0;!(r=n.next()).done&&!1!==t(r.value,i++,this););return i},i.__iteratorUncached=function(t,i){var o=n.map((function(t){return t=r(t),J(i?t.reverse():t)})),u=0,s=!1;return new L((function(){var r;return s||(r=o.map((function(t){return t.next()})),s=r.some((function(t){return t.done}))),s?W():B(t,u++,e.apply(null,r.map((function(t){return t.value}))))}))},i}function lr(t,e){return ot(t)?e:t.constructor(e)}function vr(t){if(t!==Object(t))throw new TypeError("Expected [K, V] tuple: "+t)}function yr(t){return Nt(t.size),E(t)}function dr(t){return s(t)?n:a(t)?i:o}function mr(t){return Object.create((s(t)?X:a(t)?Y:F).prototype)}function gr(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):Z.prototype.cacheResult.call(this)}function wr(t,e){return t>e?1:t=0;r--)e={value:arguments[r],next:e};return this.__ownerID?(this.size=t,this._head=e,this.__hash=void 0,this.__altered=!0,this):Zr(t,e)},Cr.prototype.pushAll=function(t){if(0===(t=i(t)).size)return this;Nt(t.size);var e=this.size,r=this._head;return t.reverse().forEach((function(t){e++,r={value:t,next:r}})),this.__ownerID?(this.size=e,this._head=r,this.__hash=void 0,this.__altered=!0,this):Zr(e,r)},Cr.prototype.pop=function(){return this.slice(1)},Cr.prototype.unshift=function(){return this.push.apply(this,arguments)},Cr.prototype.unshiftAll=function(t){return this.pushAll(t)},Cr.prototype.shift=function(){return this.pop.apply(this,arguments)},Cr.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):Xr()},Cr.prototype.slice=function(t,e){if(M(t,e,this.size))return this;var r=x(t,this.size);if(k(e,this.size)!==this.size)return It.prototype.slice.call(this,t,e);for(var n=this.size-r,i=this._head;r--;)i=i.next;return this.__ownerID?(this.size=n,this._head=i,this.__hash=void 0,this.__altered=!0,this):Zr(n,i)},Cr.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?Zr(this.size,this._head,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},Cr.prototype.__iterate=function(t,e){if(e)return this.reverse().__iterate(t);for(var r=0,n=this._head;n&&!1!==t(n.value,r++,this);)n=n.next;return r},Cr.prototype.__iterator=function(t,e){if(e)return this.reverse().__iterator(t);var r=0,n=this._head;return new L((function(){if(n){var e=n.value;return n=n.next,B(t,r++,e)}return W()}))},Cr.isStack=Nr;var Jr,Hr="@@__IMMUTABLE_STACK__@@",Vr=Cr.prototype;function Zr(t,e,r,n){var i=Object.create(Vr);return i.size=t,i._head=e,i.__ownerID=r,i.__hash=n,i.__altered=!1,i}function Xr(){return Jr||(Jr=Zr(0))}function Yr(t,e){var r=function(r){t.prototype[r]=e[r]};return Object.keys(e).forEach(r),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(e).forEach(r),t}Vr[Hr]=!0,Vr.withMutations=Xt.withMutations,Vr.asMutable=Xt.asMutable,Vr.asImmutable=Xt.asImmutable,Vr.wasAltered=Xt.wasAltered,r.Iterator=L,Yr(r,{toArray:function(){Nt(this.size);var t=new Array(this.size||0);return this.valueSeq().__iterate((function(e,r){t[r]=e})),t},toIndexedSeq:function(){return new Xe(this)},toJS:function(){return this.toSeq().map((function(t){return t&&"function"==typeof t.toJS?t.toJS():t})).__toJS()},toJSON:function(){return this.toSeq().map((function(t){return t&&"function"==typeof t.toJSON?t.toJSON():t})).__toJS()},toKeyedSeq:function(){return new Ze(this,!0)},toMap:function(){return Jt(this.toKeyedSeq())},toObject:function(){Nt(this.size);var t={};return this.__iterate((function(e,r){t[r]=e})),t},toOrderedMap:function(){return Ce(this.toKeyedSeq())},toOrderedSet:function(){return Kr(s(this)?this.valueSeq():this)},toSet:function(){return qr(s(this)?this.valueSeq():this)},toSetSeq:function(){return new Ye(this)},toSeq:function(){return a(this)?this.toIndexedSeq():s(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return Cr(s(this)?this.valueSeq():this)},toList:function(){return Ie(s(this)?this.valueSeq():this)},toString:function(){return"[Iterable]"},__toString:function(t,e){return 0===this.size?t+e:t+" "+this.toSeq().map(this.__toStringMapper).join(", ")+" "+e},concat:function(){return lr(this,ur(this,t.call(arguments,0)))},includes:function(t){return this.some((function(e){return dt(e,t)}))},entries:function(){return this.__iterator(U)},every:function(t,e){Nt(this.size);var r=!0;return this.__iterate((function(n,i,o){if(!t.call(e,n,i,o))return r=!1,!1})),r},filter:function(t,e){return lr(this,tr(this,t,e,!0))},find:function(t,e,r){var n=this.findEntry(t,e);return n?n[1]:r},forEach:function(t,e){return Nt(this.size),this.__iterate(e?t.bind(e):t)},join:function(t){Nt(this.size),t=void 0!==t?""+t:",";var e="",r=!0;return this.__iterate((function(n){r?r=!1:e+=t,e+=null!=n?n.toString():""})),e},keys:function(){return this.__iterator(A)},map:function(t,e){return lr(this,Ge(this,t,e))},reduce:function(t,e,r){var n,i;return Nt(this.size),arguments.length<2?i=!0:n=e,this.__iterate((function(e,o,u){i?(i=!1,n=e):n=t.call(r,n,e,o,u)})),n},reduceRight:function(t,e,r){var n=this.toKeyedSeq().reverse();return n.reduce.apply(n,arguments)},reverse:function(){return lr(this,$e(this,!0))},slice:function(t,e){return lr(this,nr(this,t,e,!0))},some:function(t,e){return!this.every(tn(t),e)},sort:function(t){return lr(this,cr(this,t))},values:function(){return this.__iterator(R)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return void 0!==this.size?0===this.size:!this.some((function(){return!0}))},count:function(t,e){return E(t?this.toSeq().filter(t,e):this)},countBy:function(t,e){return er(this,t,e)},equals:function(t){return mt(this,t)},entrySeq:function(){var t=this;if(t._cache)return new et(t._cache);var e=t.toSeq().map($r).toIndexedSeq();return e.fromEntrySeq=function(){return t.toSeq()},e},filterNot:function(t,e){return this.filter(tn(t),e)},findEntry:function(t,e,r){var n=r;return this.__iterate((function(r,i,o){if(t.call(e,r,i,o))return n=[i,r],!1})),n},findKey:function(t,e){var r=this.findEntry(t,e);return r&&r[0]},findLast:function(t,e,r){return this.toKeyedSeq().reverse().find(t,e,r)},findLastEntry:function(t,e,r){return this.toKeyedSeq().reverse().findEntry(t,e,r)},findLastKey:function(t,e){return this.toKeyedSeq().reverse().findKey(t,e)},first:function(){return this.find(q)},flatMap:function(t,e){return lr(this,ar(this,t,e))},flatten:function(t){return lr(this,sr(this,t,!0))},fromEntrySeq:function(){return new Fe(this)},get:function(t,e){return this.find((function(e,r){return dt(r,t)}),void 0,e)},getIn:function(t,e){for(var r,n=this,i=Sr(t);!(r=i.next()).done;){var o=r.value;if((n=n&&n.get?n.get(o,g):g)===g)return e}return n},groupBy:function(t,e){return rr(this,t,e)},has:function(t){return this.get(t,g)!==g},hasIn:function(t){return this.getIn(t,g)!==g},isSubset:function(t){return t="function"==typeof t.includes?t:r(t),this.every((function(e){return t.includes(e)}))},isSuperset:function(t){return(t="function"==typeof t.isSubset?t:r(t)).isSubset(this)},keyOf:function(t){return this.findKey((function(e){return dt(e,t)}))},keySeq:function(){return this.toSeq().map(Gr).toIndexedSeq()},last:function(){return this.toSeq().reverse().first()},lastKeyOf:function(t){return this.toKeyedSeq().reverse().keyOf(t)},max:function(t){return hr(this,t)},maxBy:function(t,e){return hr(this,e,t)},min:function(t){return hr(this,t?en(t):on)},minBy:function(t,e){return hr(this,e?en(e):on,t)},rest:function(){return this.slice(1)},skip:function(t){return this.slice(Math.max(0,t))},skipLast:function(t){return lr(this,this.toSeq().reverse().skip(t).reverse())},skipWhile:function(t,e){return lr(this,or(this,t,e,!0))},skipUntil:function(t,e){return this.skipWhile(tn(t),e)},sortBy:function(t,e){return lr(this,cr(this,e,t))},take:function(t){return this.slice(0,Math.max(0,t))},takeLast:function(t){return lr(this,this.toSeq().reverse().take(t).reverse())},takeWhile:function(t,e){return lr(this,ir(this,t,e))},takeUntil:function(t,e){return this.takeWhile(tn(t),e)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=un(this))}});var Fr=r.prototype;Fr[h]=!0,Fr[P]=Fr.values,Fr.__toJS=Fr.toArray,Fr.__toStringMapper=rn,Fr.inspect=Fr.toSource=function(){return this.toString()},Fr.chain=Fr.flatMap,Fr.contains=Fr.includes,Yr(n,{flip:function(){return lr(this,Qe(this))},mapEntries:function(t,e){var r=this,n=0;return lr(this,this.toSeq().map((function(i,o){return t.call(e,[o,i],n++,r)})).fromEntrySeq())},mapKeys:function(t,e){var r=this;return lr(this,this.toSeq().flip().map((function(n,i){return t.call(e,n,i,r)})).flip())}});var Qr=n.prototype;function Gr(t,e){return e}function $r(t,e){return[e,t]}function tn(t){return function(){return!t.apply(this,arguments)}}function en(t){return function(){return-t.apply(this,arguments)}}function rn(t){return"string"==typeof t?JSON.stringify(t):String(t)}function nn(){return O(arguments)}function on(t,e){return te?-1:0}function un(t){if(t.size===1/0)return 0;var e=c(t),r=s(t),n=e?1:0;return sn(t.__iterate(r?e?function(t,e){n=31*n+an(qt(t),qt(e))|0}:function(t,e){n=n+an(qt(t),qt(e))|0}:e?function(t){n=31*n+qt(t)|0}:function(t){n=n+qt(t)|0}),n)}function sn(t,e){return e=Et(e,3432918353),e=Et(e<<15|e>>>-15,461845907),e=Et(e<<13|e>>>-13,5),e=Et((e=(e+3864292196|0)^t)^e>>>16,2246822507),e=Dt((e=Et(e^e>>>13,3266489909))^e>>>16)}function an(t,e){return t^e+2654435769+(t<<6)+(t>>2)|0}return Qr[p]=!0,Qr[P]=Fr.entries,Qr.__toJS=Fr.toObject,Qr.__toStringMapper=function(t,e){return JSON.stringify(e)+": "+rn(t)},Yr(i,{toKeyedSeq:function(){return new Ze(this,!1)},filter:function(t,e){return lr(this,tr(this,t,e,!1))},findIndex:function(t,e){var r=this.findEntry(t,e);return r?r[0]:-1},indexOf:function(t){var e=this.keyOf(t);return void 0===e?-1:e},lastIndexOf:function(t){var e=this.lastKeyOf(t);return void 0===e?-1:e},reverse:function(){return lr(this,$e(this,!1))},slice:function(t,e){return lr(this,nr(this,t,e,!1))},splice:function(t,e){var r=arguments.length;if(e=Math.max(0|e,0),0===r||2===r&&!e)return this;t=x(t,t<0?this.count():this.size);var n=this.slice(0,t);return lr(this,1===r?n:n.concat(O(arguments,2),this.slice(t+e)))},findLastIndex:function(t,e){var r=this.findLastEntry(t,e);return r?r[0]:-1},first:function(){return this.get(0)},flatten:function(t){return lr(this,sr(this,t,!1))},get:function(t,e){return(t=D(this,t))<0||this.size===1/0||void 0!==this.size&&t>this.size?e:this.find((function(e,r){return r===t}),void 0,e)},has:function(t){return(t=D(this,t))>=0&&(void 0!==this.size?this.size===1/0||t{"use strict";var n=r(3935);n.createRoot,n.hydrateRoot},1202:(t,e,r)=>{"use strict";r.d(e,{Z:()=>u});var n=r(1002);function i(t){var e=function(t,e){if("object"!==(0,n.Z)(t)||null===t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var i=r.call(t,e||"default");if("object"!==(0,n.Z)(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"===(0,n.Z)(e)?e:String(e)}function o(t,e){for(var r=0;r{n.r(t),n.d(t,{assets:()=>f,contentTitle:()=>m,default:()=>y,frontMatter:()=>d,metadata:()=>o,toc:()=>h});const o=JSON.parse('{"id":"maplibre/geojson-animation","title":"GeoJSON Animation","description":"","source":"@site/src/examples/maplibre/geojson-animation.mdx","sourceDirName":"maplibre","slug":"/maplibre/geojson-animation","permalink":"/react-map-gl/examples/maplibre/geojson-animation","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"Geocoder","permalink":"/react-map-gl/examples/maplibre/geocoder"},"next":{"title":"GeoJSON","permalink":"/react-map-gl/examples/maplibre/geojson"}}');var r=n(4848),s=n(8453),a=n(6540),i=(n(5338),n(5490));function l(){return(0,r.jsxs)("div",{className:"control-panel",children:[(0,r.jsx)("h3",{children:"Animated GeoJSON"}),(0,r.jsx)("p",{children:"Render animation by updating GeoJSON data source."}),(0,r.jsx)("div",{className:"source-link",children:(0,r.jsx)("a",{href:"https://github.com/visgl/react-maplibre/tree/1.0-release/examples/geojson-animation",target:"_new",children:"View Code \u2197"})})]})}const c=a.memo(l),u={id:"point",type:"circle",paint:{"circle-radius":10,"circle-color":"#007cbf"}};function p(){const[e,t]=(0,a.useState)(null);return(0,a.useEffect)((()=>{const e=window.requestAnimationFrame((()=>t(function(e){let{center:t,angle:n,radius:o}=e;return{type:"Point",coordinates:[t[0]+Math.cos(n)*o,t[1]+Math.sin(n)*o]}}({center:[-100,0],angle:Date.now()/1e3,radius:20}))));return()=>window.cancelAnimationFrame(e)})),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.T5,{initialViewState:{latitude:0,longitude:-100,zoom:3},mapStyle:"https://basemaps.cartocdn.com/gl/positron-gl-style/style.json",children:e&&(0,r.jsx)(i.kL,{type:"geojson",data:e,children:(0,r.jsx)(i.Wd,Object.assign({},u))})}),(0,r.jsx)(c,{})]})}const d={},m="GeoJSON Animation",f={},h=[];function g(e){const t={h1:"h1",header:"header",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"geojson-animation",children:"GeoJSON Animation"})}),"\n","\n",(0,r.jsx)(p,{})]})}function y(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(g,{...e})}):g(e)}},5490:(e,t,n)=>{n.d(t,{T3:()=>R,tG:()=>T,Wd:()=>B,T5:()=>S,pH:()=>M,ov:()=>U,zD:()=>P,g0:()=>N,kL:()=>H,jG:()=>D,Ay:()=>S,VI:()=>O});var o=n(6540),r=n(4848);const s=o.createContext(null);function a(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n{let n=null;"interactive"in e&&(n=Object.assign({},e),delete n.interactive);const o=t[e.ref];if(o){n=n||Object.assign({},e),delete n.ref;for(const e of c)e in o&&(n[e]=o[e])}return n||e}));return Object.assign({},e,{layers:n})}const p={version:8,sources:{},layers:[]},d={mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",click:"onClick",dblclick:"onDblClick",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",mouseout:"onMouseOut",contextmenu:"onContextMenu",touchstart:"onTouchStart",touchend:"onTouchEnd",touchmove:"onTouchMove",touchcancel:"onTouchCancel"},m={movestart:"onMoveStart",move:"onMove",moveend:"onMoveEnd",dragstart:"onDragStart",drag:"onDrag",dragend:"onDragEnd",zoomstart:"onZoomStart",zoom:"onZoom",zoomend:"onZoomEnd",rotatestart:"onRotateStart",rotate:"onRotate",rotateend:"onRotateEnd",pitchstart:"onPitchStart",pitch:"onPitch",pitchend:"onPitchEnd"},f={wheel:"onWheel",boxzoomstart:"onBoxZoomStart",boxzoomend:"onBoxZoomEnd",boxzoomcancel:"onBoxZoomCancel",resize:"onResize",load:"onLoad",render:"onRender",idle:"onIdle",remove:"onRemove",data:"onData",styledata:"onStyleData",sourcedata:"onSourceData",error:"onError"},h=["minZoom","maxZoom","minPitch","maxPitch","maxBounds","projection","renderWorldCopies"],g=["scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate","touchPitch"];class y{constructor(e,t,n){this._map=null,this._internalUpdate=!1,this._hoveredFeatures=null,this._propsedCameraUpdate=null,this._styleComponents={},this._onEvent=e=>{const t=this.props[f[e.type]];t?t(e):"error"===e.type&&console.error(e.error)},this._onCameraEvent=e=>{if(this._internalUpdate)return;e.viewState=this._propsedCameraUpdate||i(this._map.transform);const t=this.props[m[e.type]];t&&t(e)},this._onCameraUpdate=e=>this._internalUpdate?e:(this._propsedCameraUpdate=i(e),l(e,this.props)),this._onPointerEvent=e=>{"mousemove"!==e.type&&"mouseout"!==e.type||this._updateHover(e);const t=this.props[d[e.type]];t&&(this.props.interactiveLayerIds&&"mouseover"!==e.type&&"mouseout"!==e.type&&(e.features=this._hoveredFeatures||this._queryRenderedFeatures(e.point)),t(e),delete e.features)},this._MapClass=e,this.props=t,this._initialize(n)}get map(){return this._map}setProps(e){const t=this.props;this.props=e;const n=this._updateSettings(e,t),o=this._updateSize(e),r=this._updateViewState(e);this._updateStyle(e,t),this._updateStyleComponents(e),this._updateHandlers(e,t),(n||o||r&&!this._map.isMoving())&&this.redraw()}static reuse(e,t){const n=y.savedMaps.pop();if(!n)return null;const o=n.map,r=o.getContainer();for(t.className=r.className;r.childNodes.length>0;)t.appendChild(r.childNodes[0]);o._container=t;const s=o._resizeObserver;s&&(s.disconnect(),s.observe(t)),n.setProps(Object.assign({},e,{styleDiffing:!1})),o.resize();const{initialViewState:a}=e;return a&&(a.bounds?o.fitBounds(a.bounds,Object.assign({},a.fitBoundsOptions,{duration:0})):n._updateViewState(a)),o.isStyleLoaded()?o.fire("load"):o.once("style.load",(()=>o.fire("load"))),o._update(),n}_initialize(e){const{props:t}=this,{mapStyle:n=p}=t,o=Object.assign({},t,t.initialViewState,{container:e,style:u(n)}),r=o.initialViewState||o.viewState||o;if(Object.assign(o,{center:[r.longitude||0,r.latitude||0],zoom:r.zoom||0,pitch:r.pitch||0,bearing:r.bearing||0}),t.gl){const e=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=e,t.gl)}const s=new this._MapClass(o);r.padding&&s.setPadding(r.padding),t.cursor&&(s.getCanvas().style.cursor=t.cursor),s.transformCameraUpdate=this._onCameraUpdate,s.on("style.load",(()=>{this._styleComponents={light:s.getLight(),sky:s.getSky(),projection:null==s.getProjection?void 0:s.getProjection(),terrain:s.getTerrain()},this._updateStyleComponents(this.props)})),s.on("sourcedata",(()=>{this._updateStyleComponents(this.props)}));for(const a in d)s.on(a,this._onPointerEvent);for(const a in m)s.on(a,this._onCameraEvent);for(const a in f)s.on(a,this._onEvent);this._map=s}recycle(){const e=this.map.getContainer().querySelector("[mapboxgl-children]");null==e||e.remove(),y.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){const e=this._map;e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())}_updateSize(e){const{viewState:t}=e;if(t){const e=this._map;if(t.width!==e.transform.width||t.height!==e.transform.height)return e.resize(),!0}return!1}_updateViewState(e){const t=this._map,n=t.transform;if(!t.isMoving()){const o=l(n,e);if(Object.keys(o).length>0)return this._internalUpdate=!0,t.jumpTo(o),this._internalUpdate=!1,!0}return!1}_updateSettings(e,t){const n=this._map;let o=!1;for(const r of h)if(r in e&&!a(e[r],t[r])){o=!0;const t=n["set"+r[0].toUpperCase()+r.slice(1)];null==t||t.call(n,e[r])}return o}_updateStyle(e,t){if(e.cursor!==t.cursor&&(this._map.getCanvas().style.cursor=e.cursor||""),e.mapStyle!==t.mapStyle){const{mapStyle:t=p,styleDiffing:n=!0}=e,o={diff:n};"localIdeographFontFamily"in e&&(o.localIdeographFontFamily=e.localIdeographFontFamily),this._map.setStyle(u(t),o)}}_updateStyleComponents(e){let{light:t,projection:n,sky:o,terrain:r}=e;const s=this._map,i=this._styleComponents;var l;s.style._loaded&&(t&&!a(t,i.light)&&(i.light=t,s.setLight(t)),n&&!a(n,i.projection)&&n!==(null==(l=i.projection)?void 0:l.type)&&(i.projection="string"==typeof n?{type:n}:n,null==s.setProjection||s.setProjection(i.projection)),o&&!a(o,i.sky)&&(i.sky=o,s.setSky(o)),void 0===r||a(r,i.terrain)||r&&!s.getSource(r.source)||(i.terrain=r,s.setTerrain(r)))}_updateHandlers(e,t){const n=this._map;for(const s of g){var o,r;const i=null==(o=e[s])||o;a(i,null==(r=t[s])||r)||(i?n[s].enable(i):n[s].disable())}}_queryRenderedFeatures(e){const t=this._map,{interactiveLayerIds:n=[]}=this.props;try{return t.queryRenderedFeatures(e,{layers:n.filter(t.getLayer.bind(t))})}catch(o){return[]}}_updateHover(e){const{props:t}=this;if(t.interactiveLayerIds&&(t.onMouseMove||t.onMouseEnter||t.onMouseLeave)){var n;const t=e.type,o=(null==(n=this._hoveredFeatures)?void 0:n.length)>0,r=this._queryRenderedFeatures(e.point),s=r.length>0;!s&&o&&(e.type="mouseleave",this._onPointerEvent(e)),this._hoveredFeatures=r,s&&!o&&(e.type="mouseenter",this._onPointerEvent(e)),e.type=t}else this._hoveredFeatures=null}}y.savedMaps=[];const v=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function b(e){if(!e)return null;const t=e.map,n={getMap:()=>t};for(const o of function(e){const t=new Set;let n=e;for(;n;){for(const o of Object.getOwnPropertyNames(n))"_"!==o[0]&&"function"==typeof e[o]&&"fire"!==o&&"setEventedParent"!==o&&t.add(o);n=Object.getPrototypeOf(n)}return Array.from(t)}(t))o in n||v.includes(o)||(n[o]=t[o].bind(t));return n}const _="undefined"!=typeof document?o.useLayoutEffect:o.useEffect;const x=o.createContext(null);function L(e,t){const a=(0,o.useContext)(s),[i,l]=(0,o.useState)(null),c=(0,o.useRef)(),{current:u}=(0,o.useRef)({mapLib:null,map:null});(0,o.useEffect)((()=>{const t=e.mapLib;let o,r=!0;return Promise.resolve(t||n.e(6443).then(n.t.bind(n,6443,23))).then((t=>{if(!r)return;if(!t)throw new Error("Invalid mapLib");const n="Map"in t?t:t.default;if(!n.Map)throw new Error("Invalid mapLib");if(function(e,t){const{RTLTextPlugin:n,maxParallelImageRequests:o,workerCount:r,workerUrl:s}=t;if(n&&e.getRTLTextPluginStatus&&"unavailable"===e.getRTLTextPluginStatus()){const{pluginUrl:t,lazy:o=!0}="string"==typeof n?{pluginUrl:n}:n;e.setRTLTextPlugin(t,(e=>{e&&console.error(e)}),o)}void 0!==o&&e.setMaxParallelImageRequests(o),void 0!==r&&e.setWorkerCount(r),void 0!==s&&e.setWorkerUrl(s)}(n,e),n.supported&&!n.supported(e))throw new Error("Map is not supported by this browser");e.reuseMaps&&(o=y.reuse(e,c.current)),o||(o=new y(n.Map,e,c.current)),u.map=b(o),u.mapLib=n,l(o),null==a||a.onMapMount(u.map,e.id)})).catch((t=>{const{onError:n}=e;n?n({type:"error",target:null,originalEvent:null,error:t}):console.error(t)})),()=>{r=!1,o&&(null==a||a.onMapUnmount(e.id),e.reuseMaps?o.recycle():o.destroy())}}),[]),_((()=>{i&&i.setProps(e)})),(0,o.useImperativeHandle)(t,(()=>u.map),[i]);const p=(0,o.useMemo)((()=>Object.assign({position:"relative",width:"100%",height:"100%"},e.style)),[e.style]);return(0,r.jsx)("div",{id:e.id,ref:c,style:p,children:i&&(0,r.jsx)(x.Provider,{value:u,children:(0,r.jsx)("div",{"mapboxgl-children":"",style:{height:"100%"},children:e.children})})})}const S=o.forwardRef(L);var C=n(961);const j=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function w(e,t){if(!e||!t)return;const n=e.style;for(const o in t){const e=t[o];Number.isFinite(e)&&!j.test(o)?n[o]=e+"px":n[o]=e}}const M=(0,o.memo)((0,o.forwardRef)(((e,t)=>{const{map:n,mapLib:r}=(0,o.useContext)(x),s=(0,o.useRef)({props:e});s.current.props=e;const a=(0,o.useMemo)((()=>{let t=!1;o.Children.forEach(e.children,(e=>{e&&(t=!0)}));const n=Object.assign({},e,{element:t?document.createElement("div"):null}),i=new r.Marker(n);return i.setLngLat([e.longitude,e.latitude]),i.getElement().addEventListener("click",(e=>{null==s.current.props.onClick||s.current.props.onClick({type:"click",target:i,originalEvent:e})})),i.on("dragstart",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDragStart||s.current.props.onDragStart(t)})),i.on("drag",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDrag||s.current.props.onDrag(t)})),i.on("dragend",(e=>{const t=e;t.lngLat=a.getLngLat(),null==s.current.props.onDragEnd||s.current.props.onDragEnd(t)})),i}),[]);(0,o.useEffect)((()=>(a.addTo(n.getMap()),()=>{a.remove()})),[]);const{longitude:i,latitude:l,offset:c,style:u,draggable:p=!1,popup:d=null,rotation:m=0,rotationAlignment:f="auto",pitchAlignment:h="auto"}=e;return(0,o.useEffect)((()=>{w(a.getElement(),u)}),[u]),(0,o.useImperativeHandle)(t,(()=>a),[]),a.getLngLat().lng===i&&a.getLngLat().lat===l||a.setLngLat([i,l]),c&&!function(e,t){const n=Array.isArray(e)?e[0]:e?e.x:0,o=Array.isArray(e)?e[1]:e?e.y:0,r=Array.isArray(t)?t[0]:t?t.x:0,s=Array.isArray(t)?t[1]:t?t.y:0;return n===r&&o===s}(a.getOffset(),c)&&a.setOffset(c),a.isDraggable()!==p&&a.setDraggable(p),a.getRotation()!==m&&a.setRotation(m),a.getRotationAlignment()!==f&&a.setRotationAlignment(f),a.getPitchAlignment()!==h&&a.setPitchAlignment(h),a.getPopup()!==d&&a.setPopup(d),(0,C.createPortal)(e.children,a.getElement())})));function E(e){return new Set(e?e.trim().split(/\s+/):[])}const P=(0,o.memo)((0,o.forwardRef)(((e,t)=>{const{map:n,mapLib:r}=(0,o.useContext)(x),s=(0,o.useMemo)((()=>document.createElement("div")),[]),i=(0,o.useRef)({props:e});i.current.props=e;const l=(0,o.useMemo)((()=>{const t=Object.assign({},e),n=new r.Popup(t);return n.setLngLat([e.longitude,e.latitude]),n.once("open",(e=>{null==i.current.props.onOpen||i.current.props.onOpen(e)})),n}),[]);if((0,o.useEffect)((()=>{const e=e=>{null==i.current.props.onClose||i.current.props.onClose(e)};return l.on("close",e),l.setDOMContent(s).addTo(n.getMap()),()=>{l.off("close",e),l.isOpen()&&l.remove()}}),[]),(0,o.useEffect)((()=>{w(l.getElement(),e.style)}),[e.style]),(0,o.useImperativeHandle)(t,(()=>l),[]),l.isOpen()&&(l.getLngLat().lng===e.longitude&&l.getLngLat().lat===e.latitude||l.setLngLat([e.longitude,e.latitude]),e.offset&&!a(l.options.offset,e.offset)&&l.setOffset(e.offset),l.options.anchor===e.anchor&&l.options.maxWidth===e.maxWidth||(l.options.anchor=e.anchor,l.setMaxWidth(e.maxWidth)),l.options.className!==e.className)){const t=E(l.options.className),n=E(e.className);for(const e of t)n.has(e)||l.removeClassName(e);for(const e of n)t.has(e)||l.addClassName(e);l.options.className=e.className}return(0,C.createPortal)(e.children,s)})));function O(e,t,n,r){const s=(0,o.useContext)(x),a=(0,o.useMemo)((()=>e(s)),[]);return(0,o.useEffect)((()=>{const e=r||n||t,o="function"==typeof t&&"function"==typeof n?t:null,i="function"==typeof n?n:"function"==typeof t?t:null,{map:l}=s;return l.hasControl(a)||(l.addControl(a,null==e?void 0:e.position),o&&o(s)),()=>{i&&i(s),l.hasControl(a)&&l.removeControl(a)}}),[]),a}function k(e){const t=O((t=>{let{mapLib:n}=t;return new n.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)})}),{position:e.position});return(0,o.useEffect)((()=>{w(t._controlContainer,e.style)}),[e.style]),null}const R=(0,o.memo)(k);function z(e,t){const n=(0,o.useRef)({props:e}),r=O((t=>{let{mapLib:o}=t;const r=new o.GeolocateControl(e),s=r._setupUI;return r._setupUI=()=>{r._container.hasChildNodes()||s()},r.on("geolocate",(e=>{null==n.current.props.onGeolocate||n.current.props.onGeolocate(e)})),r.on("error",(e=>{null==n.current.props.onError||n.current.props.onError(e)})),r.on("outofmaxbounds",(e=>{null==n.current.props.onOutOfMaxBounds||n.current.props.onOutOfMaxBounds(e)})),r.on("trackuserlocationstart",(e=>{null==n.current.props.onTrackUserLocationStart||n.current.props.onTrackUserLocationStart(e)})),r.on("trackuserlocationend",(e=>{null==n.current.props.onTrackUserLocationEnd||n.current.props.onTrackUserLocationEnd(e)})),r}),{position:e.position});return n.current.props=e,(0,o.useImperativeHandle)(t,(()=>r),[]),(0,o.useEffect)((()=>{w(r._container,e.style)}),[e.style]),null}const T=(0,o.memo)((0,o.forwardRef)(z));function A(e){const t=O((t=>{let{mapLib:n}=t;return new n.NavigationControl(e)}),{position:e.position});return(0,o.useEffect)((()=>{w(t._container,e.style)}),[e.style]),null}const U=(0,o.memo)(A);function I(e){const t=O((t=>{let{mapLib:n}=t;return new n.ScaleControl(e)}),{position:e.position}),n=(0,o.useRef)(e),r=n.current;n.current=e;const{style:s}=e;return void 0!==e.maxWidth&&e.maxWidth!==r.maxWidth&&(t.options.maxWidth=e.maxWidth),void 0!==e.unit&&e.unit!==r.unit&&t.setUnit(e.unit),(0,o.useEffect)((()=>{w(t._container,s)}),[s]),null}const N=(0,o.memo)(I);function F(e){const t=O((t=>{let{mapLib:n}=t;return new n.TerrainControl(e)}),{position:e.position});return(0,o.useEffect)((()=>{w(t._container,e.style)}),[e.style]),null}const D=(0,o.memo)(F);function W(e,t){if(!e)throw new Error(t)}let Z=0;function H(e){const t=(0,o.useContext)(x).map.getMap(),n=(0,o.useRef)(e),[,r]=(0,o.useState)(0),s=(0,o.useMemo)((()=>e.id||"jsx-source-"+Z++),[]);(0,o.useEffect)((()=>{if(t){const e=()=>setTimeout((()=>r((e=>e+1))),0);return t.on("styledata",e),e(),()=>{if(t.off("styledata",e),t.style&&t.style._loaded&&t.getSource(s)){var n;const e=null==(n=t.getStyle())?void 0:n.layers;if(e)for(const n of e)n.source===s&&t.removeLayer(n.id);t.removeSource(s)}}}}),[t]);let i=t&&t.style&&t.getSource(s);return i?function(e,t,n){W(t.id===n.id,"source id changed"),W(t.type===n.type,"source type changed");let o="",r=0;for(const i in t)"children"===i||"id"===i||a(n[i],t[i])||(o=i,r++);if(!r)return;const s=t.type;if("geojson"===s)e.setData(t.data);else if("image"===s)e.updateImage({url:t.url,coordinates:t.coordinates});else switch(o){case"coordinates":null==e.setCoordinates||e.setCoordinates(t.coordinates);break;case"url":null==e.setUrl||e.setUrl(t.url);break;case"tiles":null==e.setTiles||e.setTiles(t.tiles);break;default:console.warn("Unable to update prop: "+o)}}(i,e,n.current):i=function(e,t,n){if(e.style&&e.style._loaded){const o=Object.assign({},n);return delete o.id,delete o.children,e.addSource(t,o),e.getSource(t)}return null}(t,s,e),n.current=e,i&&o.Children.map(e.children,(e=>e&&(0,o.cloneElement)(e,{source:s})))||null}let G=0;function B(e){const t=(0,o.useContext)(x).map.getMap(),n=(0,o.useRef)(e),[,r]=(0,o.useState)(0),s=(0,o.useMemo)((()=>e.id||"jsx-layer-"+G++),[]);(0,o.useEffect)((()=>{if(t){const e=()=>r((e=>e+1));return t.on("styledata",e),e(),()=>{t.off("styledata",e),t.style&&t.style._loaded&&t.getLayer(s)&&t.removeLayer(s)}}}),[t]);if(t&&t.style&&t.getLayer(s))try{!function(e,t,n,o){if(W(n.id===o.id,"layer id changed"),W(n.type===o.type,"layer type changed"),"custom"===n.type||"custom"===o.type)return;const{layout:r={},paint:s={},filter:i,minzoom:l,maxzoom:c,beforeId:u}=n;if(u!==o.beforeId&&e.moveLayer(t,u),r!==o.layout){const n=o.layout||{};for(const o in r)a(r[o],n[o])||e.setLayoutProperty(t,o,r[o]);for(const o in n)r.hasOwnProperty(o)||e.setLayoutProperty(t,o,void 0)}if(s!==o.paint){const n=o.paint||{};for(const o in s)a(s[o],n[o])||e.setPaintProperty(t,o,s[o]);for(const o in n)s.hasOwnProperty(o)||e.setPaintProperty(t,o,void 0)}a(i,o.filter)||e.setFilter(t,i),l===o.minzoom&&c===o.maxzoom||e.setLayerZoomRange(t,l,c)}(t,s,e,n.current)}catch(i){console.warn(i)}else!function(e,t,n){if(e.style&&e.style._loaded&&(!("source"in n)||e.getSource(n.source))){const o=Object.assign({},n,{id:t});delete o.beforeId,e.addLayer(o,n.beforeId)}}(t,s,e);return n.current=e,null}},8453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>i});var o=n(6540);const r={},s=o.createContext(r);function a(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/66335163.5942d483.js b/assets/js/66335163.5942d483.js new file mode 100644 index 00000000..a6b7dd5f --- /dev/null +++ b/assets/js/66335163.5942d483.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[7222],{691:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>h,contentTitle:()=>f,default:()=>v,frontMatter:()=>m,metadata:()=>n,toc:()=>g});const n=JSON.parse('{"id":"maplibre/filter","title":"Highlight By Filter","description":"","source":"@site/src/examples/maplibre/filter.mdx","sourceDirName":"maplibre","slug":"/maplibre/filter","permalink":"/react-map-gl/examples/maplibre/filter","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"Draw Polygon","permalink":"/react-map-gl/examples/maplibre/draw-polygon"},"next":{"title":"Geocoder","permalink":"/react-map-gl/examples/maplibre/geocoder"}}');var r=o(4848),s=o(8453),i=o(6540),a=(o(5338),o(5490));function l(){return(0,r.jsxs)("div",{className:"control-panel",children:[(0,r.jsx)("h3",{children:"Highlight Features Containing Similar Data"}),(0,r.jsx)("p",{children:"Hover over counties to highlight counties that share the same name."}),(0,r.jsx)("div",{className:"source-link",children:(0,r.jsx)("a",{href:"https://github.com/visgl/react-maplibre/tree/1.0-release/examples/filter",target:"_new",children:"View Code \u2197"})})]})}const c=i.memo(l),u={id:"counties",source:"",type:"fill",paint:{"fill-outline-color":"rgba(0,0,0,0.1)","fill-color":"rgba(0,0,0,0.1)"}},p={id:"counties-highlighted",type:"fill",source:"counties",paint:{"fill-outline-color":"#484896","fill-color":"#6e599f","fill-opacity":.75}};function d(){const[e,t]=(0,i.useState)(null),o=(0,i.useCallback)((e=>{const o=e.features&&e.features[0];t({longitude:e.lngLat.lng,latitude:e.lngLat.lat,countyName:o&&o.properties.name.split(",")[0]})}),[]),n=e&&e.countyName||"",s=(0,i.useMemo)((()=>["in",n||"N/A",["get","name"]]),[n]);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(a.T5,{initialViewState:{latitude:38.88,longitude:-98,zoom:3},minZoom:2,mapStyle:"https://basemaps.cartocdn.com/gl/positron-gl-style/style.json",onMouseMove:o,interactiveLayerIds:["counties"],children:[(0,r.jsxs)(a.kL,{type:"geojson",data:"https://raw.githubusercontent.com/visgl/deck.gl-data/refs/heads/master/examples/arc/counties.json",children:[(0,r.jsx)(a.Wd,Object.assign({beforeId:"waterway_label"},u)),(0,r.jsx)(a.Wd,Object.assign({beforeId:"waterway_label"},p,{filter:s}))]}),n&&(0,r.jsx)(a.zD,{longitude:e.longitude,latitude:e.latitude,offset:[0,-10],closeButton:!1,className:"county-info",children:n})]}),(0,r.jsx)(c,{})]})}const m={},f="Highlight By Filter",h={},g=[];function y(e){const t={h1:"h1",header:"header",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"highlight-by-filter",children:"Highlight By Filter"})}),"\n","\n",(0,r.jsx)(d,{})]})}function v(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(y,{...e})}):y(e)}},5490:(e,t,o)=>{o.d(t,{T3:()=>R,tG:()=>T,Wd:()=>V,T5:()=>C,pH:()=>j,ov:()=>U,zD:()=>P,g0:()=>D,kL:()=>Z,jG:()=>A,Ay:()=>C,VI:()=>k});var n=o(6540),r=o(4848);const s=n.createContext(null);function i(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let o=0;o{let o=null;"interactive"in e&&(o=Object.assign({},e),delete o.interactive);const n=t[e.ref];if(n){o=o||Object.assign({},e),delete o.ref;for(const e of c)e in n&&(o[e]=n[e])}return o||e}));return Object.assign({},e,{layers:o})}const p={version:8,sources:{},layers:[]},d={mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",click:"onClick",dblclick:"onDblClick",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",mouseout:"onMouseOut",contextmenu:"onContextMenu",touchstart:"onTouchStart",touchend:"onTouchEnd",touchmove:"onTouchMove",touchcancel:"onTouchCancel"},m={movestart:"onMoveStart",move:"onMove",moveend:"onMoveEnd",dragstart:"onDragStart",drag:"onDrag",dragend:"onDragEnd",zoomstart:"onZoomStart",zoom:"onZoom",zoomend:"onZoomEnd",rotatestart:"onRotateStart",rotate:"onRotate",rotateend:"onRotateEnd",pitchstart:"onPitchStart",pitch:"onPitch",pitchend:"onPitchEnd"},f={wheel:"onWheel",boxzoomstart:"onBoxZoomStart",boxzoomend:"onBoxZoomEnd",boxzoomcancel:"onBoxZoomCancel",resize:"onResize",load:"onLoad",render:"onRender",idle:"onIdle",remove:"onRemove",data:"onData",styledata:"onStyleData",sourcedata:"onSourceData",error:"onError"},h=["minZoom","maxZoom","minPitch","maxPitch","maxBounds","projection","renderWorldCopies"],g=["scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate","touchPitch"];class y{constructor(e,t,o){this._map=null,this._internalUpdate=!1,this._hoveredFeatures=null,this._propsedCameraUpdate=null,this._styleComponents={},this._onEvent=e=>{const t=this.props[f[e.type]];t?t(e):"error"===e.type&&console.error(e.error)},this._onCameraEvent=e=>{if(this._internalUpdate)return;e.viewState=this._propsedCameraUpdate||a(this._map.transform);const t=this.props[m[e.type]];t&&t(e)},this._onCameraUpdate=e=>this._internalUpdate?e:(this._propsedCameraUpdate=a(e),l(e,this.props)),this._onPointerEvent=e=>{"mousemove"!==e.type&&"mouseout"!==e.type||this._updateHover(e);const t=this.props[d[e.type]];t&&(this.props.interactiveLayerIds&&"mouseover"!==e.type&&"mouseout"!==e.type&&(e.features=this._hoveredFeatures||this._queryRenderedFeatures(e.point)),t(e),delete e.features)},this._MapClass=e,this.props=t,this._initialize(o)}get map(){return this._map}setProps(e){const t=this.props;this.props=e;const o=this._updateSettings(e,t),n=this._updateSize(e),r=this._updateViewState(e);this._updateStyle(e,t),this._updateStyleComponents(e),this._updateHandlers(e,t),(o||n||r&&!this._map.isMoving())&&this.redraw()}static reuse(e,t){const o=y.savedMaps.pop();if(!o)return null;const n=o.map,r=n.getContainer();for(t.className=r.className;r.childNodes.length>0;)t.appendChild(r.childNodes[0]);n._container=t;const s=n._resizeObserver;s&&(s.disconnect(),s.observe(t)),o.setProps(Object.assign({},e,{styleDiffing:!1})),n.resize();const{initialViewState:i}=e;return i&&(i.bounds?n.fitBounds(i.bounds,Object.assign({},i.fitBoundsOptions,{duration:0})):o._updateViewState(i)),n.isStyleLoaded()?n.fire("load"):n.once("style.load",(()=>n.fire("load"))),n._update(),o}_initialize(e){const{props:t}=this,{mapStyle:o=p}=t,n=Object.assign({},t,t.initialViewState,{container:e,style:u(o)}),r=n.initialViewState||n.viewState||n;if(Object.assign(n,{center:[r.longitude||0,r.latitude||0],zoom:r.zoom||0,pitch:r.pitch||0,bearing:r.bearing||0}),t.gl){const e=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=e,t.gl)}const s=new this._MapClass(n);r.padding&&s.setPadding(r.padding),t.cursor&&(s.getCanvas().style.cursor=t.cursor),s.transformCameraUpdate=this._onCameraUpdate,s.on("style.load",(()=>{this._styleComponents={light:s.getLight(),sky:s.getSky(),projection:null==s.getProjection?void 0:s.getProjection(),terrain:s.getTerrain()},this._updateStyleComponents(this.props)})),s.on("sourcedata",(()=>{this._updateStyleComponents(this.props)}));for(const i in d)s.on(i,this._onPointerEvent);for(const i in m)s.on(i,this._onCameraEvent);for(const i in f)s.on(i,this._onEvent);this._map=s}recycle(){const e=this.map.getContainer().querySelector("[mapboxgl-children]");null==e||e.remove(),y.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){const e=this._map;e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())}_updateSize(e){const{viewState:t}=e;if(t){const e=this._map;if(t.width!==e.transform.width||t.height!==e.transform.height)return e.resize(),!0}return!1}_updateViewState(e){const t=this._map,o=t.transform;if(!t.isMoving()){const n=l(o,e);if(Object.keys(n).length>0)return this._internalUpdate=!0,t.jumpTo(n),this._internalUpdate=!1,!0}return!1}_updateSettings(e,t){const o=this._map;let n=!1;for(const r of h)if(r in e&&!i(e[r],t[r])){n=!0;const t=o["set"+r[0].toUpperCase()+r.slice(1)];null==t||t.call(o,e[r])}return n}_updateStyle(e,t){if(e.cursor!==t.cursor&&(this._map.getCanvas().style.cursor=e.cursor||""),e.mapStyle!==t.mapStyle){const{mapStyle:t=p,styleDiffing:o=!0}=e,n={diff:o};"localIdeographFontFamily"in e&&(n.localIdeographFontFamily=e.localIdeographFontFamily),this._map.setStyle(u(t),n)}}_updateStyleComponents(e){let{light:t,projection:o,sky:n,terrain:r}=e;const s=this._map,a=this._styleComponents;var l;s.style._loaded&&(t&&!i(t,a.light)&&(a.light=t,s.setLight(t)),o&&!i(o,a.projection)&&o!==(null==(l=a.projection)?void 0:l.type)&&(a.projection="string"==typeof o?{type:o}:o,null==s.setProjection||s.setProjection(a.projection)),n&&!i(n,a.sky)&&(a.sky=n,s.setSky(n)),void 0===r||i(r,a.terrain)||r&&!s.getSource(r.source)||(a.terrain=r,s.setTerrain(r)))}_updateHandlers(e,t){const o=this._map;for(const s of g){var n,r;const a=null==(n=e[s])||n;i(a,null==(r=t[s])||r)||(a?o[s].enable(a):o[s].disable())}}_queryRenderedFeatures(e){const t=this._map,{interactiveLayerIds:o=[]}=this.props;try{return t.queryRenderedFeatures(e,{layers:o.filter(t.getLayer.bind(t))})}catch(n){return[]}}_updateHover(e){const{props:t}=this;if(t.interactiveLayerIds&&(t.onMouseMove||t.onMouseEnter||t.onMouseLeave)){var o;const t=e.type,n=(null==(o=this._hoveredFeatures)?void 0:o.length)>0,r=this._queryRenderedFeatures(e.point),s=r.length>0;!s&&n&&(e.type="mouseleave",this._onPointerEvent(e)),this._hoveredFeatures=r,s&&!n&&(e.type="mouseenter",this._onPointerEvent(e)),e.type=t}else this._hoveredFeatures=null}}y.savedMaps=[];const v=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function b(e){if(!e)return null;const t=e.map,o={getMap:()=>t};for(const n of function(e){const t=new Set;let o=e;for(;o;){for(const n of Object.getOwnPropertyNames(o))"_"!==n[0]&&"function"==typeof e[n]&&"fire"!==n&&"setEventedParent"!==n&&t.add(n);o=Object.getPrototypeOf(o)}return Array.from(t)}(t))n in o||v.includes(n)||(o[n]=t[n].bind(t));return o}const _="undefined"!=typeof document?n.useLayoutEffect:n.useEffect;const x=n.createContext(null);function L(e,t){const i=(0,n.useContext)(s),[a,l]=(0,n.useState)(null),c=(0,n.useRef)(),{current:u}=(0,n.useRef)({mapLib:null,map:null});(0,n.useEffect)((()=>{const t=e.mapLib;let n,r=!0;return Promise.resolve(t||o.e(6443).then(o.t.bind(o,6443,23))).then((t=>{if(!r)return;if(!t)throw new Error("Invalid mapLib");const o="Map"in t?t:t.default;if(!o.Map)throw new Error("Invalid mapLib");if(function(e,t){const{RTLTextPlugin:o,maxParallelImageRequests:n,workerCount:r,workerUrl:s}=t;if(o&&e.getRTLTextPluginStatus&&"unavailable"===e.getRTLTextPluginStatus()){const{pluginUrl:t,lazy:n=!0}="string"==typeof o?{pluginUrl:o}:o;e.setRTLTextPlugin(t,(e=>{e&&console.error(e)}),n)}void 0!==n&&e.setMaxParallelImageRequests(n),void 0!==r&&e.setWorkerCount(r),void 0!==s&&e.setWorkerUrl(s)}(o,e),o.supported&&!o.supported(e))throw new Error("Map is not supported by this browser");e.reuseMaps&&(n=y.reuse(e,c.current)),n||(n=new y(o.Map,e,c.current)),u.map=b(n),u.mapLib=o,l(n),null==i||i.onMapMount(u.map,e.id)})).catch((t=>{const{onError:o}=e;o?o({type:"error",target:null,originalEvent:null,error:t}):console.error(t)})),()=>{r=!1,n&&(null==i||i.onMapUnmount(e.id),e.reuseMaps?n.recycle():n.destroy())}}),[]),_((()=>{a&&a.setProps(e)})),(0,n.useImperativeHandle)(t,(()=>u.map),[a]);const p=(0,n.useMemo)((()=>Object.assign({position:"relative",width:"100%",height:"100%"},e.style)),[e.style]);return(0,r.jsx)("div",{id:e.id,ref:c,style:p,children:a&&(0,r.jsx)(x.Provider,{value:u,children:(0,r.jsx)("div",{"mapboxgl-children":"",style:{height:"100%"},children:e.children})})})}const C=n.forwardRef(L);var S=o(961);const w=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function M(e,t){if(!e||!t)return;const o=e.style;for(const n in t){const e=t[n];Number.isFinite(e)&&!w.test(n)?o[n]=e+"px":o[n]=e}}const j=(0,n.memo)((0,n.forwardRef)(((e,t)=>{const{map:o,mapLib:r}=(0,n.useContext)(x),s=(0,n.useRef)({props:e});s.current.props=e;const i=(0,n.useMemo)((()=>{let t=!1;n.Children.forEach(e.children,(e=>{e&&(t=!0)}));const o=Object.assign({},e,{element:t?document.createElement("div"):null}),a=new r.Marker(o);return a.setLngLat([e.longitude,e.latitude]),a.getElement().addEventListener("click",(e=>{null==s.current.props.onClick||s.current.props.onClick({type:"click",target:a,originalEvent:e})})),a.on("dragstart",(e=>{const t=e;t.lngLat=i.getLngLat(),null==s.current.props.onDragStart||s.current.props.onDragStart(t)})),a.on("drag",(e=>{const t=e;t.lngLat=i.getLngLat(),null==s.current.props.onDrag||s.current.props.onDrag(t)})),a.on("dragend",(e=>{const t=e;t.lngLat=i.getLngLat(),null==s.current.props.onDragEnd||s.current.props.onDragEnd(t)})),a}),[]);(0,n.useEffect)((()=>(i.addTo(o.getMap()),()=>{i.remove()})),[]);const{longitude:a,latitude:l,offset:c,style:u,draggable:p=!1,popup:d=null,rotation:m=0,rotationAlignment:f="auto",pitchAlignment:h="auto"}=e;return(0,n.useEffect)((()=>{M(i.getElement(),u)}),[u]),(0,n.useImperativeHandle)(t,(()=>i),[]),i.getLngLat().lng===a&&i.getLngLat().lat===l||i.setLngLat([a,l]),c&&!function(e,t){const o=Array.isArray(e)?e[0]:e?e.x:0,n=Array.isArray(e)?e[1]:e?e.y:0,r=Array.isArray(t)?t[0]:t?t.x:0,s=Array.isArray(t)?t[1]:t?t.y:0;return o===r&&n===s}(i.getOffset(),c)&&i.setOffset(c),i.isDraggable()!==p&&i.setDraggable(p),i.getRotation()!==m&&i.setRotation(m),i.getRotationAlignment()!==f&&i.setRotationAlignment(f),i.getPitchAlignment()!==h&&i.setPitchAlignment(h),i.getPopup()!==d&&i.setPopup(d),(0,S.createPortal)(e.children,i.getElement())})));function E(e){return new Set(e?e.trim().split(/\s+/):[])}const P=(0,n.memo)((0,n.forwardRef)(((e,t)=>{const{map:o,mapLib:r}=(0,n.useContext)(x),s=(0,n.useMemo)((()=>document.createElement("div")),[]),a=(0,n.useRef)({props:e});a.current.props=e;const l=(0,n.useMemo)((()=>{const t=Object.assign({},e),o=new r.Popup(t);return o.setLngLat([e.longitude,e.latitude]),o.once("open",(e=>{null==a.current.props.onOpen||a.current.props.onOpen(e)})),o}),[]);if((0,n.useEffect)((()=>{const e=e=>{null==a.current.props.onClose||a.current.props.onClose(e)};return l.on("close",e),l.setDOMContent(s).addTo(o.getMap()),()=>{l.off("close",e),l.isOpen()&&l.remove()}}),[]),(0,n.useEffect)((()=>{M(l.getElement(),e.style)}),[e.style]),(0,n.useImperativeHandle)(t,(()=>l),[]),l.isOpen()&&(l.getLngLat().lng===e.longitude&&l.getLngLat().lat===e.latitude||l.setLngLat([e.longitude,e.latitude]),e.offset&&!i(l.options.offset,e.offset)&&l.setOffset(e.offset),l.options.anchor===e.anchor&&l.options.maxWidth===e.maxWidth||(l.options.anchor=e.anchor,l.setMaxWidth(e.maxWidth)),l.options.className!==e.className)){const t=E(l.options.className),o=E(e.className);for(const e of t)o.has(e)||l.removeClassName(e);for(const e of o)t.has(e)||l.addClassName(e);l.options.className=e.className}return(0,S.createPortal)(e.children,s)})));function k(e,t,o,r){const s=(0,n.useContext)(x),i=(0,n.useMemo)((()=>e(s)),[]);return(0,n.useEffect)((()=>{const e=r||o||t,n="function"==typeof t&&"function"==typeof o?t:null,a="function"==typeof o?o:"function"==typeof t?t:null,{map:l}=s;return l.hasControl(i)||(l.addControl(i,null==e?void 0:e.position),n&&n(s)),()=>{a&&a(s),l.hasControl(i)&&l.removeControl(i)}}),[]),i}function O(e){const t=k((t=>{let{mapLib:o}=t;return new o.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)})}),{position:e.position});return(0,n.useEffect)((()=>{M(t._controlContainer,e.style)}),[e.style]),null}const R=(0,n.memo)(O);function z(e,t){const o=(0,n.useRef)({props:e}),r=k((t=>{let{mapLib:n}=t;const r=new n.GeolocateControl(e),s=r._setupUI;return r._setupUI=()=>{r._container.hasChildNodes()||s()},r.on("geolocate",(e=>{null==o.current.props.onGeolocate||o.current.props.onGeolocate(e)})),r.on("error",(e=>{null==o.current.props.onError||o.current.props.onError(e)})),r.on("outofmaxbounds",(e=>{null==o.current.props.onOutOfMaxBounds||o.current.props.onOutOfMaxBounds(e)})),r.on("trackuserlocationstart",(e=>{null==o.current.props.onTrackUserLocationStart||o.current.props.onTrackUserLocationStart(e)})),r.on("trackuserlocationend",(e=>{null==o.current.props.onTrackUserLocationEnd||o.current.props.onTrackUserLocationEnd(e)})),r}),{position:e.position});return o.current.props=e,(0,n.useImperativeHandle)(t,(()=>r),[]),(0,n.useEffect)((()=>{M(r._container,e.style)}),[e.style]),null}const T=(0,n.memo)((0,n.forwardRef)(z));function I(e){const t=k((t=>{let{mapLib:o}=t;return new o.NavigationControl(e)}),{position:e.position});return(0,n.useEffect)((()=>{M(t._container,e.style)}),[e.style]),null}const U=(0,n.memo)(I);function F(e){const t=k((t=>{let{mapLib:o}=t;return new o.ScaleControl(e)}),{position:e.position}),o=(0,n.useRef)(e),r=o.current;o.current=e;const{style:s}=e;return void 0!==e.maxWidth&&e.maxWidth!==r.maxWidth&&(t.options.maxWidth=e.maxWidth),void 0!==e.unit&&e.unit!==r.unit&&t.setUnit(e.unit),(0,n.useEffect)((()=>{M(t._container,s)}),[s]),null}const D=(0,n.memo)(F);function N(e){const t=k((t=>{let{mapLib:o}=t;return new o.TerrainControl(e)}),{position:e.position});return(0,n.useEffect)((()=>{M(t._container,e.style)}),[e.style]),null}const A=(0,n.memo)(N);function H(e,t){if(!e)throw new Error(t)}let W=0;function Z(e){const t=(0,n.useContext)(x).map.getMap(),o=(0,n.useRef)(e),[,r]=(0,n.useState)(0),s=(0,n.useMemo)((()=>e.id||"jsx-source-"+W++),[]);(0,n.useEffect)((()=>{if(t){const e=()=>setTimeout((()=>r((e=>e+1))),0);return t.on("styledata",e),e(),()=>{if(t.off("styledata",e),t.style&&t.style._loaded&&t.getSource(s)){var o;const e=null==(o=t.getStyle())?void 0:o.layers;if(e)for(const o of e)o.source===s&&t.removeLayer(o.id);t.removeSource(s)}}}}),[t]);let a=t&&t.style&&t.getSource(s);return a?function(e,t,o){H(t.id===o.id,"source id changed"),H(t.type===o.type,"source type changed");let n="",r=0;for(const a in t)"children"===a||"id"===a||i(o[a],t[a])||(n=a,r++);if(!r)return;const s=t.type;if("geojson"===s)e.setData(t.data);else if("image"===s)e.updateImage({url:t.url,coordinates:t.coordinates});else switch(n){case"coordinates":null==e.setCoordinates||e.setCoordinates(t.coordinates);break;case"url":null==e.setUrl||e.setUrl(t.url);break;case"tiles":null==e.setTiles||e.setTiles(t.tiles);break;default:console.warn("Unable to update prop: "+n)}}(a,e,o.current):a=function(e,t,o){if(e.style&&e.style._loaded){const n=Object.assign({},o);return delete n.id,delete n.children,e.addSource(t,n),e.getSource(t)}return null}(t,s,e),o.current=e,a&&n.Children.map(e.children,(e=>e&&(0,n.cloneElement)(e,{source:s})))||null}let B=0;function V(e){const t=(0,n.useContext)(x).map.getMap(),o=(0,n.useRef)(e),[,r]=(0,n.useState)(0),s=(0,n.useMemo)((()=>e.id||"jsx-layer-"+B++),[]);(0,n.useEffect)((()=>{if(t){const e=()=>r((e=>e+1));return t.on("styledata",e),e(),()=>{t.off("styledata",e),t.style&&t.style._loaded&&t.getLayer(s)&&t.removeLayer(s)}}}),[t]);if(t&&t.style&&t.getLayer(s))try{!function(e,t,o,n){if(H(o.id===n.id,"layer id changed"),H(o.type===n.type,"layer type changed"),"custom"===o.type||"custom"===n.type)return;const{layout:r={},paint:s={},filter:a,minzoom:l,maxzoom:c,beforeId:u}=o;if(u!==n.beforeId&&e.moveLayer(t,u),r!==n.layout){const o=n.layout||{};for(const n in r)i(r[n],o[n])||e.setLayoutProperty(t,n,r[n]);for(const n in o)r.hasOwnProperty(n)||e.setLayoutProperty(t,n,void 0)}if(s!==n.paint){const o=n.paint||{};for(const n in s)i(s[n],o[n])||e.setPaintProperty(t,n,s[n]);for(const n in o)s.hasOwnProperty(n)||e.setPaintProperty(t,n,void 0)}i(a,n.filter)||e.setFilter(t,a),l===n.minzoom&&c===n.maxzoom||e.setLayerZoomRange(t,l,c)}(t,s,e,o.current)}catch(a){console.warn(a)}else!function(e,t,o){if(e.style&&e.style._loaded&&(!("source"in o)||e.getSource(o.source))){const n=Object.assign({},o,{id:t});delete n.beforeId,e.addLayer(n,o.beforeId)}}(t,s,e);return o.current=e,null}},8453:(e,t,o)=>{o.d(t,{R:()=>i,x:()=>a});var n=o(6540);const r={},s=n.createContext(r);function i(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6635.bdfda45a.js b/assets/js/6635.bdfda45a.js new file mode 100644 index 00000000..2f576a65 --- /dev/null +++ b/assets/js/6635.bdfda45a.js @@ -0,0 +1,2 @@ +/*! For license information please see 6635.bdfda45a.js.LICENSE.txt */ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[6635],{6583:(e,t,i)=>{function n(e,t,i,n){return new(i||(i=Promise))((function(s,r){function o(e){try{a(n.next(e))}catch(t){r(t)}}function l(e){try{a(n.throw(e))}catch(t){r(t)}}function a(e){e.done?s(e.value):new i((function(t){t(e.value)})).then(o,l)}a((n=n.apply(e,t||[])).next())}))}i.d(t,{A:()=>F});var s,r,o="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function l(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function a(){if(r)return s;r=1,s=function(){for(var t={},i=0;i=this.items.length-1?0:this.active+1)},e.prototype.drawError=function(e){var t=document.createElement("li");t.innerHTML=e,this.element.appendChild(t),this.show()},u=e}(),n=function(t,n,s){return s=s||{},this.options=e({minLength:2,limit:5,filter:!0,hideOnBlur:!0,noInitialSelection:!0},s),this.el=t,this.data=n||[],this.list=new i(this),this.query="",this.selected=null,this.list.draw(),this.el.addEventListener("keyup",function(e){this.handleKeyUp(e.keyCode,e)}.bind(this),!1),this.el.addEventListener("keydown",function(e){this.handleKeyDown(e)}.bind(this)),this.el.addEventListener("focus",function(){this.handleFocus()}.bind(this)),this.el.addEventListener("blur",function(){this.handleBlur()}.bind(this)),this.el.addEventListener("paste",function(e){this.handlePaste(e)}.bind(this)),this.render=this.options.render?this.options.render.bind(this):this.render.bind(this),this.getItemValue=this.options.getItemValue?this.options.getItemValue.bind(this):this.getItemValue.bind(this),this};return n.prototype.handleKeyUp=function(e,t){40!==e&&38!==e&&27!==e&&9!==e&&(13!==e?this.handleInputChange(this.el.value):this.list.items[this.list.active]&&(this.list.handleMouseUp(this.list.items[this.list.active]),t.stopPropagation()))},n.prototype.handleKeyDown=function(e){switch(e.keyCode){case 13:this.list.active>=0&&(this.list.selectingListItem=!0);break;case 9:this.list.isEmpty()||(this.list.isVisible()&&e.preventDefault(),this.value(this.list.active>=0?this.list.items[this.list.active].original:null),this.list.hide());break;case 27:this.list.isEmpty()||this.list.hide();break;case 38:this.list.previous();break;case 40:this.list.next()}},n.prototype.handleBlur=function(){!this.list.selectingListItem&&this.options.hideOnBlur&&this.list.hide()},n.prototype.handlePaste=function(e){if(e.clipboardData)this.handleInputChange(e.clipboardData.getData("Text"));else{var t=this;setTimeout((function(){t.handleInputChange(e.target.value)}),100)}},n.prototype.handleInputChange=function(e){this.query=this.normalize(e),this.list.clear(),this.query.length-1},n.prototype.value=function(e){if(this.selected=e,this.el.value=this.getItemValue(e||{place_name:this.query}),document.createEvent){var t=document.createEvent("HTMLEvents");t.initEvent("change",!0,!1),this.el.dispatchEvent(t)}else this.el.fireEvent("onchange")},n.prototype.getCandidates=function(e){var i={pre:"",post:"",extract:function(e){return this.getItemValue(e)}.bind(this)};e(this.options.filter?t.filter(this.query,this.data,i).map(function(e){return{original:e.original,string:this.render(e.original,e.string)}}.bind(this)):this.data.map(function(e){return{original:e,string:this.render(e)}}.bind(this)))},n.prototype.getItemValue=function(e){return e},n.prototype.render=function(e,t){if(t)return t;for(var i=e.original?this.getItemValue(e.original):this.getItemValue(e),n=this.normalize(i),s=n.lastIndexOf(this.query);s>-1;){var r=s+this.query.length;i=i.slice(0,s)+""+i.slice(s,r)+""+i.slice(r),s=n.slice(0,s).lastIndexOf(this.query)}return i},n.prototype.renderError=function(e){this.list.drawError(e)},p=n}var _,b=l(function(){if(g)return f;g=1;var e=v();return f=e,"undefined"!=typeof window&&(window.Suggestions=e),f}()),w={exports:{}};var E,L,x,C,k,M=l((_||(_=1,L=w.exports,x=function(){var e=/^([a-zA-Z]{2,3})(?:[_-]+([a-zA-Z]{3})(?=$|[_-]+))?(?:[_-]+([a-zA-Z]{4})(?=$|[_-]+))?(?:[_-]+([a-zA-Z]{2}|[0-9]{3})(?=$|[_-]+))?/;function t(t){return t.match(e)||[]}function i(e){return{language:(e=t(e))[1]||"",extlang:e[2]||"",script:e[3]||"",region:e[4]||""}}function n(e,t,i){Object.defineProperty(e,t,{value:i,enumerable:!0})}function s(e,s,r){function o(i){return t(i)[e]||""}n(o,"pattern",s),n(i,r,o)}return s(1,/^[a-zA-Z]{2,3}$/,"language"),s(2,/^[a-zA-Z]{3}$/,"extlang"),s(3,/^[a-zA-Z]{4}$/,"script"),s(4,/^[a-zA-Z]{2}$|^[0-9]{3}$/,"region"),n(i,"split",(function(e){return t(e).filter((function(e,t){return e&&t}))})),i},(E=w).exports?E.exports=x():L.subtag=x()),w.exports));var R,T=function(){if(k)return C;k=1;var e=/^\s+|\s+$/g,t=/^[-+]0x[0-9a-f]+$/i,i=/^0b[01]+$/i,n=/^0o[0-7]+$/i,s=parseInt,r="object"==typeof o&&o&&o.Object===Object&&o,l="object"==typeof self&&self&&self.Object===Object&&self,a=r||l||Function("return this")(),h=Object.prototype.toString,u=Math.max,c=Math.min,p=function(){return a.Date.now()};function d(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function f(r){if("number"==typeof r)return r;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==h.call(e)}(r))return NaN;if(d(r)){var o="function"==typeof r.valueOf?r.valueOf():r;r=d(o)?o+"":o}if("string"!=typeof r)return 0===r?r:+r;r=r.replace(e,"");var l=i.test(r);return l||n.test(r)?s(r.slice(2),l?2:8):t.test(r)?NaN:+r}return C=function(e,t,i){var n,s,r,o,l,a,h=0,g=!1,m=!1,y=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function v(t){var i=n,r=s;return n=s=void 0,h=t,o=e.apply(r,i)}function _(e){var i=e-a;return void 0===a||i>=t||i<0||m&&e-h>=r}function b(){var e=p();if(_(e))return w(e);l=setTimeout(b,function(e){var i=t-(e-a);return m?c(i,r-(e-h)):i}(e))}function w(e){return l=void 0,y&&n?v(e):(n=s=void 0,o)}function E(){var e=p(),i=_(e);if(n=arguments,s=this,a=e,i){if(void 0===l)return function(e){return h=e,l=setTimeout(b,t),g?v(e):o}(a);if(m)return l=setTimeout(b,t),v(a)}return void 0===l&&(l=setTimeout(b,t)),o}return t=f(t)||0,d(i)&&(g=!!i.leading,r=(m="maxWait"in i)?u(f(i.maxWait)||0,t):r,y="trailing"in i?!!i.trailing:y),E.cancel=function(){void 0!==l&&clearTimeout(l),h=0,n=a=s=l=void 0},E.flush=function(){return void 0===l?o:w(p())},E}}(),O=l(T),P=l(a()),I={exports:{}};var A=function(){if(R)return I.exports;R=1;var e,t="object"==typeof Reflect?Reflect:null,i=t&&"function"==typeof t.apply?t.apply:function(e,t,i){return Function.prototype.apply.call(e,t,i)};e=t&&"function"==typeof t.ownKeys?t.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var n=Number.isNaN||function(e){return e!=e};function s(){s.init.call(this)}I.exports=s,I.exports.once=function(e,t){return new Promise((function(i,n){function s(i){e.removeListener(t,r),n(i)}function r(){"function"==typeof e.removeListener&&e.removeListener("error",s),i([].slice.call(arguments))}f(e,t,r,{once:!0}),"error"!==t&&function(e,t,i){"function"==typeof e.on&&f(e,"error",t,i)}(e,s,{once:!0})}))},s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var r=10;function o(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function l(e){return void 0===e._maxListeners?s.defaultMaxListeners:e._maxListeners}function a(e,t,i,n){var s,r,a,h;if(o(i),void 0===(r=e._events)?(r=e._events=Object.create(null),e._eventsCount=0):(void 0!==r.newListener&&(e.emit("newListener",t,i.listener?i.listener:i),r=e._events),a=r[t]),void 0===a)a=r[t]=i,++e._eventsCount;else if("function"==typeof a?a=r[t]=n?[i,a]:[a,i]:n?a.unshift(i):a.push(i),(s=l(e))>0&&a.length>s&&!a.warned){a.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=a.length,h=u,console&&console.warn&&console.warn(h)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function u(e,t,i){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:i},s=h.bind(n);return s.listener=i,n.wrapFn=s,s}function c(e,t,i){var n=e._events;if(void 0===n)return[];var s=n[t];return void 0===s?[]:"function"==typeof s?i?[s.listener||s]:[s]:i?function(e){for(var t=new Array(e.length),i=0;i0&&(o=t[0]),o instanceof Error)throw o;var l=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw l.context=o,l}var a=r[e];if(void 0===a)return!1;if("function"==typeof a)i(a,this,t);else{var h=a.length,u=d(a,h);for(n=0;n=0;r--)if(i[r]===t||i[r].listener===t){l=i[r].listener,s=r;break}if(s<0)return this;0===s?i.shift():function(e,t){for(;t+1=0;n--)this.removeListener(e,t[n]);return this},s.prototype.listeners=function(e){return c(this,e,!0)},s.prototype.rawListeners=function(e){return c(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},s.prototype.listenerCount=p,s.prototype.eventNames=function(){return this._eventsCount>0?e(this._events):[]},I.exports}();const B={fr:{name:"France",bbox:[[-4.59235,41.380007],[9.560016,51.148506]]},us:{name:"United States",bbox:[[-171.791111,18.91619],[-66.96466,71.357764]]},ru:{name:"Russia",bbox:[[19.66064,41.151416],[190.10042,81.2504]]},ca:{name:"Canada",bbox:[[-140.99778,41.675105],[-52.648099,83.23324]]}},j={de:"Suche",it:"Ricerca",en:"Search",nl:"Zoeken",fr:"Chercher",ca:"Cerca",he:"\u05dc\u05d7\u05e4\u05e9",ja:"\u30b5\u30fc\u30c1",lv:"Mekl\u0113t",pt:"Procurar",sr:"\u041f\u0440\u0435\u0442\u0440\u0430\u0433\u0430",zh:"\u641c\u7d22",cs:"Vyhled\xe1v\xe1n\xed",hu:"Keres\xe9s",ka:"\u10eb\u10d8\u10d4\u10d1\u10d0",nb:"S\xf8ke",sk:"Vyh\u013ead\xe1vanie",th:"\u0e04\u0e49\u0e19\u0e2b\u0e32",fi:"Hae",is:"Leita",ko:"\uc218\uc0c9",pl:"Szukaj",sl:"Iskanje",fa:"\u062c\u0633\u062a\u062c\u0648",ru:"\u041f\u043e\u0438\u0441\u043a"},S=/(-?\d+\.?\d*)[, ]+(-?\d+\.?\d*)[ ]*$/;class F{constructor(e,t){this.options={zoom:16,flyTo:!0,trackProximity:!0,showResultsWhileTyping:!1,minLength:2,reverseGeocode:!1,limit:5,enableEventLogging:!0,marker:!0,popup:!1,maplibregl:void 0,collapsed:!1,clearAndBlurOnEsc:!1,clearOnBlur:!1,proximityMinZoom:9,getItemValue:e=>void 0!==e.text?e.text:e.place_name,render:function(e){if(!e.geometry){const t=e.text,i=t.toLowerCase().indexOf(this.query.toLowerCase()),n=this.query.length;return'
'+t.substring(0,i)+''+t.substring(i,i+n)+""+t.substring(i+n)+"
"}const t=e.place_name.split(",");return'
'+t[0]+'
'+t.splice(1,t.length).join(",")+"
"},popupRender:e=>{const t=e.place_name.split(",");return'"},showResultMarkers:!0,debounceSearch:200},this._eventEmitter=new A.EventEmitter,this.options=P({},this.options,t),this.fresh=!0,this.lastSelected=null,this.geocoderApi=e}addTo(e){function t(e,t){if(!document.body.contains(t))throw new Error("Element provided to #addTo() exists, but is not in the DOM");const i=e.onAdd();t.appendChild(i)}if(e instanceof HTMLElement)t(this,e);else if("string"==typeof e){const i=document.querySelectorAll(e);if(0===i.length)throw new Error("Element "+e+"not found.");if(i.length>1)throw new Error("Geocoder can only be added to a single html element");t(this,i[0])}else{if(!("addControl"in e))throw new Error("Error: addTo must be a maplibre-gl-js map, an html element, or a CSS selector query for a single html element");e.addControl(this)}}onAdd(e){if(e&&"string"!=typeof e&&(this._map=e),this.setLanguage(),this.options.localGeocoderOnly&&!this.options.localGeocoder)throw new Error("A localGeocoder function must be specified to use localGeocoderOnly mode");this._onChange=this._onChange.bind(this),this._onKeyDown=this._onKeyDown.bind(this),this._onPaste=this._onPaste.bind(this),this._onBlur=this._onBlur.bind(this),this._showButton=this._showButton.bind(this),this._hideButton=this._hideButton.bind(this),this._onQueryResult=this._onQueryResult.bind(this),this.clear=this.clear.bind(this),this._updateProximity=this._updateProximity.bind(this),this._collapse=this._collapse.bind(this),this._unCollapse=this._unCollapse.bind(this),this._clear=this._clear.bind(this),this._clearOnBlur=this._clearOnBlur.bind(this);const t=this.container=document.createElement("div");t.className="maplibregl-ctrl-geocoder maplibregl-ctrl maplibregl-ctrl-geocoder maplibregl-ctrl";const i=this.createIcon("search",'');this._inputEl=document.createElement("input"),this._inputEl.type="text",this._inputEl.className="maplibregl-ctrl-geocoder--input",this.setPlaceholder(),this.options.collapsed&&(this._collapse(),this.container.addEventListener("mouseenter",this._unCollapse),this.container.addEventListener("mouseleave",this._collapse),this._inputEl.addEventListener("focus",this._unCollapse)),(this.options.collapsed||this.options.clearOnBlur)&&this._inputEl.addEventListener("blur",this._onBlur),this._inputEl.addEventListener("keydown",O(this._onKeyDown,this.options.debounceSearch)),this._inputEl.addEventListener("paste",this._onPaste),this._inputEl.addEventListener("change",this._onChange),this.container.addEventListener("mouseenter",this._showButton),this.container.addEventListener("mouseleave",this._hideButton);const n=document.createElement("div");n.classList.add("maplibregl-ctrl-geocoder--pin-right"),this._clearEl=document.createElement("button"),this._clearEl.setAttribute("type","button"),this._clearEl.setAttribute("aria-label","Clear"),this._clearEl.addEventListener("click",this.clear),this._clearEl.className="maplibregl-ctrl-geocoder--button";const s=this.createIcon("close",'');return this._clearEl.appendChild(s),this._loadingEl=this.createIcon("loading",''),n.appendChild(this._clearEl),n.appendChild(this._loadingEl),t.appendChild(i),t.appendChild(this._inputEl),t.appendChild(n),this._typeahead=new b(this._inputEl,[],{filter:!1,minLength:this.options.minLength,limit:this.options.limit,noInitialSelection:!0}),this.setRenderFunction(this.options.render),this._typeahead.getItemValue=this.options.getItemValue,this.mapMarker=null,this.resultMarkers=[],this._handleMarker=this._handleMarker.bind(this),this._handleResultMarkers=this._handleResultMarkers.bind(this),this._map&&(this.options.trackProximity&&(this._updateProximity(),this._map.on("moveend",this._updateProximity)),this._maplibregl=this.options.maplibregl,!this._maplibregl&&this.options.marker&&(console.error("No maplibregl detected in options. Map markers are disabled. Please set options.maplibregl."),this.options.marker=!1)),t}createIcon(e,t){const i=document.createElementNS("http://www.w3.org/2000/svg","svg");if(i.setAttribute("class","maplibregl-ctrl-geocoder--icon maplibregl-ctrl-geocoder--icon-"+e),i.setAttribute("viewBox","0 0 18 18"),i.setAttribute("xml:space","preserve"),i.setAttribute("width","18"),i.setAttribute("height","18"),"innerHTML"in i)i.innerHTML=t;else{const e=document.createElement("div");e.innerHTML=""+t.valueOf().toString()+"";const n=e.firstChild.firstChild;i.appendChild(n)}return i}onRemove(){return this.container.remove(),this.options.trackProximity&&this._map&&this._map.off("moveend",this._updateProximity),this._removeMarker(),this._map=null,this}_onPaste(e){const t=(e.clipboardData||window.clipboardData).getData("text");t.length>=this.options.minLength&&this.options.showResultsWhileTyping&&this._geocode(t)}_onKeyDown(e){const t=27,i=9;if(e.keyCode===t&&this.options.clearAndBlurOnEsc)return this._clear(e),this._inputEl.blur();const n=e.target&&e.target.shadowRoot?e.target.shadowRoot.activeElement:e.target;if(!(n?n.value:""))return this.fresh=!0,e.keyCode!==i&&this.clear(e),this._clearEl.style.display="none";if(!e.metaKey&&-1===[i,t,37,39,38,40].indexOf(e.keyCode)){if(13===e.keyCode){if(this.options.showResultsWhileTyping)return void(null==this._typeahead.selected&&this.geocoderApi.getSuggestions?this._geocode(n.value,!0):null==this._typeahead.selected&&this.options.showResultMarkers&&this._fitBoundsForMarkers());this._typeahead.selected||this._geocode(n.value)}n.value.length>=this.options.minLength&&this.options.showResultsWhileTyping&&this._geocode(n.value)}}_showButton(){this._inputEl.value.length>0&&(this._clearEl.style.display="block")}_hideButton(){this._typeahead.selected&&(this._clearEl.style.display="none")}_onBlur(e){this.options.clearOnBlur&&this._clearOnBlur(e),this.options.collapsed&&this._collapse()}_onChange(){const e=this._typeahead.selected;if(e&&!e.geometry)e.placeId?this._geocode(e.placeId,!0,!0):this._geocode(e.text,!0);else if(e&&JSON.stringify(e)!==this.lastSelected){if(this._clearEl.style.display="none",this.options.flyTo){let t;if(this._removeResultMarkers(),e.properties&&B[e.properties.short_code])t=P({},this.options.flyTo),this._map&&this._map.fitBounds(B[e.properties.short_code].bbox,t);else if(e.bbox){const i=e.bbox;t=P({},this.options.flyTo),this._map&&this._map.fitBounds([[i[0],i[1]],[i[2],i[3]]],t)}else{const i={zoom:this.options.zoom};t=P({},i,this.options.flyTo),e.center?t.center=e.center:e.geometry&&e.geometry.type&&"Point"===e.geometry.type&&e.geometry.coordinates&&(t.center=e.geometry.coordinates),this._map&&this._map.flyTo(t)}}this.options.marker&&this._maplibregl&&this._handleMarker(e),this._inputEl.focus(),this._inputEl.scrollLeft=0,this._inputEl.setSelectionRange(0,0),this.lastSelected=JSON.stringify(e),this._typeahead.selected=null,this._eventEmitter.emit("result",{result:e})}}_getConfigForRequest(){return["bbox","limit","proximity","countries","types","language","reverseMode"].reduce(((e,t)=>(this.options[t]&&(["countries","types","language"].indexOf(t)>-1?e[t]=this.options[t].split(/[\s,]+/):e[t]=this.options[t],"proximity"===t&&this.options[t]&&"number"==typeof this.options[t].longitude&&"number"==typeof this.options[t].latitude&&(e[t]=[this.options[t].longitude,this.options[t].latitude])),e)),{})}_geocode(e){return n(this,arguments,void 0,(function*(e,t=!1,i=!1){this._loadingEl.style.display="block",this._eventEmitter.emit("loading",{query:e});const n=this._getConfigForRequest(),s=this._createGeocodeRequest(n,e,t,i),r=this.options.localGeocoder&&this.options.localGeocoder(e)||[];try{const i=yield s;yield this._handleGeocodeResponse(i,n,e,t,r)}catch(o){this._handleGeocodeErrorResponse(o,r)}return s}))}_createGeocodeRequest(e,t,i,n){return this.options.localGeocoderOnly?Promise.resolve({}):this.options.reverseGeocode&&S.test(t)?this._createReverseGeocodeRequest(t,e):(e.query=t,this.geocoderApi.getSuggestions?i?this.geocoderApi.searchByPlaceId&&n?this.geocoderApi.searchByPlaceId(e):this.geocoderApi.forwardGeocode(e):this.geocoderApi.getSuggestions(e):this.geocoderApi.forwardGeocode(e))}_createReverseGeocodeRequest(e,t){const i=e.split(/[\s(,)?]+/).map((e=>parseFloat(e))).reverse();return t.query=i,t.limit=1,"proximity"in t&&delete t.proximity,this.geocoderApi.reverseGeocode(t)}_handleGeocodeResponse(e,t,i,s,r){return n(this,void 0,void 0,(function*(){this._loadingEl.style.display="none";let n={};n=e||{type:"FeatureCollection",features:[]},n.config=t,this.fresh&&(this.fresh=!1),n.features=n.features?r.concat(n.features):r;const o=this.options.externalGeocoder&&this.options.externalGeocoder(i,n.features,t)||Promise.resolve([]);try{const e=yield o;n.features=n.features?e.concat(n.features):e}catch(a){}this.options.filter&&n.features.length&&(n.features=n.features.filter(this.options.filter));let l=[];l="suggestions"in n?n.suggestions:"place"in n?[n.place]:n.features,l.length?(this._clearEl.style.display="block",this._typeahead.update(l),(!this.options.showResultsWhileTyping||s)&&this.options.showResultMarkers&&(n.features.length>0||"place"in n)&&this._fitBoundsForMarkers(),this._eventEmitter.emit("results",n)):(this._clearEl.style.display="none",this._typeahead.selected=null,this._renderNoResults(),this._eventEmitter.emit("results",n))}))}_handleGeocodeErrorResponse(e,t){this._loadingEl.style.display="none",t.length&&this.options.localGeocoder?(this._clearEl.style.display="block",this._typeahead.update(t)):(this._clearEl.style.display="none",this._typeahead.selected=null,this._renderError()),this._eventEmitter.emit("results",{features:t}),this._eventEmitter.emit("error",{error:e})}_clear(e){e&&e.preventDefault(),this._inputEl.value="",this._typeahead.selected=null,this._typeahead.clear(),this._onChange(),this._clearEl.style.display="none",this._removeMarker(),this._removeResultMarkers(),this.lastSelected=null,this._eventEmitter.emit("clear"),this.fresh=!0}clear(e){this._clear(e),this._inputEl.focus()}_clearOnBlur(e){e.relatedTarget&&this._clear(e)}_onQueryResult(e){if(!("features"in e))return;if(!e.features.length)return;const t=e.features[0];this._typeahead.selected=t,this._inputEl.value=t.place_name,this._onChange()}_updateProximity(){if(this._map)if(this._map.getZoom()>this.options.proximityMinZoom){const e=this._map.getCenter().wrap();this.setProximity({longitude:e.lng,latitude:e.lat})}else this.setProximity(null)}_collapse(){this._inputEl.value||this._inputEl===document.activeElement||this.container.classList.add("maplibregl-ctrl-geocoder--collapsed")}_unCollapse(){this.container.classList.remove("maplibregl-ctrl-geocoder--collapsed")}query(e){return n(this,void 0,void 0,(function*(){const t=yield this._geocode(e);this._onQueryResult(t)}))}_renderError(){this._renderMessage("
There was an error reaching the server
")}_renderNoResults(){this._renderMessage("
No results found
")}_renderMessage(e){this._typeahead.update([]),this._typeahead.selected=null,this._typeahead.clear(),this._typeahead.renderError(e)}_getPlaceholderText(){if(this.options.placeholder)return this.options.placeholder;if(this.options.language){const e=this.options.language.split(",")[0],t=M.language(e),i=j[t];if(i)return i}return"Search"}_fitBoundsForMarkers(){if(this._typeahead.data.length<1)return;const e=this._typeahead.data.filter((e=>"string"!=typeof e)).slice(0,this.options.limit);if(this._clearEl.style.display="none",this.options.flyTo&&this._maplibregl&&this._map){const t=P({},{padding:100},this.options.flyTo),i=new this._maplibregl.LngLatBounds;for(const n of e)i.extend(n.geometry.coordinates);this._map.fitBounds(i,t)}return e.length>0&&this._maplibregl&&this._handleResultMarkers(e),this}setInput(e){return this._inputEl.value=e,this._typeahead.selected=null,this._typeahead.clear(),e.length>=this.options.minLength&&this.options.showResultsWhileTyping&&this._geocode(e),this}setProximity(e){return this.options.proximity=e,this}getProximity(){return this.options.proximity}setRenderFunction(e){return e&&"function"==typeof e&&(this._typeahead.render=e),this}getRenderFunction(){return this._typeahead.render}setLanguage(e){return this.options.language=e||this.options.language||navigator.language,this}getLanguage(){return this.options.language}getZoom(){return this.options.zoom}setZoom(e){return this.options.zoom=e,this}getFlyTo(){return this.options.flyTo}setFlyTo(e){return this.options.flyTo=e,this}getPlaceholder(){return this.options.placeholder}setPlaceholder(e){return this.placeholder=e||this._getPlaceholderText(),this._inputEl.placeholder=this.placeholder,this._inputEl.setAttribute("aria-label",this.placeholder),this}getBbox(){return this.options.bbox}setBbox(e){return this.options.bbox=e,this}getCountries(){return this.options.countries}setCountries(e){return this.options.countries=e,this}getTypes(){return this.options.types}setTypes(e){return this.options.types=e,this}getMinLength(){return this.options.minLength}setMinLength(e){return this.options.minLength=e,this._typeahead&&(this._typeahead.options.minLength=e),this}getLimit(){return this.options.limit}setLimit(e){return this.options.limit=e,this._typeahead&&(this._typeahead.options.limit=e),this}getFilter(){return this.options.filter}setFilter(e){return this.options.filter=e,this}setGeocoderApi(e){return this.geocoderApi=e,this}getGeocoderApi(){return this.geocoderApi}_handleMarker(e){if(!this._map)return;this._removeMarker();const t=P({},{color:"#4668F2"},this.options.marker);let i;if(this.mapMarker=new this._maplibregl.Marker(t),this.options.popup){const t=P({},{},this.options.popup);i=new this._maplibregl.Popup(t).setHTML(this.options.popupRender(e))}return e.center?(this.mapMarker.setLngLat(e.center).addTo(this._map),this.options.popup&&this.mapMarker.setPopup(i)):e.geometry&&e.geometry.type&&"Point"===e.geometry.type&&e.geometry.coordinates&&(this.mapMarker.setLngLat(e.geometry.coordinates).addTo(this._map),this.options.popup&&this.mapMarker.setPopup(i)),this}_removeMarker(){this.mapMarker&&(this.mapMarker.remove(),this.mapMarker=null)}_handleResultMarkers(e){if(!this._map)return;this._removeResultMarkers();let t=P({},{color:"#4668F2"},this.options.showResultMarkers);for(const i of e){let e;if(this.options.showResultMarkers){this.options.showResultMarkers&&this.options.showResultMarkers.element&&(e=this.options.showResultMarkers.element.cloneNode(!0),t=P(t,{element:e}));const n=new this._maplibregl.Marker(P({},t,{element:e}));let s;if(this.options.popup){const e=P({},{},this.options.popup);s=new this._maplibregl.Popup(e).setHTML(this.options.popupRender(i))}i.center?(n.setLngLat(i.center).addTo(this._map),this.options.popup&&n.setPopup(s)):i.geometry&&i.geometry.type&&"Point"===i.geometry.type&&i.geometry.coordinates&&(n.setLngLat(i.geometry.coordinates).addTo(this._map),this.options.popup&&n.setPopup(s)),this.resultMarkers.push(n)}}return this}_removeResultMarkers(){this.resultMarkers&&this.resultMarkers.length>0&&(this.resultMarkers.forEach((function(e){e.remove()})),this.resultMarkers=[])}on(e,t){return this._eventEmitter.on(e,t),this}once(e){return new Promise((t=>{this._eventEmitter.once(e,t)}))}off(e,t){return this._eventEmitter.removeListener(e,t),this}}},8453:(e,t,i)=>{i.d(t,{R:()=>o,x:()=>l});var n=i(6540);const s={},r=n.createContext(s);function o(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/63.27b6da9c.js.LICENSE.txt b/assets/js/6635.bdfda45a.js.LICENSE.txt similarity index 100% rename from assets/js/63.27b6da9c.js.LICENSE.txt rename to assets/js/6635.bdfda45a.js.LICENSE.txt diff --git a/assets/js/6791.68e6ab7e.js b/assets/js/6791.68e6ab7e.js new file mode 100644 index 00000000..cbc8c65f --- /dev/null +++ b/assets/js/6791.68e6ab7e.js @@ -0,0 +1,2 @@ +/*! For license information please see 6791.68e6ab7e.js.LICENSE.txt */ +(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[6791],{5573:(t,e,n)=>{"use strict";var i=n(6368),r=n(7510),o="value",s="\n ",a={};function u(t){var e=Array.isArray(t);return function(n){var i,r=l(a.plainArray,n);if(r)return r;if(e&&n.length!==t.length)return"an array with "+t.length+" items";for(var o=0;ot.length?e:t}))}},a.equal=function(t){return function(e){if(e!==t)return JSON.stringify(t)}},a.oneOf=function(){var t=(Array.isArray(arguments[0])?arguments[0]:Array.prototype.slice.call(arguments)).map((function(t){return a.equal(t)}));return a.oneOfType.apply(this,t)},a.range=function(t){var e=t[0],n=t[1];return function(t){if(l(a.number,t)||tn)return"number between "+e+" & "+n+" (inclusive)"}},a.any=function(){},a.boolean=function(t){if("boolean"!=typeof t)return"boolean"},a.number=function(t){if("number"!=typeof t)return"number"},a.plainArray=function(t){if(!Array.isArray(t))return"array"},a.plainObject=function(t){if(!i(t))return"object"},a.string=function(t){if("string"!=typeof t)return"string"},a.func=function(t){if("function"!=typeof t)return"function"},a.validate=l,a.processMessage=c,t.exports=a},8122:(t,e,n)=>{"use strict";var i=n(7696);function r(t){this.origin=t.origin||"https://api.mapbox.com",this.endpoint="events/v2",this.access_token=t.accessToken,this.version="0.2.0",this.sessionID=this.generateSessionID(),this.userAgent=this.getUserAgent(),this.options=t,this.send=this.send.bind(this),this.countries=t.countries?t.countries.split(","):null,this.types=t.types?t.types.split(","):null,this.bbox=t.bbox?t.bbox:null,this.language=t.language?t.language.split(","):null,this.limit=t.limit?+t.limit:null,this.locale=navigator.language||null,this.enableEventLogging=this.shouldEnableLogging(t),this.eventQueue=new Array,this.flushInterval=t.flushInterval||1e3,this.maxQueueSize=t.maxQueueSize||100,this.timer=this.flushInterval?setTimeout(this.flush.bind(this),this.flushInterval):null,this.lastSentInput="",this.lastSentIndex=0}r.prototype={select:function(t,e){var n=this.getSelectedIndex(t,e),i=this.getEventPayload("search.select",e);if(i.resultIndex=n,i.resultPlaceName=t.place_name,i.resultId=t.id,(n!==this.lastSentIndex||i.queryString!==this.lastSentInput)&&-1!=n&&(this.lastSentIndex=n,this.lastSentInput=i.queryString,i.queryString))return this.push(i)},start:function(t){var e=this.getEventPayload("search.start",t);if(e.queryString)return this.push(e)},keyevent:function(t,e){if(t.key&&!t.metaKey&&-1===[9,27,37,39,13,38,40].indexOf(t.keyCode)){var n=this.getEventPayload("search.keystroke",e);if(n.lastAction=t.key,n.queryString)return this.push(n)}},send:function(t,e){if(!this.enableEventLogging)return e?e():void 0;var n=this.getRequestOptions(t);this.request(n,function(t){return t?this.handleError(t,e):e?e():void 0}.bind(this))},getRequestOptions:function(t){return Array.isArray(t)||(t=[t]),{method:"POST",host:this.origin,path:this.endpoint+"?access_token="+this.access_token,headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}},getEventPayload:function(t,e){var n;n=e.options.proximity?[e.options.proximity.longitude,e.options.proximity.latitude]:null;var i=e._map?e._map.getZoom():void 0,r={event:t,created:+new Date,sessionIdentifier:this.sessionID,country:this.countries,userAgent:this.userAgent,language:this.language,bbox:this.bbox,types:this.types,endpoint:"mapbox.places",autocomplete:e.options.autocomplete,fuzzyMatch:e.options.fuzzyMatch,proximity:n,limit:e.options.limit,routing:e.options.routing,worldview:e.options.worldview,mapZoom:i,keyboardLocale:this.locale};return"search.select"===t?r.queryString=e.inputString:"search.select"!=t&&e._inputEl?r.queryString=e._inputEl.value:r.queryString=e.inputString,r},request:function(t,e){var n=new XMLHttpRequest;for(var i in n.onreadystatechange=function(){if(4==this.readyState)return 204==this.status?e(null):e(this.statusText)},n.open(t.method,t.host+"/"+t.path,!0),t.headers){var r=t.headers[i];n.setRequestHeader(i,r)}n.send(t.body)},handleError:function(t,e){if(e)return e(t)},generateSessionID:function(){return i()},getUserAgent:function(){return"mapbox-gl-geocoder."+this.version+"."+navigator.userAgent},getSelectedIndex:function(t,e){if(e._typeahead){var n=e._typeahead.data,i=t.id;return n.map((function(t){return t.id})).indexOf(i)}},shouldEnableLogging:function(t){return!1!==t.enableEventLogging&&((!t.origin||-1!=t.origin.indexOf("api.mapbox.com"))&&(!t.localGeocoder&&!t.filter))},flush:function(){this.eventQueue.length>0&&(this.send(this.eventQueue),this.eventQueue=new Array),this.timer&&clearTimeout(this.timer),this.flushInterval&&(this.timer=setTimeout(this.flush.bind(this),this.flushInterval))},push:function(t,e){this.eventQueue.push(t),(this.eventQueue.length>=this.maxQueueSize||e)&&this.flush()},remove:function(){this.flush()}},t.exports=r},7265:t=>{t.exports={fr:{name:"France",bbox:[[-4.59235,41.380007],[9.560016,51.148506]]},us:{name:"United States",bbox:[[-171.791111,18.91619],[-66.96466,71.357764]]},ru:{name:"Russia",bbox:[[19.66064,41.151416],[190.10042,81.2504]]},ca:{name:"Canada",bbox:[[-140.99778,41.675105],[-52.648099,83.23324]]}}},5915:(t,e,n)=>{"use strict";var i=n(3326),r=n(181),o=n(7510),s=n(7007).EventEmitter,a=n(7265),u=n(7995),l=n(5663),c=n(8122),h=n(7906),p=n(1929);const f=0,d=1,g=2;function v(t){this._eventEmitter=new s,this.options=o({},this.options,t),this.inputString="",this.fresh=!0,this.lastSelected=null}v.prototype={options:{zoom:16,flyTo:!0,trackProximity:!0,minLength:2,reverseGeocode:!1,limit:5,origin:"https://api.mapbox.com",enableEventLogging:!0,marker:!0,mapboxgl:null,collapsed:!1,clearAndBlurOnEsc:!1,clearOnBlur:!1,getItemValue:function(t){return t.place_name},render:function(t){var e=t.place_name.split(",");return'
'+e[0]+'
'+e.splice(1,e.length).join(",")+"
"}},addTo:function(t){function e(t,e){if(!document.body.contains(e))throw new Error("Element provided to #addTo() exists, but is not in the DOM");const n=t.onAdd();e.appendChild(n)}if(t._controlContainer)t.addControl(this);else if(t instanceof HTMLElement)e(this,t);else{if("string"!=typeof t)throw new Error("Error: addTo must be a mapbox-gl-js map, an html element, or a CSS selector query for a single html element");{const n=document.querySelectorAll(t);if(0===n.length)throw new Error("Element ",t,"not found.");if(n.length>1)throw new Error("Geocoder can only be added to a single html element");e(this,n[0])}}},onAdd:function(t){if(t&&"string"!=typeof t&&(this._map=t),this.setLanguage(),this.options.localGeocoderOnly||(this.geocoderService=l(u({accessToken:this.options.accessToken,origin:this.options.origin}))),this.options.localGeocoderOnly&&!this.options.localGeocoder)throw new Error("A localGeocoder function must be specified to use localGeocoderOnly mode");this.eventManager=new c(this.options),this._onChange=this._onChange.bind(this),this._onKeyDown=this._onKeyDown.bind(this),this._onPaste=this._onPaste.bind(this),this._onBlur=this._onBlur.bind(this),this._showButton=this._showButton.bind(this),this._hideButton=this._hideButton.bind(this),this._onQueryResult=this._onQueryResult.bind(this),this.clear=this.clear.bind(this),this._updateProximity=this._updateProximity.bind(this),this._collapse=this._collapse.bind(this),this._unCollapse=this._unCollapse.bind(this),this._clear=this._clear.bind(this),this._clearOnBlur=this._clearOnBlur.bind(this);var e=this.container=document.createElement("div");e.className="mapboxgl-ctrl-geocoder mapboxgl-ctrl";var n=this.createIcon("search",'');this._inputEl=document.createElement("input"),this._inputEl.type="text",this._inputEl.className="mapboxgl-ctrl-geocoder--input",this.setPlaceholder(),this.options.collapsed&&(this._collapse(),this.container.addEventListener("mouseenter",this._unCollapse),this.container.addEventListener("mouseleave",this._collapse),this._inputEl.addEventListener("focus",this._unCollapse)),(this.options.collapsed||this.options.clearOnBlur)&&this._inputEl.addEventListener("blur",this._onBlur),this._inputEl.addEventListener("keydown",r(this._onKeyDown,200)),this._inputEl.addEventListener("paste",this._onPaste),this._inputEl.addEventListener("change",this._onChange),this.container.addEventListener("mouseenter",this._showButton),this.container.addEventListener("mouseleave",this._hideButton),this._inputEl.addEventListener("keyup",function(t){this.eventManager.keyevent(t,this)}.bind(this));var o=document.createElement("div");o.classList.add("mapboxgl-ctrl-geocoder--pin-right"),this._clearEl=document.createElement("button"),this._clearEl.setAttribute("aria-label","Clear"),this._clearEl.addEventListener("click",this.clear),this._clearEl.className="mapboxgl-ctrl-geocoder--button";var s=this.createIcon("close",'');return this._clearEl.appendChild(s),this._loadingEl=this.createIcon("loading",''),o.appendChild(this._clearEl),o.appendChild(this._loadingEl),e.appendChild(n),e.appendChild(this._inputEl),e.appendChild(o),this._typeahead=new i(this._inputEl,[],{filter:!1,minLength:this.options.minLength,limit:this.options.limit}),this.setRenderFunction(this.options.render),this._typeahead.getItemValue=this.options.getItemValue,this.mapMarker=null,this._handleMarker=this._handleMarker.bind(this),this._map&&(this.options.trackProximity&&(this._updateProximity(),this._map.on("moveend",this._updateProximity)),this._mapboxgl=this.options.mapboxgl,!this._mapboxgl&&this.options.marker&&(console.error("No mapboxgl detected in options. Map markers are disabled. Please set options.mapboxgl."),this.options.marker=!1)),e},createIcon:function(t,e){var n=document.createElementNS("http://www.w3.org/2000/svg","svg");if(n.setAttribute("class","mapboxgl-ctrl-geocoder--icon mapboxgl-ctrl-geocoder--icon-"+t),n.setAttribute("viewBox","0 0 18 18"),n.setAttribute("xml:space","preserve"),n.setAttribute("width",18),n.setAttribute("height",18),"innerHTML"in n)n.innerHTML=e;else{var i=document.createElement("div");i.innerHTML=""+e.valueOf().toString()+"";var r=i.firstChild.firstChild;n.appendChild(r)}return n},onRemove:function(){return this.container.parentNode.removeChild(this.container),this.options.trackProximity&&this._map&&this._map.off("moveend",this._updateProximity),this._removeMarker(),this._map=null,this},_onPaste:function(t){var e=(t.clipboardData||window.clipboardData).getData("text");e.length>=this.options.minLength&&this._geocode(e)},_onKeyDown:function(t){var e=27,n=9;if(t.keyCode===e&&this.options.clearAndBlurOnEsc)return this._clear(t),this._inputEl.blur();var i=t.target&&t.target.shadowRoot?t.target.shadowRoot.activeElement:t.target;if(!(i?i.value:""))return this.fresh=!0,t.keyCode!==n&&this.clear(t),this._clearEl.style.display="none";t.metaKey||-1!==[n,e,37,39,13,38,40].indexOf(t.keyCode)||i.value.length>=this.options.minLength&&this._geocode(i.value)},_showButton:function(){this._typeahead.selected&&(this._clearEl.style.display="block")},_hideButton:function(){this._typeahead.selected&&(this._clearEl.style.display="none")},_onBlur:function(t){this.options.clearOnBlur&&this._clearOnBlur(t),this.options.collapsed&&this._collapse()},_onChange:function(){var t=this._typeahead.selected;if(t&&JSON.stringify(t)!==this.lastSelected){var e;if(this._clearEl.style.display="none",this.options.flyTo)if(t.properties&&a[t.properties.short_code])e=o({},this.options.flyTo),this._map&&this._map.fitBounds(a[t.properties.short_code].bbox,e);else if(t.bbox){var n=t.bbox;e=o({},this.options.flyTo),this._map&&this._map.fitBounds([[n[0],n[1]],[n[2],n[3]]],e)}else{var i={zoom:this.options.zoom};e=o({},i,this.options.flyTo),t.center?e.center=t.center:t.geometry&&t.geometry.type&&"Point"===t.geometry.type&&t.geometry.coordinates&&(e.center=t.geometry.coordinates),this._map&&this._map.flyTo(e)}this.options.marker&&this._mapboxgl&&this._handleMarker(t),this._inputEl.focus(),this._inputEl.scrollLeft=0,this._inputEl.setSelectionRange(0,0),this.lastSelected=JSON.stringify(t),this._eventEmitter.emit("result",{result:t}),this.eventManager.select(t,this)}},_requestType:function(t,e){return t.localGeocoderOnly?d:t.reverseGeocode&&/^[ ]*(-?\d+\.?\d*)[, ]+(-?\d+\.?\d*)[ ]*$/.test(e)?g:f},_setupConfig:function(t,e){const n=/[\s,]+/;var i=this,r=["bbox","limit","proximity","countries","types","language","reverseMode","mode","autocomplete","fuzzyMatch","routing","worldview"].reduce((function(t,e){if(void 0===i.options[e]||null===i.options[e])return t;["countries","types","language"].indexOf(e)>-1?t[e]=i.options[e].split(n):t[e]=i.options[e];const r="number"==typeof i.options[e].longitude&&"number"==typeof i.options[e].latitude;if("proximity"===e&&r){const n=i.options[e].longitude,r=i.options[e].latitude;t[e]=[n,r]}return t}),{});switch(t){case g:var s=e.split(n).map((function(t){return parseFloat(t,10)})).reverse();!r.types||r.types[0],r=o(r,{query:s,limit:1}),["proximity","autocomplete","fuzzyMatch","bbox"].forEach((function(t){t in r&&delete r[t]}));break;case f:/^[ ]*(-?\d+\.?\d*)[, ]+(-?\d+\.?\d*)*[ ]*$/.test(e)&&(e=e.replace(/,/g," ")),r=o(r,{query:e})}return r},_geocode:function(t){this.inputString=t,this._loadingEl.style.display="block",this._eventEmitter.emit("loading",{query:t});const e=this._requestType(this.options,t),n=this._setupConfig(e,t);var i;switch(e){case d:i=Promise.resolve();break;case f:i=this.geocoderService.forwardGeocode(n).send();break;case g:i=this.geocoderService.reverseGeocode(n).send()}var r=this.options.localGeocoder&&this.options.localGeocoder(t)||[],o=[],s=null;return i.catch(function(t){s=t}.bind(this)).then(function(e){this._loadingEl.style.display="none";var i={};return e?"200"==e.statusCode&&((i=e.body).request=e.request,i.headers=e.headers):i={type:"FeatureCollection",features:[]},i.config=n,this.fresh&&(this.eventManager.start(this),this.fresh=!1),i.features=i.features?r.concat(i.features):r,this.options.externalGeocoder?(o=this.options.externalGeocoder(t,i.features)||[]).then((function(t){return i.features=i.features?t.concat(i.features):t,i}),(function(){return i})):i}.bind(this)).then(function(t){if(s)throw s;this.options.filter&&t.features.length&&(t.features=t.features.filter(this.options.filter)),t.features.length?(this._clearEl.style.display="block",this._eventEmitter.emit("results",t),this._typeahead.update(t.features)):(this._clearEl.style.display="none",this._typeahead.selected=null,this._renderNoResults(),this._eventEmitter.emit("results",t))}.bind(this)).catch(function(t){this._loadingEl.style.display="none",r.length&&this.options.localGeocoder||o.length&&this.options.externalGeocoder?(this._clearEl.style.display="block",this._typeahead.update(r)):(this._clearEl.style.display="none",this._typeahead.selected=null,this._renderError()),this._eventEmitter.emit("results",{features:r}),this._eventEmitter.emit("error",{error:t})}.bind(this)),i},_clear:function(t){t&&t.preventDefault(),this._inputEl.value="",this._typeahead.selected=null,this._typeahead.clear(),this._onChange(),this._clearEl.style.display="none",this._removeMarker(),this.lastSelected=null,this._eventEmitter.emit("clear"),this.fresh=!0},clear:function(t){this._clear(t),this._inputEl.focus()},_clearOnBlur:function(t){t.relatedTarget&&this._clear(t)},_onQueryResult:function(t){var e=t.body;if(e.features.length){var n=e.features[0];this._typeahead.selected=n,this._inputEl.value=n.place_name,this._onChange()}},_updateProximity:function(){if(this._map)if(this._map.getZoom()>9){var t=this._map.getCenter().wrap();this.setProximity({longitude:t.lng,latitude:t.lat})}else this.setProximity(null)},_collapse:function(){this._inputEl.value||this._inputEl===document.activeElement||this.container.classList.add("mapboxgl-ctrl-geocoder--collapsed")},_unCollapse:function(){this.container.classList.remove("mapboxgl-ctrl-geocoder--collapsed")},query:function(t){return this._geocode(t).then(this._onQueryResult),this},_renderError:function(){this._renderMessage("
There was an error reaching the server
")},_renderNoResults:function(){this._renderMessage("
No results found
")},_renderMessage:function(t){this._typeahead.update([]),this._typeahead.selected=null,this._typeahead.clear(),this._typeahead.renderError(t)},_getPlaceholderText:function(){if(this.options.placeholder)return this.options.placeholder;if(this.options.language){var t=this.options.language.split(",")[0],e=p.language(t),n=h.placeholder[e];if(n)return n}return"Search"},setInput:function(t){return this._inputEl.value=t,this._typeahead.selected=null,this._typeahead.clear(),t.length>=this.options.minLength&&this._geocode(t),this},setProximity:function(t){return this.options.proximity=t,this},getProximity:function(){return this.options.proximity},setRenderFunction:function(t){return t&&"function"==typeof t&&(this._typeahead.render=t),this},getRenderFunction:function(){return this._typeahead.render},setLanguage:function(t){var e=navigator.language||navigator.userLanguage||navigator.browserLanguage;return this.options.language=t||this.options.language||e,this},getLanguage:function(){return this.options.language},getZoom:function(){return this.options.zoom},setZoom:function(t){return this.options.zoom=t,this},getFlyTo:function(){return this.options.flyTo},setFlyTo:function(t){return this.options.flyTo=t,this},getPlaceholder:function(){return this.options.placeholder},setPlaceholder:function(t){return this.placeholder=t||this._getPlaceholderText(),this._inputEl.placeholder=this.placeholder,this._inputEl.setAttribute("aria-label",this.placeholder),this},getBbox:function(){return this.options.bbox},setBbox:function(t){return this.options.bbox=t,this},getCountries:function(){return this.options.countries},setCountries:function(t){return this.options.countries=t,this},getTypes:function(){return this.options.types},setTypes:function(t){return this.options.types=t,this},getMinLength:function(){return this.options.minLength},setMinLength:function(t){return this.options.minLength=t,this._typeahead&&(this._typeahead.options.minLength=t),this},getLimit:function(){return this.options.limit},setLimit:function(t){return this.options.limit=t,this._typeahead&&(this._typeahead.options.limit=t),this},getFilter:function(){return this.options.filter},setFilter:function(t){return this.options.filter=t,this},setOrigin:function(t){return this.options.origin=t,this.geocoderService=l(u({accessToken:this.options.accessToken,origin:this.options.origin})),this},getOrigin:function(){return this.options.origin},setAutocomplete:function(t){return this.options.autocomplete=t,this},getAutocomplete:function(){return this.options.autocomplete},setFuzzyMatch:function(t){return this.options.fuzzyMatch=t,this},getFuzzyMatch:function(){return this.options.fuzzyMatch},setRouting:function(t){return this.options.routing=t,this},getRouting:function(){return this.options.routing},setWorldview:function(t){return this.options.worldview=t,this},getWorldview:function(){return this.options.worldview},_handleMarker:function(t){if(this._map){this._removeMarker();var e=o({},{color:"#4668F2"},this.options.marker);return this.mapMarker=new this._mapboxgl.Marker(e),t.center?this.mapMarker.setLngLat(t.center).addTo(this._map):t.geometry&&t.geometry.type&&"Point"===t.geometry.type&&t.geometry.coordinates&&this.mapMarker.setLngLat(t.geometry.coordinates).addTo(this._map),this}},_removeMarker:function(){this.mapMarker&&(this.mapMarker.remove(),this.mapMarker=null)},on:function(t,e){return this._eventEmitter.on(t,e),this},off:function(t,e){return this._eventEmitter.removeListener(t,e),this.eventManager.remove(),this}},t.exports=v},7906:t=>{"use strict";t.exports={placeholder:{de:"Suche",it:"Ricerca",en:"Search",nl:"Zoeken",fr:"Chercher",ca:"Cerca",he:"\u05dc\u05d7\u05e4\u05e9",ja:"\u30b5\u30fc\u30c1",lv:"Mekl\u0113t",pt:"Procurar",sr:"\u041f\u0440\u0435\u0442\u0440\u0430\u0433\u0430",zh:"\u641c\u7d22",cs:"Vyhled\xe1v\xe1n\xed",hu:"Keres\xe9s",ka:"\u10eb\u10d8\u10d4\u10d1\u10d0",nb:"S\xf8ke",sk:"Vyh\u013ead\xe1vanie",th:"\u0e04\u0e49\u0e19\u0e2b\u0e32",fi:"Hae",is:"Leita",ko:"\uc218\uc0c9",pl:"Szukaj",sl:"Iskanje",fa:"\u062c\u0633\u062a\u062c\u0648",ru:"\u041f\u043e\u0438\u0441\u043a"}}},7995:(t,e,n)=>{"use strict";var i=n(3086);t.exports=i},3086:(t,e,n)=>{"use strict";var i=n(9136),r=n(3115);function o(t){r.call(this,t)}o.prototype=Object.create(r.prototype),o.prototype.constructor=o,o.prototype.sendRequest=i.browserSend,o.prototype.abortRequest=i.browserAbort,t.exports=function(t){return new o(t)}},9136:(t,e,n)=>{"use strict";var i=n(511),r=n(8040),o=n(8910),s=n(3349),a={};function u(t){var e=t.total,n=t.loaded;return{total:e,transferred:n,percent:100*n/e}}function l(t,e){return new Promise((function(n,i){e.onprogress=function(e){t.emitter.emit(o.EVENT_PROGRESS_DOWNLOAD,u(e))};var s=t.file;s&&(e.upload.onprogress=function(e){t.emitter.emit(o.EVENT_PROGRESS_UPLOAD,u(e))}),e.onerror=function(t){i(t)},e.onabort=function(){var e=new r({request:t,type:o.ERROR_REQUEST_ABORTED});i(e)},e.onload=function(){if(delete a[t.id],e.status<200||e.status>=400){var o=new r({request:t,body:e.response,statusCode:e.status});i(o)}else n(e)};var l=t.body;"string"==typeof l?e.send(l):l?e.send(JSON.stringify(l)):s?e.send(s):e.send(),a[t.id]=e})).then((function(e){return function(t,e){return new i(t,{body:e.response,headers:s(e.getAllResponseHeaders()),statusCode:e.status})}(t,e)}))}function c(t,e){var n=t.url(e),i=new window.XMLHttpRequest;return i.open(t.method,n),Object.keys(t.headers).forEach((function(e){i.setRequestHeader(e,t.headers[e])})),i}t.exports={browserAbort:function(t){var e=a[t.id];e&&(e.abort(),delete a[t.id])},sendRequestXhr:l,browserSend:function(t){return Promise.resolve().then((function(){var e=c(t,t.client.accessToken);return l(t,e)}))},createRequestXhr:c}},3115:(t,e,n)=>{"use strict";var i=n(4256),r=n(75),o=n(8910);function s(t){if(!t||!t.accessToken)throw new Error("Cannot create a client without an access token");i(t.accessToken),this.accessToken=t.accessToken,this.origin=t.origin||o.API_ORIGIN}s.prototype.createRequest=function(t){return new r(this,t)},t.exports=s},8040:(t,e,n)=>{"use strict";var i=n(8910);t.exports=function(t){var e,n=t.type||i.ERROR_HTTP;if(t.body)try{e=JSON.parse(t.body)}catch(o){e=t.body}else e=null;var r=t.message||null;r||("string"==typeof e?r=e:e&&"string"==typeof e.message?r=e.message:n===i.ERROR_REQUEST_ABORTED&&(r="Request aborted")),this.message=r,this.type=n,this.statusCode=t.statusCode||null,this.request=t.request,this.body=e}},75:(t,e,n)=>{"use strict";var i=n(4256),r=n(7510),o=n(228),s=n(5452),a=n(8910),u=1;function l(t,e){if(!t)throw new Error("MapiRequest requires a client");if(!e||!e.path||!e.method)throw new Error("MapiRequest requires an options object with path and method properties");var n={};e.body&&(n["content-type"]="application/json");var i=r(n,e.headers),s=Object.keys(i).reduce((function(t,e){return t[e.toLowerCase()]=i[e],t}),{});this.id=u++,this._options=e,this.emitter=new o,this.client=t,this.response=null,this.error=null,this.sent=!1,this.aborted=!1,this.path=e.path,this.method=e.method,this.origin=e.origin||t.origin,this.query=e.query||{},this.params=e.params||{},this.body=e.body||null,this.file=e.file||null,this.encoding=e.encoding||"utf8",this.sendFileAs=e.sendFileAs||null,this.headers=s}l.prototype.url=function(t){var e=s.prependOrigin(this.path,this.origin);e=s.appendQueryObject(e,this.query);var n=this.params,o=null==t?this.client.accessToken:t;if(o){e=s.appendQueryParam(e,"access_token",o);var a=i(o).user;n=r({ownerId:a},n)}return e=s.interpolateRouteParams(e,n),e},l.prototype.send=function(){var t=this;if(t.sent)throw new Error("This request has already been sent. Check the response and error properties. Create a new request with clone().");return t.sent=!0,t.client.sendRequest(t).then((function(e){return t.response=e,t.emitter.emit(a.EVENT_RESPONSE,e),e}),(function(e){throw t.error=e,t.emitter.emit(a.EVENT_ERROR,e),e}))},l.prototype.abort=function(){this._nextPageRequest&&(this._nextPageRequest.abort(),delete this._nextPageRequest),this.response||this.error||this.aborted||(this.aborted=!0,this.client.abortRequest(this))},l.prototype.eachPage=function(t){var e=this;function n(n){t(null,n,(function(){delete e._nextPageRequest;var t=n.nextPage();t&&(e._nextPageRequest=t,r(t))}))}function i(e){t(e,null,(function(){}))}function r(t){t.send().then(n,i)}r(this)},l.prototype.clone=function(){return this._extend()},l.prototype._extend=function(t){var e=r(this._options,t);return new l(this.client,e)},t.exports=l},511:(t,e,n)=>{"use strict";var i=n(7857);function r(t,e){this.request=t,this.headers=e.headers,this.rawBody=e.body,this.statusCode=e.statusCode;try{this.body=JSON.parse(e.body||"{}")}catch(n){this.body=e.body}this.links=i(this.headers.link)}r.prototype.hasNextPage=function(){return!!this.links.next},r.prototype.nextPage=function(){return this.hasNextPage()?this.request._extend({path:this.links.next.url}):null},t.exports=r},8910:t=>{"use strict";t.exports={API_ORIGIN:"https://api.mapbox.com",EVENT_PROGRESS_DOWNLOAD:"downloadProgress",EVENT_PROGRESS_UPLOAD:"uploadProgress",EVENT_ERROR:"error",EVENT_RESPONSE:"response",ERROR_HTTP:"HttpError",ERROR_REQUEST_ABORTED:"RequestAbortedError"}},3349:t=>{"use strict";t.exports=function(t){var e={};return t?(t.trim().split(/[\r|\n]+/).forEach((function(t){var n=function(t){var e=t.indexOf(":");return{name:t.substring(0,e).trim().toLowerCase(),value:t.substring(e+1).trim()}}(t);e[n.name]=n.value})),e):e}},7857:t=>{"use strict";t.exports=function(t){return t?t.split(/,\s*]*)>(.*)/);if(!e)return null;var n=e[1],i=e[2].split(";"),r=null,o=i.reduce((function(t,e){var n=function(t){var e=t.match(/\s*(.+)\s*=\s*"?([^"]+)"?/);return e?{key:e[1],value:e[2]}:null}(e);return n?"rel"===n.key?(r||(r=n.value),t):(t[n.key]=n.value,t):t}),{});return r?{url:n,rel:r,params:o}:null}(e);return n?(n.rel.split(/\s+/).forEach((function(e){t[e]||(t[e]={url:n.url,params:n.params})})),t):t}),{}):{}}},5452:t=>{"use strict";function e(t){return Array.isArray(t)?t.map(encodeURIComponent).join(","):encodeURIComponent(String(t))}function n(t,n,i){if(!1===i||null===i)return t;var r=/\?/.test(t)?"&":"?",o=encodeURIComponent(n);return void 0!==i&&""!==i&&!0!==i&&(o+="="+e(i)),""+t+r+o}t.exports={appendQueryObject:function(t,e){if(!e)return t;var i=t;return Object.keys(e).forEach((function(t){var r=e[t];void 0!==r&&(Array.isArray(r)&&(r=r.filter((function(t){return null!=t})).join(",")),i=n(i,t,r))})),i},appendQueryParam:n,prependOrigin:function(t,e){if(!e)return t;if("http"===t.slice(0,4))return t;var n="/"===t[0]?"":"/";return""+e.replace(/\/$/,"")+n+t},interpolateRouteParams:function(t,n){return n?t.replace(/\/:([a-zA-Z0-9]+)/g,(function(t,i){var r=n[i];if(void 0===r)throw new Error("Unspecified route parameter "+i);return"/"+e(r)})):t}}},5663:(t,e,n)=>{"use strict";var i=n(7510),r=n(9414),o=n(7267),s=n(1087),a=n(7583),u={},l=["country","region","postcode","district","place","locality","neighborhood","address","poi","poi.landmark"];u.forwardGeocode=function(t){r.assertShape({query:r.required(r.string),mode:r.oneOf("mapbox.places","mapbox.places-permanent"),countries:r.arrayOf(r.string),proximity:r.oneOf(r.coordinates,"ip"),types:r.arrayOf(r.oneOf(l)),autocomplete:r.boolean,bbox:r.arrayOf(r.number),limit:r.number,language:r.arrayOf(r.string),routing:r.boolean,fuzzyMatch:r.boolean,worldview:r.string})(t),t.mode=t.mode||"mapbox.places";var e=s(i({country:t.countries},o(t,["proximity","types","autocomplete","bbox","limit","language","routing","fuzzyMatch","worldview"])));return this.client.createRequest({method:"GET",path:"/geocoding/v5/:mode/:query.json",params:o(t,["mode","query"]),query:e})},u.reverseGeocode=function(t){r.assertShape({query:r.required(r.coordinates),mode:r.oneOf("mapbox.places","mapbox.places-permanent"),countries:r.arrayOf(r.string),types:r.arrayOf(r.oneOf(l)),bbox:r.arrayOf(r.number),limit:r.number,language:r.arrayOf(r.string),reverseMode:r.oneOf("distance","score"),routing:r.boolean,worldview:r.string})(t),t.mode=t.mode||"mapbox.places";var e=s(i({country:t.countries},o(t,["country","types","bbox","limit","language","reverseMode","routing","worldview"])));return this.client.createRequest({method:"GET",path:"/geocoding/v5/:mode/:query.json",params:o(t,["mode","query"]),query:e})},t.exports=a(u)},7583:(t,e,n)=>{"use strict";var i=n(3115),r=n(3086);t.exports=function(t){return function(e){var n;n=i.prototype.isPrototypeOf(e)?e:r(e);var o=Object.create(t);return o.client=n,o}}},4086:t=>{"use strict";t.exports=function(t,e){return Object.keys(t).reduce((function(n,i){return n[i]=e(i,t[i]),n}),{})}},7267:t=>{"use strict";t.exports=function(t,e){var n=function(t,n){return-1!==e.indexOf(t)&&void 0!==n};return"function"==typeof e&&(n=e),Object.keys(t).filter((function(e){return n(e,t[e])})).reduce((function(e,n){return e[n]=t[n],e}),{})}},1087:(t,e,n)=>{"use strict";var i=n(4086);t.exports=function(t){return i(t,(function(t,e){return"boolean"==typeof e?JSON.stringify(e):e}))}},9414:(t,e,n)=>{"use strict";var i=n(7510),r=n(5573);t.exports=i(r,{file:function(t){if("undefined"!=typeof window){if(t instanceof n.g.Blob||t instanceof n.g.ArrayBuffer)return;return"Blob or ArrayBuffer"}if("string"!=typeof t&&void 0===t.pipe)return"Filename or Readable stream"},date:function(t){var e="date";if("boolean"==typeof t)return e;try{var n=new Date(t);if(n.getTime&&isNaN(n.getTime()))return e}catch(i){return e}},coordinates:function(t){return r.tuple(r.number,r.number)(t)},assertShape:function(t,e){return r.assert(r.strictShape(t),e)}})},4256:(t,e,n)=>{"use strict";var i=n(5914),r={};function o(t,e){return Object.prototype.hasOwnProperty.call(t,e)}t.exports=function(t){if(r[t])return r[t];var e=t.split("."),n=e[0],s=e[1];if(!s)throw new Error("Invalid token");var a=function(t){try{return JSON.parse(i.decode(t))}catch(e){throw new Error("Invalid token")}}(s),u={usage:n,user:a.u};return o(a,"a")&&(u.authorization=a.a),o(a,"exp")&&(u.expires=1e3*a.exp),o(a,"iat")&&(u.created=1e3*a.iat),o(a,"scopes")&&(u.scopes=a.scopes),o(a,"client")&&(u.client=a.client),o(a,"ll")&&(u.lastLogin=a.ll),o(a,"iu")&&(u.impersonator=a.iu),r[t]=u,u}},5914:function(t,e,n){var i;t=n.nmd(t),function(){var r=e,o=(t&&t.exports,"object"==typeof n.g&&n.g);o.global!==o&&o.window;var s=function(t){this.message=t};(s.prototype=new Error).name="InvalidCharacterError";var a=function(t){throw new s(t)},u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=/[\t\n\f\r ]/g,c={encode:function(t){t=String(t),/[^\0-\xFF]/.test(t)&&a("The string to be encoded contains characters outside of the Latin1 range.");for(var e,n,i,r,o=t.length%3,s="",l=-1,c=t.length-o;++l>18&63)+u.charAt(r>>12&63)+u.charAt(r>>6&63)+u.charAt(63&r);return 2==o?(e=t.charCodeAt(l)<<8,n=t.charCodeAt(++l),s+=u.charAt((r=e+n)>>10)+u.charAt(r>>4&63)+u.charAt(r<<2&63)+"="):1==o&&(r=t.charCodeAt(l),s+=u.charAt(r>>2)+u.charAt(r<<4&63)+"=="),s},decode:function(t){var e=(t=String(t).replace(l,"")).length;e%4==0&&(e=(t=t.replace(/==?$/,"")).length),(e%4==1||/[^+a-zA-Z0-9/]/.test(t))&&a("Invalid character: the string to be decoded is not correctly encoded.");for(var n,i,r=0,o="",s=-1;++s>(-2*r&6)));return o},version:"0.1.0"};void 0===(i=function(){return c}.call(e,n,e,t))||(t.exports=i)}()},228:t=>{"use strict";var e=Object.prototype.hasOwnProperty,n="~";function i(){}function r(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function o(t,e,i,o,s){if("function"!=typeof i)throw new TypeError("The listener must be a function");var a=new r(i,o||t,s),u=n?n+e:e;return t._events[u]?t._events[u].fn?t._events[u]=[t._events[u],a]:t._events[u].push(a):(t._events[u]=a,t._eventsCount++),t}function s(t,e){0==--t._eventsCount?t._events=new i:delete t._events[e]}function a(){this._events=new i,this._eventsCount=0}Object.create&&(i.prototype=Object.create(null),(new i).__proto__||(n=!1)),a.prototype.eventNames=function(){var t,i,r=[];if(0===this._eventsCount)return r;for(i in t=this._events)e.call(t,i)&&r.push(n?i.slice(1):i);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(t)):r},a.prototype.listeners=function(t){var e=n?n+t:t,i=this._events[e];if(!i)return[];if(i.fn)return[i.fn];for(var r=0,o=i.length,s=new Array(o);r{"use strict";var e,n="object"==typeof Reflect?Reflect:null,i=n&&"function"==typeof n.apply?n.apply:function(t,e,n){return Function.prototype.apply.call(t,e,n)};e=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)};var r=Number.isNaN||function(t){return t!=t};function o(){o.init.call(this)}t.exports=o,t.exports.once=function(t,e){return new Promise((function(n,i){function r(n){t.removeListener(e,o),i(n)}function o(){"function"==typeof t.removeListener&&t.removeListener("error",r),n([].slice.call(arguments))}g(t,e,o,{once:!0}),"error"!==e&&function(t,e,n){"function"==typeof t.on&&g(t,"error",e,n)}(t,r,{once:!0})}))},o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var s=10;function a(t){if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}function u(t){return void 0===t._maxListeners?o.defaultMaxListeners:t._maxListeners}function l(t,e,n,i){var r,o,s,l;if(a(n),void 0===(o=t._events)?(o=t._events=Object.create(null),t._eventsCount=0):(void 0!==o.newListener&&(t.emit("newListener",e,n.listener?n.listener:n),o=t._events),s=o[e]),void 0===s)s=o[e]=n,++t._eventsCount;else if("function"==typeof s?s=o[e]=i?[n,s]:[s,n]:i?s.unshift(n):s.push(n),(r=u(t))>0&&s.length>r&&!s.warned){s.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=t,c.type=e,c.count=s.length,l=c,console&&console.warn&&console.warn(l)}return t}function c(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function h(t,e,n){var i={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},r=c.bind(i);return r.listener=n,i.wrapFn=r,r}function p(t,e,n){var i=t._events;if(void 0===i)return[];var r=i[e];return void 0===r?[]:"function"==typeof r?n?[r.listener||r]:[r]:n?function(t){for(var e=new Array(t.length),n=0;n0&&(s=e[0]),s instanceof Error)throw s;var a=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw a.context=s,a}var u=o[t];if(void 0===u)return!1;if("function"==typeof u)i(u,this,e);else{var l=u.length,c=d(u,l);for(n=0;n=0;o--)if(n[o]===e||n[o].listener===e){s=n[o].listener,r=o;break}if(r<0)return this;0===r?n.shift():function(t,e){for(;e+1=0;i--)this.removeListener(t,e[i]);return this},o.prototype.listeners=function(t){return p(this,t,!0)},o.prototype.rawListeners=function(t){return p(this,t,!1)},o.listenerCount=function(t,e){return"function"==typeof t.listenerCount?t.listenerCount(e):f.call(t,e)},o.prototype.listenerCount=f,o.prototype.eventNames=function(){return this._eventsCount>0?e(this._events):[]}},4751:t=>{var e;e={},t.exports=e,e.simpleFilter=function(t,n){return n.filter((function(n){return e.test(t,n)}))},e.test=function(t,n){return null!==e.match(t,n)},e.match=function(t,e,n){n=n||{};var i,r=0,o=[],s=e.length,a=0,u=0,l=n.pre||"",c=n.post||"",h=n.caseSensitive&&e||e.toLowerCase();t=n.caseSensitive&&t||t.toLowerCase();for(var p=0;p{"use strict";var e=Object.prototype.toString;t.exports=function(t){var n;return"[object Object]"===e.call(t)&&(null===(n=Object.getPrototypeOf(t))||n===Object.getPrototypeOf({}))}},181:(t,e,n)=>{var i=/^\s+|\s+$/g,r=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,s=/^0o[0-7]+$/i,a=parseInt,u="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,l="object"==typeof self&&self&&self.Object===Object&&self,c=u||l||Function("return this")(),h=Object.prototype.toString,p=Math.max,f=Math.min,d=function(){return c.Date.now()};function g(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function v(t){if("number"==typeof t)return t;if(function(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&"[object Symbol]"==h.call(t)}(t))return NaN;if(g(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=g(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(i,"");var n=o.test(t);return n||s.test(t)?a(t.slice(2),n?2:8):r.test(t)?NaN:+t}t.exports=function(t,e,n){var i,r,o,s,a,u,l=0,c=!1,h=!1,m=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function y(e){var n=i,o=r;return i=r=void 0,l=e,s=t.apply(o,n)}function b(t){var n=t-u;return void 0===u||n>=e||n<0||h&&t-l>=o}function _(){var t=d();if(b(t))return x(t);a=setTimeout(_,function(t){var n=e-(t-u);return h?f(n,o-(t-l)):n}(t))}function x(t){return a=void 0,m&&i?y(t):(i=r=void 0,s)}function E(){var t=d(),n=b(t);if(i=arguments,r=this,u=t,n){if(void 0===a)return function(t){return l=t,a=setTimeout(_,e),c?y(t):s}(u);if(h)return a=setTimeout(_,e),y(u)}return void 0===a&&(a=setTimeout(_,e)),s}return e=v(e)||0,g(n)&&(c=!!n.leading,o=(h="maxWait"in n)?p(v(n.maxWait)||0,e):o,m="trailing"in n?!!n.trailing:m),E.cancel=function(){void 0!==a&&clearTimeout(a),l=0,i=u=r=a=void 0},E.flush=function(){return void 0===a?s:x(d())},E}},7696:t=>{for(var e=self.crypto||self.msCrypto,n="-_",i=36;i--;)n+=i.toString(36);for(i=36;i---10;)n+=i.toString(36).toUpperCase();t.exports=function(t){var r="",o=e.getRandomValues(new Uint8Array(t||21));for(i=t||21;i--;)r+=n[63&o[i]];return r}},1929:function(t){var e,n;e=this,n=function(){var t=/^([a-zA-Z]{2,3})(?:[_-]+([a-zA-Z]{3})(?=$|[_-]+))?(?:[_-]+([a-zA-Z]{4})(?=$|[_-]+))?(?:[_-]+([a-zA-Z]{2}|[0-9]{3})(?=$|[_-]+))?/;function e(e){return e.match(t)||[]}function n(t){return{language:(t=e(t))[1]||"",extlang:t[2]||"",script:t[3]||"",region:t[4]||""}}function i(t,e,n){Object.defineProperty(t,e,{value:n,enumerable:!0})}function r(t,r,o){function s(n){return e(n)[t]||""}i(s,"pattern",r),i(n,o,s)}return r(1,/^[a-zA-Z]{2,3}$/,"language"),r(2,/^[a-zA-Z]{3}$/,"extlang"),r(3,/^[a-zA-Z]{4}$/,"script"),r(4,/^[a-zA-Z]{2}$|^[0-9]{3}$/,"region"),i(n,"split",(function(t){return e(t).filter((function(t,e){return t&&e}))})),n},t.exports?t.exports=n():e.subtag=n()},3326:(t,e,n)=>{"use strict";var i=n(4866);t.exports=i,"undefined"!=typeof window&&(window.Suggestions=i)},1683:t=>{"use strict";var e=function(t){return this.component=t,this.items=[],this.active=0,this.wrapper=document.createElement("div"),this.wrapper.className="suggestions-wrapper",this.element=document.createElement("ul"),this.element.className="suggestions",this.wrapper.appendChild(this.element),this.selectingListItem=!1,t.el.parentNode.insertBefore(this.wrapper,t.el.nextSibling),this};e.prototype.show=function(){this.element.style.display="block"},e.prototype.hide=function(){this.element.style.display="none"},e.prototype.add=function(t){this.items.push(t)},e.prototype.clear=function(){this.items=[],this.active=0},e.prototype.isEmpty=function(){return!this.items.length},e.prototype.isVisible=function(){return"block"===this.element.style.display},e.prototype.draw=function(){if(this.element.innerHTML="",0!==this.items.length){for(var t=0;t{"use strict";var i=n(7510),r=n(4751),o=n(1683),s=function(t,e,n){return n=n||{},this.options=i({minLength:2,limit:5,filter:!0,hideOnBlur:!0},n),this.el=t,this.data=e||[],this.list=new o(this),this.query="",this.selected=null,this.list.draw(),this.el.addEventListener("keyup",function(t){this.handleKeyUp(t.keyCode)}.bind(this),!1),this.el.addEventListener("keydown",function(t){this.handleKeyDown(t)}.bind(this)),this.el.addEventListener("focus",function(){this.handleFocus()}.bind(this)),this.el.addEventListener("blur",function(){this.handleBlur()}.bind(this)),this.el.addEventListener("paste",function(t){this.handlePaste(t)}.bind(this)),this.render=this.options.render?this.options.render.bind(this):this.render.bind(this),this.getItemValue=this.options.getItemValue?this.options.getItemValue.bind(this):this.getItemValue.bind(this),this};s.prototype.handleKeyUp=function(t){40!==t&&38!==t&&27!==t&&13!==t&&9!==t&&this.handleInputChange(this.el.value)},s.prototype.handleKeyDown=function(t){switch(t.keyCode){case 13:case 9:this.list.isEmpty()||(this.list.isVisible()&&t.preventDefault(),this.value(this.list.items[this.list.active].original),this.list.hide());break;case 27:this.list.isEmpty()||this.list.hide();break;case 38:this.list.previous();break;case 40:this.list.next()}},s.prototype.handleBlur=function(){!this.list.selectingListItem&&this.options.hideOnBlur&&this.list.hide()},s.prototype.handlePaste=function(t){if(t.clipboardData)this.handleInputChange(t.clipboardData.getData("Text"));else{var e=this;setTimeout((function(){e.handleInputChange(t.target.value)}),100)}},s.prototype.handleInputChange=function(t){this.query=this.normalize(t),this.list.clear(),this.query.length-1},s.prototype.value=function(t){if(this.selected=t,this.el.value=this.getItemValue(t),document.createEvent){var e=document.createEvent("HTMLEvents");e.initEvent("change",!0,!1),this.el.dispatchEvent(e)}else this.el.fireEvent("onchange")},s.prototype.getCandidates=function(t){var e={pre:"",post:"",extract:function(t){return this.getItemValue(t)}.bind(this)};t(this.options.filter?r.filter(this.query,this.data,e).map(function(t){return{original:t.original,string:this.render(t.original,t.string)}}.bind(this)):this.data.map(function(t){return{original:t,string:this.render(t)}}.bind(this)))},s.prototype.getItemValue=function(t){return t},s.prototype.render=function(t,e){if(e)return e;for(var n=t.original?this.getItemValue(t.original):this.getItemValue(t),i=this.normalize(n),r=i.lastIndexOf(this.query);r>-1;){var o=r+this.query.length;n=n.slice(0,r)+""+n.slice(r,o)+""+n.slice(o),r=i.slice(0,r).lastIndexOf(this.query)}return n},s.prototype.renderError=function(t){this.list.drawError(t)},t.exports=s},7510:t=>{t.exports=function(){for(var t={},n=0;n{"use strict";n.d(e,{R:()=>s,x:()=>a});var i=n(6540);const r={},o=i.createContext(r);function s(t){const e=i.useContext(o);return i.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:s(t.components),i.createElement(o.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/861.770e7e92.js.LICENSE.txt b/assets/js/6791.68e6ab7e.js.LICENSE.txt similarity index 100% rename from assets/js/861.770e7e92.js.LICENSE.txt rename to assets/js/6791.68e6ab7e.js.LICENSE.txt diff --git a/assets/js/6b485341.173f8f99.js b/assets/js/6b485341.173f8f99.js new file mode 100644 index 00000000..a095db82 --- /dev/null +++ b/assets/js/6b485341.173f8f99.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[7126],{376:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>o,toc:()=>a});const o=JSON.parse('{"id":"api-reference/mapbox/scale-control","title":"ScaleControl","description":"React component that wraps mapbox-gl\'s ScaleControl class.","source":"@site/../docs/api-reference/mapbox/scale-control.md","sourceDirName":"api-reference/mapbox","slug":"/api-reference/mapbox/scale-control","permalink":"/react-map-gl/docs/api-reference/mapbox/scale-control","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/mapbox/scale-control.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"Popup","permalink":"/react-map-gl/docs/api-reference/mapbox/popup"},"next":{"title":"Source","permalink":"/react-map-gl/docs/api-reference/mapbox/source"}}');var n=r(4848),c=r(8453);const s={},i="ScaleControl",l={},a=[{value:"Properties",id:"properties",level:2},{value:"Reactive Properties",id:"reactive-properties",level:3},{value:"maxWidth: string",id:"maxwidth",level:4},{value:"style: CSSProperties",id:"style",level:4},{value:"unit: 'imperial' | 'metric' | 'nautical'",id:"unit",level:4},{value:"Other Properties",id:"other-properties",level:3},{value:"position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'",id:"position",level:4},{value:"Source",id:"source",level:2}];function p(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",...(0,c.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"scalecontrol",children:"ScaleControl"})}),"\n",(0,n.jsxs)(t.p,{children:["React component that wraps mapbox-gl's ",(0,n.jsx)(t.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/markers/#scalecontrol",children:"ScaleControl"})," class."]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-tsx",children:"import * as React from 'react';\r\nimport Map, {ScaleControl} from 'react-map-gl/mapbox';\r\nimport 'mapbox-gl/dist/mapbox-gl.css';\r\n\r\nfunction App() {\r\n return \"\r\n initialViewState={{\r\n longitude: -100,\r\n latitude: 40,\r\n zoom: 3.5\r\n }}\r\n mapStyle=\"mapbox://styles/mapbox/streets-v9\"\r\n >\r\n \r\n ;\r\n}\n"})}),"\n",(0,n.jsx)(t.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsx)(t.h3,{id:"reactive-properties",children:"Reactive Properties"}),"\n",(0,n.jsxs)(t.h4,{id:"maxwidth",children:[(0,n.jsx)(t.code,{children:"maxWidth"}),": string"]}),"\n",(0,n.jsxs)(t.p,{children:["Default: ",(0,n.jsx)(t.code,{children:"100"})]}),"\n",(0,n.jsx)(t.p,{children:"The maximum length of the scale control in pixels."}),"\n",(0,n.jsxs)(t.h4,{id:"style",children:[(0,n.jsx)(t.code,{children:"style"}),": CSSProperties"]}),"\n",(0,n.jsx)(t.p,{children:"CSS style override that applies to the control's container."}),"\n",(0,n.jsxs)(t.h4,{id:"unit",children:[(0,n.jsx)(t.code,{children:"unit"}),": 'imperial' | 'metric' | 'nautical'"]}),"\n",(0,n.jsxs)(t.p,{children:["Default: ",(0,n.jsx)(t.code,{children:"'metric'"})]}),"\n",(0,n.jsx)(t.p,{children:"Unit of the distance."}),"\n",(0,n.jsx)(t.h3,{id:"other-properties",children:"Other Properties"}),"\n",(0,n.jsx)(t.p,{children:"The properties in this section are not reactive. They are only used when the component first mounts."}),"\n",(0,n.jsxs)(t.h4,{id:"position",children:[(0,n.jsx)(t.code,{children:"position"}),": 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'"]}),"\n",(0,n.jsxs)(t.p,{children:["Default: ",(0,n.jsx)(t.code,{children:"'top-right'"})]}),"\n",(0,n.jsx)(t.p,{children:"Placement of the control relative to the map."}),"\n",(0,n.jsx)(t.h2,{id:"source",children:"Source"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://github.com/visgl/react-map-gl/tree/7.0-release/src/components/scale-control.ts",children:"scale-control.ts"})})]})}function d(e={}){const{wrapper:t}={...(0,c.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(p,{...e})}):p(e)}},8453:(e,t,r)=>{r.d(t,{R:()=>s,x:()=>i});var o=r(6540);const n={},c=o.createContext(n);function s(e){const t=o.useContext(c);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),o.createElement(c.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6b609de4.e7dbf316.js b/assets/js/6b609de4.e7dbf316.js new file mode 100644 index 00000000..49098822 --- /dev/null +++ b/assets/js/6b609de4.e7dbf316.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[8105],{5089:(e,r,o)=>{o.r(r),o.d(r,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>t,toc:()=>a});const t=JSON.parse('{"id":"api-reference/maplibre/logo-control","title":"LogoControl","description":"React component that wraps maplibre-gl\'s LogoControl class.","source":"@site/../docs/api-reference/maplibre/logo-control.md","sourceDirName":"api-reference/maplibre","slug":"/api-reference/maplibre/logo-control","permalink":"/react-map-gl/docs/api-reference/maplibre/logo-control","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/maplibre/logo-control.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"Layer","permalink":"/react-map-gl/docs/api-reference/maplibre/layer"},"next":{"title":"MapProvider","permalink":"/react-map-gl/docs/api-reference/maplibre/map-provider"}}');var n=o(4848),l=o(8453);const i={},s="LogoControl",c={},a=[{value:"Properties",id:"properties",level:2},{value:"Reactive Properties",id:"reactive-properties",level:3},{value:"style: CSSProperties",id:"style",level:4},{value:"Other Properties",id:"other-properties",level:3},{value:"position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'",id:"position",level:4},{value:"Source",id:"source",level:2}];function p(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,l.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"logocontrol",children:"LogoControl"})}),"\n",(0,n.jsxs)(r.p,{children:["React component that wraps maplibre-gl's ",(0,n.jsx)(r.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/LogoControl/",children:"LogoControl"})," class."]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:"import * as React from 'react';\r\nimport {Map, LogoControl} from 'react-map-gl/maplibre';\r\nimport 'maplibre-gl/dist/maplibre-gl.css';\r\n\r\nfunction App() {\r\n return \r\n \r\n ;\r\n}\n"})}),"\n",(0,n.jsx)(r.h2,{id:"properties",children:"Properties"}),"\n",(0,n.jsx)(r.h3,{id:"reactive-properties",children:"Reactive Properties"}),"\n",(0,n.jsxs)(r.h4,{id:"style",children:[(0,n.jsx)(r.code,{children:"style"}),": CSSProperties"]}),"\n",(0,n.jsx)(r.p,{children:"CSS style override that applies to the control's container."}),"\n",(0,n.jsx)(r.h3,{id:"other-properties",children:"Other Properties"}),"\n",(0,n.jsx)(r.p,{children:"The properties in this section are not reactive. They are only used when the component first mounts."}),"\n",(0,n.jsxs)(r.p,{children:["Any ",(0,n.jsx)(r.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/type-aliases/LogoControlOptions/",children:"options"})," supported by the ",(0,n.jsx)(r.code,{children:"LogoControl"})," class, such as"]}),"\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsx)(r.li,{children:(0,n.jsx)(r.code,{children:"compact"})}),"\n"]}),"\n",(0,n.jsx)(r.p,{children:"Plus the following:"}),"\n",(0,n.jsxs)(r.h4,{id:"position",children:[(0,n.jsx)(r.code,{children:"position"}),": 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'"]}),"\n",(0,n.jsxs)(r.p,{children:["Default: ",(0,n.jsx)(r.code,{children:"'top-right'"})]}),"\n",(0,n.jsx)(r.p,{children:"Placement of the control relative to the map."}),"\n",(0,n.jsx)(r.h2,{id:"source",children:"Source"}),"\n",(0,n.jsx)(r.p,{children:(0,n.jsx)(r.a,{href:"https://github.com/visgl/react-map-gl/tree/master/modules/maplibre/src/components/logo-control.ts",children:"logo-control.ts"})})]})}function d(e={}){const{wrapper:r}={...(0,l.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(p,{...e})}):p(e)}},8453:(e,r,o)=>{o.d(r,{R:()=>i,x:()=>s});var t=o(6540);const n={},l=t.createContext(n);function i(e){const r=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function s(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),t.createElement(l.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6cc3bb0b.959c1fde.js b/assets/js/6cc3bb0b.959c1fde.js new file mode 100644 index 00000000..2f599e3c --- /dev/null +++ b/assets/js/6cc3bb0b.959c1fde.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([[6650],{4974:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>d,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>l});const a=JSON.parse('{"id":"api-reference/mapbox/map","title":"default (Map)","description":"React component that wraps mapbox-gl\'s Map class. This is also the default export from react-map-gl.","source":"@site/../docs/api-reference/mapbox/map.md","sourceDirName":"api-reference/mapbox","slug":"/api-reference/mapbox/map","permalink":"/react-map-gl/docs/api-reference/mapbox/map","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/react-map-gl/tree/master/docs/../docs/api-reference/mapbox/map.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"Tips and Tricks","permalink":"/react-map-gl/docs/get-started/tips-and-tricks"},"next":{"title":"AttributionControl","permalink":"/react-map-gl/docs/api-reference/mapbox/attribution-control"}}');var t=o(4848),r=o(8453);const i={},s="default (Map)",d={},l=[{value:"Properties",id:"properties",level:2},{value:"Layout options",id:"layout-options",level:3},{value:"id: string",id:"id",level:4},{value:"style: CSSProperties",id:"style",level:4},{value:"cursor: string",id:"cursor",level:4},{value:"Styling options",id:"styling-options",level:3},{value:"fog: Fog",id:"fog",level:4},{value:"light: Light",id:"light",level:4},{value:"mapStyle: MapStyle | string | Immutable",id:"mapstyle",level:4},{value:"projection: string | Projection",id:"projection",level:4},{value:"renderWorldCopies: boolean",id:"renderworldcopies",level:4},{value:"styleDiffing: boolean",id:"stylediffing",level:4},{value:"terrain: Terrain",id:"terrain",level:4},{value:"Camera options",id:"camera-options",level:3},{value:"initialViewState: object",id:"initialviewstate",level:4},{value:"longitude: number",id:"longitude",level:4},{value:"latitude: number",id:"latitude",level:4},{value:"zoom: number",id:"zoom",level:4},{value:"pitch: number",id:"pitch",level:4},{value:"bearing: number",id:"bearing",level:4},{value:"padding: PaddingOptions",id:"padding",level:4},{value:"minZoom: number",id:"minzoom",level:4},{value:"maxZoom: number",id:"maxzoom",level:4},{value:"minPitch: number",id:"minpitch",level:4},{value:"maxPitch: number",id:"maxpitch",level:4},{value:"maxBounds: LngLatBoundsLike",id:"maxbounds",level:4},{value:"Input handler options",id:"input-handler-options",level:3},{value:"boxZoom: boolean",id:"boxzoom",level:4},{value:"doubleClickZoom: boolean",id:"doubleclickzoom",level:4},{value:"dragRotate: boolean",id:"dragrotate",level:4},{value:"dragPan: boolean | Object",id:"dragpan",level:4},{value:"keyboard: boolean",id:"keyboard",level:4},{value:"scrollZoom: boolean | Object",id:"scrollzoom",level:4},{value:"touchPitch: boolean | Object",id:"touchpitch",level:4},{value:"touchZoomRotate: boolean | Object",id:"touchzoomrotate",level:4},{value:"interactiveLayerIds: string[]",id:"interactivelayerids",level:4},{value:"Callbacks",id:"callbacks",level:3},{value:"onResize: (event: MapEvent) => void",id:"onresize",level:4},{value:"onLoad: (event: MapEvent) => void",id:"onload",level:4},{value:"onRender: (event: MapEvent)) => void",id:"onrender",level:4},{value:"onIdle: (event: MapEvent)) => void",id:"onidle",level:4},{value:"onRemove: (event: MapEvent)) => void",id:"onremove",level:4},{value:"onError: (event: ErrorEvent) => void",id:"onerror",level:4},{value:"onMouseDown: (event: MapLayerMouseEvent) => void",id:"onmousedown",level:4},{value:"onMouseUp: (event: MapLayerMouseEvent) => void",id:"onmouseup",level:4},{value:"onMouseOver: (event: MapLayerMouseEvent) => void",id:"onmouseover",level:4},{value:"onMouseEnter: (event: MapLayerMouseEvent) => void",id:"onmouseenter",level:4},{value:"onMouseMove: (event: MapLayerMouseEvent) => void",id:"onmousemove",level:4},{value:"onMouseLeave: (event: MapLayerMouseEvent) => void",id:"onmouseleave",level:4},{value:"onMouseOut: (event: MapLayerMouseEvent) => void",id:"onmouseout",level:4},{value:"onClick: (event: MapLayerMouseEvent) => void",id:"onclick",level:4},{value:"onDblClick: (event: MapLayerMouseEvent) => void",id:"ondblclick",level:4},{value:"onContextMenu: (event: MapLayerMouseEvent) => void",id:"oncontextmenu",level:4},{value:"onWheel: (event: MapWheelEvent) => void",id:"onwheel",level:4},{value:"onTouchStart: (event: MapLayerTouchEvent) => void",id:"ontouchstart",level:4},{value:"onTouchEnd: (event: MapLayerTouchEvent) => void",id:"ontouchend",level:4},{value:"onTouchMove: (event: MapLayerTouchEvent) => void",id:"ontouchmove",level:4},{value:"onTouchCancel: (event: MapLayerTouchEvent) => void",id:"ontouchcancel",level:4},{value:"onMoveStart: (event: ViewStateChangeEvent) => void",id:"onmovestart",level:4},{value:"onMove: (event: ViewStateChangeEvent) => void",id:"onmove",level:4},{value:"onMoveEnd: (event: ViewStateChangeEvent) => void",id:"onmoveend",level:4},{value:"onDragStart: (event: ViewStateChangeEvent) => void",id:"ondragstart",level:4},{value:"onDrag: (event: ViewStateChangeEvent) => void",id:"ondrag",level:4},{value:"onDragEnd: (event: ViewStateChangeEvent) => void",id:"ondragend",level:4},{value:"onZoomStart: (event: ViewStateChangeEvent) => void",id:"onzoomstart",level:4},{value:"onZoom: (event: ViewStateChangeEvent) => void",id:"onzoom",level:4},{value:"onZoomEnd: (event: ViewStateChangeEvent) => void",id:"onzoomend",level:4},{value:"onRotateStart: (event: ViewStateChangeEvent) => void",id:"onrotatestart",level:4},{value:"onRotate: (event: ViewStateChangeEvent) => void",id:"onrotate",level:4},{value:"onRotateEnd: (event: ViewStateChangeEvent) => void",id:"onrotateend",level:4},{value:"onPitchStart: (event: ViewStateChangeEvent) => void",id:"onpitchstart",level:4},{value:"onPitch: (event: ViewStateChangeEvent) => void",id:"onpitch",level:4},{value:"onPitchEnd: (event: ViewStateChangeEvent) => void",id:"onpitchend",level:4},{value:"onBoxZoomStart: (event: MapBoxZoomEvent) => void",id:"onboxzoomstart",level:4},{value:"onBoxZoomEnd: (event: MapBoxZoomEvent) => void",id:"onboxzoomend",level:4},{value:"onBoxZoomCancel: (event:MapBoxZoomEvent) => void",id:"onboxzoomcancel",level:4},{value:"onData: (event: MapStyleDataEvent | MapSourceDataEvent) => void",id:"ondata",level:4},{value:"onStyleData: (event: MapStyleDataEvent) => void",id:"onstyledata",level:4},{value:"onSourceData: (event: MapSourceDataEvent) => void",id:"onsourcedata",level:4},{value:"Other options",id:"other-options",level:3},{value:"mapLib: any",id:"maplib",level:4},{value:"mapboxAccessToken: string",id:"mapboxaccesstoken",level:4},{value:"baseApiUrl: string",id:"baseapiurl",level:4},{value:"maxParallelImageRequests: number",id:"maxparallelimagerequests",level:4},{value:"reuseMaps: boolean",id:"reusemaps",level:4},{value:"RTLTextPlugin: string | false",id:"rtltextplugin",level:4},{value:"workerClass: object",id:"workerclass",level:4},{value:"workerCount: number",id:"workercount",level:4},{value:"workerUrl: string",id:"workerurl",level:4},{value:"Methods",id:"methods",level:2},{value:"getMap()",id:"getmap",level:4},{value:"Source",id:"source",level:2}];function c(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"default-map",children:"default (Map)"})}),"\n",(0,t.jsxs)(n.p,{children:["React component that wraps mapbox-gl's ",(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/map/",children:"Map"})," class. This is also the default export from react-map-gl."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-tsx",metastring:'title="app.tsx"',children:"import * as React from 'react';\r\nimport Map from 'react-map-gl/mapbox';\r\nimport 'mapbox-gl/dist/mapbox-gl.css';\r\n\r\nfunction App() {\r\n return (\r\n \"\r\n initialViewState={{\r\n longitude: -122.4,\r\n latitude: 37.8,\r\n zoom: 14\r\n }}\r\n style={{width: 600, height: 400}}\r\n mapStyle=\"mapbox://styles/mapbox/streets-v9\"\r\n />\r\n );\r\n}\n"})}),"\n",(0,t.jsx)(n.h2,{id:"properties",children:"Properties"}),"\n",(0,t.jsxs)(n.p,{children:["Aside from the props listed below, the ",(0,t.jsx)(n.code,{children:"Map"})," component supports all parameters of the ",(0,t.jsx)(n.code,{children:"Map"})," class constructor (",(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/map/",children:"Mapbox"})," | ",(0,t.jsx)(n.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/type-aliases/MapOptions/",children:"Maplibre"}),"). Beware that this is not an exhaustive list of all props. Different base map libraries may offer different options and default values. When in doubt, refer to your base map library's documentation."]}),"\n",(0,t.jsx)(n.h3,{id:"layout-options",children:"Layout options"}),"\n",(0,t.jsxs)(n.h4,{id:"id",children:[(0,t.jsx)(n.code,{children:"id"}),": string"]}),"\n",(0,t.jsx)(n.p,{children:"Map container id."}),"\n",(0,t.jsxs)(n.p,{children:["Required when ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/map-provider",children:(0,t.jsx)(n.code,{children:"MapProvider"})}),"s are used. Used to reference the map with ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/use-map",children:(0,t.jsx)(n.code,{children:"useMap"})}),"."]}),"\n",(0,t.jsx)(n.p,{children:"Make sure to pick a name that has no conflict with other imports (there are no checks or errors in this case)."}),"\n",(0,t.jsxs)(n.h4,{id:"style",children:[(0,t.jsx)(n.code,{children:"style"}),": CSSProperties"]}),"\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.code,{children:"{position: 'relative', width: '100%', height: '100%'}"})]}),"\n",(0,t.jsx)(n.p,{children:"Map container CSS."}),"\n",(0,t.jsxs)(n.h4,{id:"cursor",children:[(0,t.jsx)(n.code,{children:"cursor"}),": string"]}),"\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.code,{children:"'auto'"})]}),"\n",(0,t.jsxs)(n.p,{children:["The current cursor ",(0,t.jsx)(n.a,{href:"https://developer.mozilla.org/en-US/docs/Web/CSS/cursor",children:"type"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"styling-options",children:"Styling options"}),"\n",(0,t.jsxs)(n.h4,{id:"fog",children:[(0,t.jsx)(n.code,{children:"fog"}),": ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#fog",children:"Fog"})]}),"\n",(0,t.jsxs)(n.p,{children:["The fog property of the style. Must conform to the ",(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/fog/",children:"Fog Style Specification"}),".\r\nIf ",(0,t.jsx)(n.code,{children:"undefined"})," is provided, removes the fog from the map."]}),"\n",(0,t.jsxs)(n.h4,{id:"light",children:[(0,t.jsx)(n.code,{children:"light"}),": ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#light",children:"Light"})]}),"\n",(0,t.jsxs)(n.p,{children:["Light properties of the style. Must conform to the ",(0,t.jsx)(n.a,{href:"https://www.mapbox.com/mapbox-gl-style-spec/#light",children:"Light Style Specification"}),"."]}),"\n",(0,t.jsxs)(n.h4,{id:"mapstyle",children:[(0,t.jsx)(n.code,{children:"mapStyle"}),": ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#mapstyle",children:"MapStyle"})," | string | Immutable"]}),"\n",(0,t.jsx)(n.p,{children:"Default: (empty style)"}),"\n",(0,t.jsxs)(n.p,{children:["The map's Mapbox style. This must be an a JSON object conforming to the schema described in the ",(0,t.jsx)(n.a,{href:"https://mapbox.com/mapbox-gl-style-spec/",children:"Mapbox Style Specification"}),", or a URL to such JSON."]}),"\n",(0,t.jsxs)(n.h4,{id:"projection",children:[(0,t.jsx)(n.code,{children:"projection"}),": string | ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#projection",children:"Projection"})]}),"\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.code,{children:"'mercator'"})]}),"\n",(0,t.jsxs)(n.p,{children:["The projection the map should be rendered in. Available projections are Albers (",(0,t.jsx)(n.code,{children:"'albers'"}),"), Equal Earth (",(0,t.jsx)(n.code,{children:"'equalEarth'"}),"), Equirectangular/Plate Carr\xe9e/WGS84 (",(0,t.jsx)(n.code,{children:"'equirectangular'"}),"), Lambert (",(0,t.jsx)(n.code,{children:"'lambertConformalConic'"}),"), Mercator (",(0,t.jsx)(n.code,{children:"'mercator'"}),"), Natural Earth (",(0,t.jsx)(n.code,{children:"'naturalEarth'"}),"), and Winkel Tripel (",(0,t.jsx)(n.code,{children:"'winkelTripel'"}),"). Conic projections such as Albers and Lambert have configurable ",(0,t.jsx)(n.code,{children:"center"})," and ",(0,t.jsx)(n.code,{children:"parallels"})," properties that allow developers to define the region in which the projection has minimal distortion; see ",(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/map/#map#setprojection",children:"example"}),"."]}),"\n",(0,t.jsxs)(n.h4,{id:"renderworldcopies",children:[(0,t.jsx)(n.code,{children:"renderWorldCopies"}),": boolean"]}),"\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.code,{children:"true"})]}),"\n",(0,t.jsxs)(n.p,{children:["If ",(0,t.jsx)(n.code,{children:"true"}),", multiple copies of the world will be rendered, when zoomed out."]}),"\n",(0,t.jsxs)(n.h4,{id:"stylediffing",children:[(0,t.jsx)(n.code,{children:"styleDiffing"}),": boolean"]}),"\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.code,{children:"true"})]}),"\n",(0,t.jsxs)(n.p,{children:["Enable diffing when ",(0,t.jsx)(n.code,{children:"mapStyle"})," changes. If ",(0,t.jsx)(n.code,{children:"false"}),", force a 'full' update, removing the current style and building the given one instead of attempting a diff-based update."]}),"\n",(0,t.jsxs)(n.h4,{id:"terrain",children:[(0,t.jsx)(n.code,{children:"terrain"}),": ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#terrain",children:"Terrain"})]}),"\n",(0,t.jsxs)(n.p,{children:["Terrain property of the style. Must conform to the ",(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/mapbox-gl-js/style-spec/terrain/",children:"Terrain Style Specification"}),".\r\nIf ",(0,t.jsx)(n.code,{children:"undefined"})," is provided, removes terrain from the map."]}),"\n",(0,t.jsx)(n.h3,{id:"camera-options",children:"Camera options"}),"\n",(0,t.jsxs)(n.h4,{id:"initialviewstate",children:[(0,t.jsx)(n.code,{children:"initialViewState"}),": object"]}),"\n",(0,t.jsxs)(n.p,{children:["The initial view state of the map. If specified, ",(0,t.jsx)(n.code,{children:"longitude"}),", ",(0,t.jsx)(n.code,{children:"latitude"}),", ",(0,t.jsx)(n.code,{children:"zoom"})," etc. in props are ignored when constructing the map. Only specify ",(0,t.jsx)(n.code,{children:"initialViewState"})," if ",(0,t.jsx)(n.code,{children:"Map"})," is being used as an ",(0,t.jsx)(n.strong,{children:"uncontrolled component"}),". See ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/get-started/state-management",children:"state management"})," for examples."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"bounds"}),": ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#lnglatboundslike",children:"LngLatBoundsLike"})," - The initial bounds of the map. If specified, it overrides the ",(0,t.jsx)(n.code,{children:"longitude"}),", ",(0,t.jsx)(n.code,{children:"latitude"})," and ",(0,t.jsx)(n.code,{children:"zoom"})," options. Default ",(0,t.jsx)(n.code,{children:"null"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"fitBoundsOptions"})," - An object to use only when setting the ",(0,t.jsx)(n.code,{children:"bounds"})," option. Default ",(0,t.jsx)(n.code,{children:"null"}),".","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"fitBoundsOptions.offset"}),": ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#pointlike",children:"PointLike"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"fitBoundsOptions.minZoom"}),": number"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"fitBoundsOptions.maxZoom"}),": number"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"fitBoundsOptions.padding"}),": ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#paddingoptions",children:"PaddingOptions"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"longitude"}),": number - The initial longitude of the map center. Default ",(0,t.jsx)(n.code,{children:"0"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"latitude"}),": number - The initial latitude of the map center. Default ",(0,t.jsx)(n.code,{children:"0"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"zoom"}),": number - The initial zoom level. Default ",(0,t.jsx)(n.code,{children:"0"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"pitch"}),": number - The initial pitch (tilt) of the map. Default ",(0,t.jsx)(n.code,{children:"0"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"bearing"}),": number - The initial bearing (rotation) of the map. Default ",(0,t.jsx)(n.code,{children:"0"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.h4,{id:"longitude",children:[(0,t.jsx)(n.code,{children:"longitude"}),": number"]}),"\n",(0,t.jsx)(n.p,{children:"The longitude of the map center."}),"\n",(0,t.jsxs)(n.h4,{id:"latitude",children:[(0,t.jsx)(n.code,{children:"latitude"}),": number"]}),"\n",(0,t.jsx)(n.p,{children:"The latitude of the map center."}),"\n",(0,t.jsxs)(n.h4,{id:"zoom",children:[(0,t.jsx)(n.code,{children:"zoom"}),": number"]}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/help/glossary/camera/#zoom-level",children:"zoom level"})," of the map."]}),"\n",(0,t.jsxs)(n.h4,{id:"pitch",children:[(0,t.jsx)(n.code,{children:"pitch"}),": number"]}),"\n",(0,t.jsxs)(n.p,{children:["The initial ",(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/help/glossary/camera/#pitch",children:"pitch"})," (tilt) of the map, measured in degrees away from the plane of the screen (0-85)."]}),"\n",(0,t.jsxs)(n.h4,{id:"bearing",children:[(0,t.jsx)(n.code,{children:"bearing"}),": number"]}),"\n",(0,t.jsxs)(n.p,{children:["The initial ",(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/help/glossary/camera/#bearing",children:"bearing"})," (rotation) of the map, measured in degrees counter-clockwise from north."]}),"\n",(0,t.jsxs)(n.h4,{id:"padding",children:[(0,t.jsx)(n.code,{children:"padding"}),": ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#paddingoptions",children:"PaddingOptions"})]}),"\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.code,{children:"null"})]}),"\n",(0,t.jsx)(n.p,{children:"The padding in pixels around the viewport."}),"\n",(0,t.jsxs)(n.h4,{id:"minzoom",children:[(0,t.jsx)(n.code,{children:"minZoom"}),": number"]}),"\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.code,{children:"0"})]}),"\n",(0,t.jsx)(n.p,{children:"The minimum zoom level of the map (0-24)."}),"\n",(0,t.jsxs)(n.h4,{id:"maxzoom",children:[(0,t.jsx)(n.code,{children:"maxZoom"}),": number"]}),"\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.code,{children:"22"})]}),"\n",(0,t.jsx)(n.p,{children:"The maximum zoom level of the map (0-24)."}),"\n",(0,t.jsxs)(n.h4,{id:"minpitch",children:[(0,t.jsx)(n.code,{children:"minPitch"}),": number"]}),"\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.code,{children:"0"})]}),"\n",(0,t.jsx)(n.p,{children:"The minimum pitch of the map (0-85)."}),"\n",(0,t.jsxs)(n.h4,{id:"maxpitch",children:[(0,t.jsx)(n.code,{children:"maxPitch"}),": number"]}),"\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.code,{children:"60"})]}),"\n",(0,t.jsx)(n.p,{children:"The maximum pitch of the map (0-85)."}),"\n",(0,t.jsxs)(n.h4,{id:"maxbounds",children:[(0,t.jsx)(n.code,{children:"maxBounds"}),": ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#lnglatboundslike",children:"LngLatBoundsLike"})]}),"\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.code,{children:"null"})]}),"\n",(0,t.jsx)(n.p,{children:"If set, the map is constrained to the given bounds."}),"\n",(0,t.jsx)(n.h3,{id:"input-handler-options",children:"Input handler options"}),"\n",(0,t.jsxs)(n.h4,{id:"boxzoom",children:[(0,t.jsx)(n.code,{children:"boxZoom"}),": boolean"]}),"\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.code,{children:"true"})]}),"\n",(0,t.jsxs)(n.p,{children:["If ",(0,t.jsx)(n.code,{children:"true"}),', the "box zoom" interaction is enabled. See ',(0,t.jsx)(n.code,{children:"BoxZoomHandler"}),"\r\n(",(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/handlers/#boxzoomhandler",children:"Mapbox"})," | ",(0,t.jsx)(n.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/BoxZoomHandler/",children:"Maplibre"}),")"]}),"\n",(0,t.jsxs)(n.h4,{id:"doubleclickzoom",children:[(0,t.jsx)(n.code,{children:"doubleClickZoom"}),": boolean"]}),"\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.code,{children:"true"})]}),"\n",(0,t.jsxs)(n.p,{children:["If ",(0,t.jsx)(n.code,{children:"true"}),', the "double click to zoom" interaction is enabled. See ',(0,t.jsx)(n.code,{children:"DoubleClickZoomHandler"})," (",(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/handlers/#doubleclickzoomhandler",children:"Mapbox"})," | ",(0,t.jsx)(n.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/DoubleClickZoomHandler/",children:"Maplibre"}),")."]}),"\n",(0,t.jsxs)(n.h4,{id:"dragrotate",children:[(0,t.jsx)(n.code,{children:"dragRotate"}),": boolean"]}),"\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.code,{children:"true"})]}),"\n",(0,t.jsxs)(n.p,{children:["If ",(0,t.jsx)(n.code,{children:"true"}),', the "drag to rotate" interaction is enabled. See ',(0,t.jsx)(n.code,{children:"DragRotateHandler"})," (",(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/handlers/#dragrotatehandler",children:"Mapbox"})," | ",(0,t.jsx)(n.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/DragRotateHandler/",children:"Maplibre"}),")."]}),"\n",(0,t.jsxs)(n.h4,{id:"dragpan",children:[(0,t.jsx)(n.code,{children:"dragPan"}),": boolean | Object"]}),"\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.code,{children:"true"})]}),"\n",(0,t.jsxs)(n.p,{children:["If ",(0,t.jsx)(n.code,{children:"true"}),', the "drag to pan" interaction is enabled. Optionally accept an object value that is the options to ',(0,t.jsx)(n.code,{children:"DragPanHandler.enable"})," (",(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/handlers/#dragpanhandler#enable",children:"Mapbox"})," | ",(0,t.jsx)(n.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/DragPanHandler/#enable",children:"Maplibre"}),")."]}),"\n",(0,t.jsxs)(n.h4,{id:"keyboard",children:[(0,t.jsx)(n.code,{children:"keyboard"}),": boolean"]}),"\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.code,{children:"true"})]}),"\n",(0,t.jsxs)(n.p,{children:["If ",(0,t.jsx)(n.code,{children:"true"}),", keyboard shortcuts are enabled. See ",(0,t.jsx)(n.code,{children:"KeyboardHandler"})," (",(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/handlers/#keyboardhandler",children:"Mapbox"})," | ",(0,t.jsx)(n.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/KeyboardHandler/",children:"Maplibre"}),")."]}),"\n",(0,t.jsxs)(n.h4,{id:"scrollzoom",children:[(0,t.jsx)(n.code,{children:"scrollZoom"}),": boolean | Object"]}),"\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.code,{children:"true"})]}),"\n",(0,t.jsxs)(n.p,{children:["If ",(0,t.jsx)(n.code,{children:"true"}),', the "scroll to zoom" interaction is enabled. Optionally accept an object value that is the options to ',(0,t.jsx)(n.code,{children:"ScrollZoomHandler.enable"})," (",(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/handlers/#scrollzoomhandler#enable",children:"Mapbox"})," | ",(0,t.jsx)(n.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/ScrollZoomHandler/#enable",children:"Maplibre"}),")"]}),"\n",(0,t.jsxs)(n.h4,{id:"touchpitch",children:[(0,t.jsx)(n.code,{children:"touchPitch"}),": boolean | Object"]}),"\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.code,{children:"true"})]}),"\n",(0,t.jsxs)(n.p,{children:["If ",(0,t.jsx)(n.code,{children:"true"}),', the "drag to pitch" interaction is enabled. Optionally accept an object value that is the options to ',(0,t.jsx)(n.code,{children:"TouchPitchHandler.enable"}),"(",(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/handlers/#touchpitchhandler",children:"Mapbox"})," | ",(0,t.jsx)(n.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/TwoFingersTouchPitchHandler/#enable",children:"Maplibre"}),")."]}),"\n",(0,t.jsxs)(n.h4,{id:"touchzoomrotate",children:[(0,t.jsx)(n.code,{children:"touchZoomRotate"}),": boolean | Object"]}),"\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.code,{children:"true"})]}),"\n",(0,t.jsxs)(n.p,{children:["If ",(0,t.jsx)(n.code,{children:"true"}),', the "pinch to rotate and zoom" interaction is enabled. Optionally accept an object value that is the options to ',(0,t.jsx)(n.code,{children:"TouchZoomRotateHandler.enable"})," (",(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/handlers/#touchzoomrotatehandler#enable",children:"Mapbox"})," | ",(0,t.jsx)(n.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/classes/TwoFingersTouchZoomRotateHandler/#enable",children:"Maplibre"}),")."]}),"\n",(0,t.jsxs)(n.h4,{id:"interactivelayerids",children:[(0,t.jsx)(n.code,{children:"interactiveLayerIds"}),": string[]"]}),"\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.code,{children:"null"})]}),"\n",(0,t.jsx)(n.p,{children:"The id(s) of style layer(s)."}),"\n",(0,t.jsxs)(n.p,{children:["If specified, pointer event (",(0,t.jsx)(n.code,{children:"mousemove"}),", ",(0,t.jsx)(n.code,{children:"click"})," etc.) listeners will be triggered only if its location is within a visible feature in these layers, and the event will have a ",(0,t.jsx)(n.code,{children:"features"})," property containing an array of the matching features."]}),"\n",(0,t.jsxs)(n.p,{children:["If not specified, pointer event listeners will be triggered by a corresponding event happening anywhere on the map, and the event will not have a ",(0,t.jsx)(n.code,{children:"features"})," property."]}),"\n",(0,t.jsxs)(n.p,{children:["See the ",(0,t.jsx)(n.a,{href:"#callbacks",children:"Callbacks"})," section for affected events."]}),"\n",(0,t.jsx)(n.h3,{id:"callbacks",children:"Callbacks"}),"\n",(0,t.jsxs)(n.h4,{id:"onresize",children:[(0,t.jsx)(n.code,{children:"onResize"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#mapevent",children:"MapEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called when the map has been resized."}),"\n",(0,t.jsxs)(n.h4,{id:"onload",children:[(0,t.jsx)(n.code,{children:"onLoad"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#mapevent",children:"MapEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called after all necessary resources have been downloaded and the first visually complete rendering of the map has occurred."}),"\n",(0,t.jsxs)(n.h4,{id:"onrender",children:[(0,t.jsx)(n.code,{children:"onRender"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#mapevent",children:"MapEvent"}),")) => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called whenever the map is drawn to the screen."}),"\n",(0,t.jsxs)(n.h4,{id:"onidle",children:[(0,t.jsx)(n.code,{children:"onIdle"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#mapevent",children:"MapEvent"}),")) => void"]}),"\n",(0,t.jsx)(n.p,{children:'Called after the last frame rendered before the map enters an "idle" state:'}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"No camera transitions are in progress"}),"\n",(0,t.jsx)(n.li,{children:"All currently requested tiles have loaded"}),"\n",(0,t.jsx)(n.li,{children:"All fade/transition animations have completed"}),"\n"]}),"\n",(0,t.jsxs)(n.h4,{id:"onremove",children:[(0,t.jsx)(n.code,{children:"onRemove"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#mapevent",children:"MapEvent"}),")) => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called when the map has been removed."}),"\n",(0,t.jsxs)(n.h4,{id:"onerror",children:[(0,t.jsx)(n.code,{children:"onError"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#errorevent",children:"ErrorEvent"}),") => void"]}),"\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.code,{children:"evt => console.error(evt.error)"})]}),"\n",(0,t.jsx)(n.p,{children:"Called when an error occurs."}),"\n",(0,t.jsxs)(n.h4,{id:"onmousedown",children:[(0,t.jsx)(n.code,{children:"onMouseDown"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#maplayermouseevent",children:"MapLayerMouseEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called when a pointing device (usually a mouse) is pressed within the map."}),"\n",(0,t.jsxs)(n.p,{children:["If ",(0,t.jsx)(n.code,{children:"interactiveLayerIds"})," is specified, the event will contain an additional ",(0,t.jsx)(n.code,{children:"features"})," field that contains features under the cursor from the specified layers."]}),"\n",(0,t.jsxs)(n.h4,{id:"onmouseup",children:[(0,t.jsx)(n.code,{children:"onMouseUp"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#maplayermouseevent",children:"MapLayerMouseEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called when a pointing device (usually a mouse) is released within the map."}),"\n",(0,t.jsxs)(n.p,{children:["If ",(0,t.jsx)(n.code,{children:"interactiveLayerIds"})," is specified, the event will contain an additional ",(0,t.jsx)(n.code,{children:"features"})," field that contains features under the cursor from the specified layers."]}),"\n",(0,t.jsxs)(n.h4,{id:"onmouseover",children:[(0,t.jsx)(n.code,{children:"onMouseOver"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#maplayermouseevent",children:"MapLayerMouseEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called when a pointing device (usually a mouse) is moved within the map. As you move the cursor across a web page containing a map, the event will fire each time it enters the map or any child elements."}),"\n",(0,t.jsxs)(n.h4,{id:"onmouseenter",children:[(0,t.jsx)(n.code,{children:"onMouseEnter"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#maplayermouseevent",children:"MapLayerMouseEvent"}),") => void"]}),"\n",(0,t.jsxs)(n.p,{children:["Called when a pointing device (usually a mouse) enters a visible portion of the layer(s) specified by ",(0,t.jsx)(n.code,{children:"interactiveLayerIds"})," from outside that layer or outside the map canvas."]}),"\n",(0,t.jsxs)(n.h4,{id:"onmousemove",children:[(0,t.jsx)(n.code,{children:"onMouseMove"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#maplayermouseevent",children:"MapLayerMouseEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called when a pointing device (usually a mouse) is moved while the cursor is inside the map. As you move the cursor across the map, the event will fire every time the cursor changes position within the map."}),"\n",(0,t.jsxs)(n.p,{children:["If ",(0,t.jsx)(n.code,{children:"interactiveLayerIds"})," is specified, the event will contain an additional ",(0,t.jsx)(n.code,{children:"features"})," field that contains features under the cursor from the specified layers."]}),"\n",(0,t.jsxs)(n.h4,{id:"onmouseleave",children:[(0,t.jsx)(n.code,{children:"onMouseLeave"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#maplayermouseevent",children:"MapLayerMouseEvent"}),") => void"]}),"\n",(0,t.jsxs)(n.p,{children:["Called when a pointing device (usually a mouse) leaves a visible portion of the layer(s) specified by ",(0,t.jsx)(n.code,{children:"interactiveLayerIds"})," or moves from the layer to outside the map canvas."]}),"\n",(0,t.jsxs)(n.h4,{id:"onmouseout",children:[(0,t.jsx)(n.code,{children:"onMouseOut"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#maplayermouseevent",children:"MapLayerMouseEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called when a point device (usually a mouse) leaves the map's canvas."}),"\n",(0,t.jsxs)(n.h4,{id:"onclick",children:[(0,t.jsx)(n.code,{children:"onClick"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#maplayermouseevent",children:"MapLayerMouseEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called when a pointing device (usually a mouse) is pressed and released at the same point on the map."}),"\n",(0,t.jsxs)(n.p,{children:["If ",(0,t.jsx)(n.code,{children:"interactiveLayerIds"})," is specified, the event will contain an additional ",(0,t.jsx)(n.code,{children:"features"})," field that contains features under the cursor from the specified layers."]}),"\n",(0,t.jsxs)(n.h4,{id:"ondblclick",children:[(0,t.jsx)(n.code,{children:"onDblClick"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#maplayermouseevent",children:"MapLayerMouseEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called when a pointing device (usually a mouse) is pressed and released twice at the same point on the map in rapid succession."}),"\n",(0,t.jsxs)(n.p,{children:["If ",(0,t.jsx)(n.code,{children:"interactiveLayerIds"})," is specified, the event will contain an additional ",(0,t.jsx)(n.code,{children:"features"})," field that contains features under the cursor from the specified layers."]}),"\n",(0,t.jsxs)(n.h4,{id:"oncontextmenu",children:[(0,t.jsx)(n.code,{children:"onContextMenu"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#maplayermouseevent",children:"MapLayerMouseEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called when the right button of the mouse is clicked or the context menu key is pressed within the map."}),"\n",(0,t.jsxs)(n.p,{children:["If ",(0,t.jsx)(n.code,{children:"interactiveLayerIds"})," is specified, the event will contain an additional ",(0,t.jsx)(n.code,{children:"features"})," field that contains features under the cursor from the specified layers."]}),"\n",(0,t.jsxs)(n.h4,{id:"onwheel",children:[(0,t.jsx)(n.code,{children:"onWheel"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#mapwheelevent",children:"MapWheelEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called when a wheel event occurs within the map."}),"\n",(0,t.jsxs)(n.h4,{id:"ontouchstart",children:[(0,t.jsx)(n.code,{children:"onTouchStart"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#maplayertouchevent",children:"MapLayerTouchEvent"}),") => void"]}),"\n",(0,t.jsxs)(n.p,{children:["Called when a ",(0,t.jsx)(n.code,{children:"touchstart"})," event occurs within the map."]}),"\n",(0,t.jsxs)(n.p,{children:["If ",(0,t.jsx)(n.code,{children:"interactiveLayerIds"})," is specified, the event will contain an additional ",(0,t.jsx)(n.code,{children:"features"})," field that contains features under the cursor from the specified layers."]}),"\n",(0,t.jsxs)(n.h4,{id:"ontouchend",children:[(0,t.jsx)(n.code,{children:"onTouchEnd"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#maplayertouchevent",children:"MapLayerTouchEvent"}),") => void"]}),"\n",(0,t.jsxs)(n.p,{children:["Called when a ",(0,t.jsx)(n.code,{children:"touchend"})," event occurs within the map."]}),"\n",(0,t.jsxs)(n.p,{children:["If ",(0,t.jsx)(n.code,{children:"interactiveLayerIds"})," is specified, the event will contain an additional ",(0,t.jsx)(n.code,{children:"features"})," field that contains features under the cursor from the specified layers."]}),"\n",(0,t.jsxs)(n.h4,{id:"ontouchmove",children:[(0,t.jsx)(n.code,{children:"onTouchMove"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#maplayertouchevent",children:"MapLayerTouchEvent"}),") => void"]}),"\n",(0,t.jsxs)(n.p,{children:["Called when a ",(0,t.jsx)(n.code,{children:"touchmove"})," event occurs within the map."]}),"\n",(0,t.jsxs)(n.p,{children:["If ",(0,t.jsx)(n.code,{children:"interactiveLayerIds"})," is specified, the event will contain an additional ",(0,t.jsx)(n.code,{children:"features"})," field that contains features under the cursor from the specified layers."]}),"\n",(0,t.jsxs)(n.h4,{id:"ontouchcancel",children:[(0,t.jsx)(n.code,{children:"onTouchCancel"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#maplayertouchevent",children:"MapLayerTouchEvent"}),") => void"]}),"\n",(0,t.jsxs)(n.p,{children:["Called when a ",(0,t.jsx)(n.code,{children:"touchcancel"})," event occurs within the map."]}),"\n",(0,t.jsxs)(n.p,{children:["If ",(0,t.jsx)(n.code,{children:"interactiveLayerIds"})," is specified, the event will contain an additional ",(0,t.jsx)(n.code,{children:"features"})," field that contains features under the cursor from the specified layers."]}),"\n",(0,t.jsxs)(n.h4,{id:"onmovestart",children:[(0,t.jsx)(n.code,{children:"onMoveStart"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#viewstatechangeevent",children:"ViewStateChangeEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called just before the map begins a transition from one view to another."}),"\n",(0,t.jsxs)(n.h4,{id:"onmove",children:[(0,t.jsx)(n.code,{children:"onMove"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#viewstatechangeevent",children:"ViewStateChangeEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called repeatedly during an animated transition from one view to another."}),"\n",(0,t.jsxs)(n.p,{children:["When ",(0,t.jsx)(n.code,{children:"Map"})," is used as a controlled component, ",(0,t.jsx)(n.code,{children:"event.viewState"}),' reflects the view state that the camera "proposes" to move to, as a result of either user interaction or methods such as ',(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/map/#map#flyto",children:"flyTo"}),". The camera does not actually change until the application updates the view state props (",(0,t.jsx)(n.code,{children:"longitude"}),", ",(0,t.jsx)(n.code,{children:"latitude"}),", ",(0,t.jsx)(n.code,{children:"zoom"})," etc.).\r\nSee ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/get-started/state-management",children:"state management"})," for examples."]}),"\n",(0,t.jsxs)(n.h4,{id:"onmoveend",children:[(0,t.jsx)(n.code,{children:"onMoveEnd"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#viewstatechangeevent",children:"ViewStateChangeEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called just after the map completes a transition from one view to another."}),"\n",(0,t.jsxs)(n.h4,{id:"ondragstart",children:[(0,t.jsx)(n.code,{children:"onDragStart"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#viewstatechangeevent",children:"ViewStateChangeEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:'Called when a "drag to pan" interaction starts.'}),"\n",(0,t.jsxs)(n.h4,{id:"ondrag",children:[(0,t.jsx)(n.code,{children:"onDrag"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#viewstatechangeevent",children:"ViewStateChangeEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:'Called repeatedly during a "drag to pan" interaction.'}),"\n",(0,t.jsxs)(n.h4,{id:"ondragend",children:[(0,t.jsx)(n.code,{children:"onDragEnd"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#viewstatechangeevent",children:"ViewStateChangeEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:'Called when a "drag to pan" interaction ends.'}),"\n",(0,t.jsxs)(n.h4,{id:"onzoomstart",children:[(0,t.jsx)(n.code,{children:"onZoomStart"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#viewstatechangeevent",children:"ViewStateChangeEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called just before the map begins a transition from one zoom level to another."}),"\n",(0,t.jsxs)(n.h4,{id:"onzoom",children:[(0,t.jsx)(n.code,{children:"onZoom"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#viewstatechangeevent",children:"ViewStateChangeEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called repeatedly during an animated transition from one zoom level to another."}),"\n",(0,t.jsxs)(n.p,{children:["When ",(0,t.jsx)(n.code,{children:"Map"})," is used as a controlled component, ",(0,t.jsx)(n.code,{children:"event.viewState.zoom"}),' reflects the zoom that the camera "proposes" to change to, as a result of either user interaction or methods such as ',(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/map/#map#flyto",children:"flyTo"}),". The camera does not actually change until the application updates the ",(0,t.jsx)(n.code,{children:"zoom"})," prop."]}),"\n",(0,t.jsxs)(n.h4,{id:"onzoomend",children:[(0,t.jsx)(n.code,{children:"onZoomEnd"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#viewstatechangeevent",children:"ViewStateChangeEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called just after the map completes a transition from one zoom level to another."}),"\n",(0,t.jsxs)(n.h4,{id:"onrotatestart",children:[(0,t.jsx)(n.code,{children:"onRotateStart"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#viewstatechangeevent",children:"ViewStateChangeEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called just before the map begins a transition from one bearing (rotation) to another."}),"\n",(0,t.jsxs)(n.h4,{id:"onrotate",children:[(0,t.jsx)(n.code,{children:"onRotate"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#viewstatechangeevent",children:"ViewStateChangeEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called repeatedly during an animated transition from one bearing (rotation) to another."}),"\n",(0,t.jsxs)(n.p,{children:["When ",(0,t.jsx)(n.code,{children:"Map"})," is used as a controlled component, ",(0,t.jsx)(n.code,{children:"event.viewState.bearing"}),' reflects the zoom that the camera "proposes" to change to, as a result of either user interaction or methods such as ',(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/map/#map#flyto",children:"flyTo"}),". The camera does not actually change until the application updates the ",(0,t.jsx)(n.code,{children:"bearing"})," prop."]}),"\n",(0,t.jsxs)(n.h4,{id:"onrotateend",children:[(0,t.jsx)(n.code,{children:"onRotateEnd"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#viewstatechangeevent",children:"ViewStateChangeEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called just after the map completes a transition from one bearing (rotation) to another."}),"\n",(0,t.jsxs)(n.h4,{id:"onpitchstart",children:[(0,t.jsx)(n.code,{children:"onPitchStart"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#viewstatechangeevent",children:"ViewStateChangeEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called just before the map begins a transition from one pitch (tilt) to another."}),"\n",(0,t.jsxs)(n.h4,{id:"onpitch",children:[(0,t.jsx)(n.code,{children:"onPitch"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#viewstatechangeevent",children:"ViewStateChangeEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called repeatedly during an animated transition from one pitch (tilt) to another."}),"\n",(0,t.jsxs)(n.p,{children:["When ",(0,t.jsx)(n.code,{children:"Map"})," is used as a controlled component, ",(0,t.jsx)(n.code,{children:"event.viewState.pitch"}),' reflects the zoom that the camera "proposes" to change to, as a result of either user interaction or methods such as ',(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/map/#map#flyto",children:"flyTo"}),". The camera does not actually change until the application updates the ",(0,t.jsx)(n.code,{children:"pitch"})," prop."]}),"\n",(0,t.jsxs)(n.h4,{id:"onpitchend",children:[(0,t.jsx)(n.code,{children:"onPitchEnd"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#viewstatechangeevent",children:"ViewStateChangeEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:"Called just after the map completes a transition from one pitch (tilt) to another."}),"\n",(0,t.jsxs)(n.h4,{id:"onboxzoomstart",children:[(0,t.jsx)(n.code,{children:"onBoxZoomStart"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#mapboxzoomevent",children:"MapBoxZoomEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:'Called when a "box zoom" interaction starts.'}),"\n",(0,t.jsxs)(n.h4,{id:"onboxzoomend",children:[(0,t.jsx)(n.code,{children:"onBoxZoomEnd"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#mapboxzoomevent",children:"MapBoxZoomEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:'Called when a "box zoom" interaction ends.'}),"\n",(0,t.jsxs)(n.h4,{id:"onboxzoomcancel",children:[(0,t.jsx)(n.code,{children:"onBoxZoomCancel"}),": (event:",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#mapboxzoomevent",children:"MapBoxZoomEvent"}),") => void"]}),"\n",(0,t.jsx)(n.p,{children:'Called when the user cancels a "box zoom" interaction, or when the bounding box does not meet the minimum size threshold.'}),"\n",(0,t.jsxs)(n.h4,{id:"ondata",children:[(0,t.jsx)(n.code,{children:"onData"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#mapstyledataevent",children:"MapStyleDataEvent"})," | ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#mapsourcedataevent",children:"MapSourceDataEvent"}),") => void"]}),"\n",(0,t.jsxs)(n.p,{children:["Called when any map data loads or changes. See ",(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/events/#mapdataevent",children:"MapDataEvent"})," for more information."]}),"\n",(0,t.jsxs)(n.h4,{id:"onstyledata",children:[(0,t.jsx)(n.code,{children:"onStyleData"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#mapstyledataevent",children:"MapStyleDataEvent"}),") => void"]}),"\n",(0,t.jsxs)(n.p,{children:["Called when the map's style loads or changes. See ",(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/events/#mapdataevent",children:"MapDataEvent"})," for more information."]}),"\n",(0,t.jsxs)(n.h4,{id:"onsourcedata",children:[(0,t.jsx)(n.code,{children:"onSourceData"}),": (event: ",(0,t.jsx)(n.a,{href:"/react-map-gl/docs/api-reference/mapbox/types#mapsourcedataevent",children:"MapSourceDataEvent"}),") => void"]}),"\n",(0,t.jsxs)(n.p,{children:["Called when one of the map's sources loads or changes, including if a tile belonging to a source loads or changes. See ",(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/events/#mapdataevent",children:"MapDataEvent"})," for more information."]}),"\n",(0,t.jsx)(n.h3,{id:"other-options",children:"Other options"}),"\n",(0,t.jsxs)(n.p,{children:["The following props, along with any options of the ",(0,t.jsx)(n.code,{children:"Map"})," class (",(0,t.jsx)(n.a,{href:"https://docs.mapbox.com/mapbox-gl-js/api/map/",children:"Mapbox"})," | ",(0,t.jsx)(n.a,{href:"https://maplibre.org/maplibre-gl-js/docs/API/type-aliases/MapOptions/",children:"Maplibre"}),") not listed above, can be specified to construct the underlying ",(0,t.jsx)(n.code,{children:"Map"})," instance."]}),"\n",(0,t.jsx)(n.p,{children:"Note: props in this section are not reactive. They are only used once when the Map instance is constructed."}),"\n",(0,t.jsxs)(n.h4,{id:"maplib",children:[(0,t.jsx)(n.code,{children:"mapLib"}),": any"]}),"\n",(0,t.jsx)(n.p,{children:"Default:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"import('mapbox-gl')"})," if imported from ",(0,t.jsx)(n.code,{children:"react-map-gl"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"import('maplibre-gl')"})," if imported from ",(0,t.jsx)(n.code,{children:"react-map-gl/maplibre"})]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Specify the underlying base map library for the Map component. The value can be provided with several options:"}),"\n",(0,t.jsx)(n.p,{children:"By module import (and embedding in the final bundle):"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-tsx",children:"import * as React from 'react';\r\nimport Map from 'react-map-gl/mapbox';\r\nimport mapboxgl from 'mapbox-gl';\r\n\r\nfunction App() {\r\n return ;\r\n}\n"})}),"\n",(0,t.jsx)(n.p,{children:"By dynamic import (thus enable bundle splitting):"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-tsx",children:"import * as React from 'react';\r\nimport Map from 'react-map-gl/mapbox';\r\n\r\nfunction App() {\r\n return ;\r\n}\n"})}),"\n",(0,t.jsx)(n.p,{children:"Or to load a pre-bundled version of the library:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",metastring:'title="index.html"',children:' + - -
-

Introduction

These docs are forLooking for an old version?

react-map-gl is a suite of React components for -Mapbox GL JS-compatible libraries.

LibraryDescription
MapLibreAn open fork of mapbox-gl v1, that can be used without a mapbox token.
Mapbox GL JS v1The previous version of mapbox GL JS. This version is free open source and can be used with non-mapbox basemaps without a mapbox token.
Mapbox GL JS v2The latest version of Mapbox GL JS. Note that version 2 is not free open source, and a mapbox token is required and billable events are generated even if you do not use mapbox hosted basemaps.
Other mapbox-gl forksIt may be possible to use react-map-gl with other mapbox forks, but this is not a supported use case. Minor PRs to enable other forks to be used may be accepted.

For basemaps:

  • You can load map data from Mapbox's own service.
  • You can create and host your own map data using one of the many open source tools.

New to react-map-gl? Get Started

Want to contribute? See our Developer Guide

Design Philosophy

react-map-gl was first created by Uber's Visualization team, where Mapbox was used as a component to build powerful web tools such as geospatial analytics and self-driving data visualization. To manage the complexity of these applications, we fully embrace React and reactive programming.

The stock mapbox-gl APIs are imperative. That is, you instruct the map to do something (for example, map.flyTo), and it will execute the command at its own pace.

This does not scale when we have many components that need to synchronize with each other. We sometimes render two maps side by side, and when the user interacts with one, update both cameras. We draw React UI outside of the map container, that moves with the camera. We also render WebGL graphic overlays on top of the map, most notably with deck.gl. In these use cases, in order for all components to synchronize correctly, they must have their shared states managed by React. We might store the source of truth in a parent component state, or Redux store, or hooks, and let it propagate down to the map as well as its peers.

Ultimately, in the spirit of the reactive programming paradigm, data always flows down. As long as the map manages its own state, as mapbox-gl is designed to do, we risk the components going out of sync.

react-map-gl creates a fully reactive wrapper for mapbox-gl. The Map component can be fully controlled, that is, the map's camera would never deviate from the props that it's assigned. Read more about this core behavior in state management.

Limitations

In v7.0, react-map-gl was fully rewritten to better align its API with the underlying Mapbox GL JS library. Wherever the reactive usage patterns permits, the wrapper's props and methods are 1:1 mappings to their native API equivelants.

It is possible to call the native methods directly from the Map instance obtained via getMap. However, doing so may result in the map's state to deviate from its props. For example, calling map.setMaxZoom directly will cause the map's constraint settings to differ from the value of the maxZoom prop. Generally speaking, calling a native method is disencouraged if the same thing can be achieved through the React interface. If a third-party plugin does so, then it may lead to some unexpected behaviors.

- - + +

Introduction

+
+

These docs are for v8.0. For v7, see here.

+
+

react-map-gl is a suite of React components for +mapbox-gl, maplibre-gl or compatible libraries.

+
LibraryDescription
MapLibre GL JSAn Open-source TypeScript library for publishing web maps.
Mapbox GL JSA JavaScript library for interactive, customizable vector maps on the web.
Mapbox GL JS v1The last free-open-source version of Mapbox GL JS. This version can be used without a Mapbox token if you do not use Mapbox hosted basemaps.
Other compatible forksIt may be possible to use react-map-gl with mapbox-gl/maplibre-gl forks, but this is not a supported use case. Minor PRs to enable other forks to be used may be accepted.
+

If you need help choosing a base map library that is right for you:

+
    +
  • Decide where to get your vector map data. +
      +
    • mapbox-gl is designed to work seamlessly with Mapbox's own data service. You will need a billable Mapbox token to use it.
    • +
    • There are a number of map data providers who support maplibre-gl, with a variaty of data quality and price options.
    • +
    • You can create and host your own map tiles and use them with maplibre-gl for (almost) free, if you are comfortable of using open source tools and setting up a cloud storage account.
    • +
    +
  • +
  • Visit Mapbox and MapLibre websites for examples and documentation. Each library offer unique features that may not exist in another.
  • +
+

New to react-map-gl? Get Started

+

Want to contribute? See our Developer Guide

+

Design Philosophy

+

react-map-gl was first created by Uber's Visualization team, where Mapbox was used as a component to build powerful web tools such as geospatial analytics and self-driving data visualization. To manage the complexity of these applications, we fully embrace React and reactive programming.

+

The stock mapbox-gl APIs are imperative. That is, you instruct the map to do something (for example, map.flyTo), and it will execute the command at its own pace.

+

This does not scale when we have many components that need to synchronize with each other. We sometimes render two maps side by side, and when the user interacts with one, update both cameras. We draw React UI outside of the map container, that moves with the camera. We also render WebGL graphic overlays on top of the map, most notably with deck.gl. In these use cases, in order for all components to synchronize correctly, they must have their shared states managed by React. We might store the source of truth in a parent component state, or Redux store, or hooks, and let it propagate down to the map as well as its peers.

+

Ultimately, in the spirit of the reactive programming paradigm, data always flows down. As long as the map manages its own state, as mapbox-gl is designed to do, we risk the components going out of sync.

+

react-map-gl creates a fully reactive wrapper for mapbox-gl/maplibre-gl. The Map component can be fully controlled, that is, the map's camera would never deviate from the props that it's assigned. Read more about this core behavior in state management.

+

Limitations

+

In v7.0, react-map-gl was fully rewritten to better align its API with the underlying Mapbox GL JS library. Wherever the reactive usage patterns permits, the wrapper's props and methods are 1:1 mappings to their native API equivelants.

+

It is possible to call the native methods directly from the Map instance obtained via getMap. However, doing so may result in the map's state to deviate from its props. For example, calling map.setMaxZoom directly will cause the map's constraint settings to differ from the value of the maxZoom prop. Generally speaking, calling a native method is disencouraged if the same thing can be achieved through the React interface. If a third-party plugin does so, then it may lead to some unexpected behaviors.

\ No newline at end of file diff --git a/docs/api-reference/attribution-control.html b/docs/api-reference/attribution-control.html deleted file mode 100644 index a1bb576b..00000000 --- a/docs/api-reference/attribution-control.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -AttributionControl | React Map GL - - - - -
-

AttributionControl

React component that wraps the base library's AttributionControl class (Mapbox | Maplibre).

import * as React from 'react';
import Map, {AttributionControl} from 'react-map-gl';

function App() {
return <Map
mapboxAccessToken="<Mapbox access token>"
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="mapbox://styles/mapbox/streets-v9"
// disable the default attribution
attributionControl={false}
>
<AttributionControl customAttribution="Map design by me" />
</Map>;
}

Properties

Reactive Properties

style: CSSProperties

CSS style override that applies to the control's container.

Other Properties

The properties in this section are not reactive. They are only used when the component first mounts.

Any options supported by the AttributionControl class (Mapbox | Maplibre), such as

  • compact
  • customAttribution

Plus the following:

position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'

Default: 'bottom-right'

Placement of the control relative to the map.

Source

attribution-control.ts

- - - - \ No newline at end of file diff --git a/docs/api-reference/fullscreen-control.html b/docs/api-reference/fullscreen-control.html deleted file mode 100644 index 5c36513f..00000000 --- a/docs/api-reference/fullscreen-control.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -FullscreenControl | React Map GL - - - - -
-

FullscreenControl

React component that wraps the base library's FullscreenControl class (Mapbox | Maplibre).

import * as React from 'react';
import Map, {FullscreenControl} from 'react-map-gl';

function App() {
return <Map
mapboxAccessToken="<Mapbox access token>"
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="mapbox://styles/mapbox/streets-v9"
>
<FullscreenControl />
</Map>;
}

Properties

Reactive Properties

style: CSSProperties

CSS style override that applies to the control's container.

Other Properties

The properties in this section are not reactive. They are only used when the component first mounts.

containerId: string

Id of the DOM element which should be made full screen. By default, the map container element will be made full screen.

position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'

Default: 'top-right'

Placement of the control relative to the map.

Source

fullscreen-control.ts

- - - - \ No newline at end of file diff --git a/docs/api-reference/geolocate-control.html b/docs/api-reference/geolocate-control.html deleted file mode 100644 index a8a50df6..00000000 --- a/docs/api-reference/geolocate-control.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - -GeolocateControl | React Map GL - - - - -
-

GeolocateControl

React component that wraps the base library's GeolocateControl class (Mapbox | Maplibre).

import * as React from 'react';
import Map, {GeolocateControl} from 'react-map-gl';

function App() {
return <Map
mapboxAccessToken="<Mapbox access token>"
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="mapbox://styles/mapbox/streets-v9"
>
<GeolocateControl />
</Map>;
}

Properties

Reactive Properties

style: CSSProperties

CSS style override that applies to the control's container.

Callbacks

onGeolocate: (evt: GeolocateResultEvent) => void

Called on each Geolocation API position update that returned as success.

onError: (evt: GeolocateErrorEvent) => void

Called on each Geolocation API position update that returned as an error.

onOutOfMaxBounds: (evt: GeolocateResultEvent) => void

Called on each Geolocation API position update that returned as success but user position is out of map maxBounds.

onTrackUserLocationStart: (evt: GeolocateEvent) => void

Called when the GeolocateControl changes to the active lock state.

onTrackUserLocationEnd: (evt: GeolocateEvent) => void

Called when the GeolocateControl changes to the background state.

Other Properties

The properties in this section are not reactive. They are only used when the component first mounts.

Any options supported by the GeolocateControl class (Mapbox | Maplibre), such as

  • positionOptions
  • fitBoundsOptions
  • trackUserLocation
  • showAccuracyCircle
  • showUserLocation

Plus the following:

position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'

Default: 'bottom-right'

Placement of the control relative to the map.

Methods

The underlying native GeolocateControl instance is accessible via a React ref hook. -You may use it to call any imperative methods:

import * as React from 'react';
import {useRef, useEffect} from 'react';
import Map, {GeolocateControl} from 'react-map-gl';
import type mapboxgl from 'mapbox-gl';

function App() {
const geoControlRef = useRef<mapboxgl.GeolocateControl>();

useEffect(() => {
// Activate as soon as the control is loaded
geoControlRef.current?.trigger();
}, [geoControlRef.current]);

return <Map>
<GeolocateControl ref={geoControlRef} />
</Map>;
}

Source

geolocate-control.ts

- - - - \ No newline at end of file diff --git a/docs/api-reference/layer.html b/docs/api-reference/layer.html deleted file mode 100644 index ba2c6532..00000000 --- a/docs/api-reference/layer.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -Layer | React Map GL - - - - -
-

Layer

This component allows apps to create a map layer using React.

import * as React from 'react';
import Map, {Layer} from 'react-map-gl';
import type {FillLayer} from 'react-map-gl';

const parkLayer: FillLayer = {
id: 'landuse_park',
type: 'fill',
source: 'mapbox',
'source-layer': 'landuse',
filter: ['==', 'class', 'park'],
paint: {
'fill-color': '#4E3FC8'
}
};

function App() {
return <Map
mapboxAccessToken="<Mapbox access token>"
initialViewState={{
longitude: -122.4,
latitude: 37.8,
zoom: 14
}}
mapStyle="mapbox://styles/mapbox/streets-v9"
>
<Layer {...parkLayer} />
</Map>;
}

Properties

The props provided to this component should be conforming to the Mapbox layer specification.

When props change shallowly, the component will perform style diffing to update the layer. Avoid defining constant objects/arrays inline may help performance.

Identity Properties

Once a <Layer> is mounted, the following props should not change. If you add/remove multiple JSX layers dynamically, make sure you use React's key prop to give each element a stable identity.

id: string

Unique identifier of the layer. If not provided, a default id will be assigned.

type: string

Required. Type of the layer.

Options

beforeId: string

The ID of an existing layer to insert this layer before. If this prop is omitted, the layer will be appended to the end of the layers array. This is useful when using dynamic layers with a map style from a URL.

Note that layers are added by the order that they mount. They are NOT reordered later if their relative positions in the JSX tree change. If dynamic reordering is desired, you should manipulate beforeId for consistent behavior.

source: string

source is required by some layer types in the Mapbox style specification. If <Layer> is used as the immediate child of a Source component, this prop will be overwritten by the id of the parent source. If the <Layer/> component is not an immediate descendant of <Source/>, e.g wrapped inside a helper component, source property needs to be provided same as the id of the <Source/> component for the <Layer/> component to show.

Source

layer.ts

- - - - \ No newline at end of file diff --git a/docs/api-reference/map-provider.html b/docs/api-reference/map-provider.html deleted file mode 100644 index c3f6721d..00000000 --- a/docs/api-reference/map-provider.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -MapProvider | React Map GL - - - - -
-

MapProvider

A Context.Provider that facilitates map operations outside of the component that directly renders a Map.

The component should wrap all nodes in which you may want to access the maps:

import {MapProvider} from 'react-map-gl';

function Root() {
return (
<MapProvider>
{
// Application tree, somewhere one or more <Map /> component(s) are rendered
}
</MapProvider>
);
}

See useMap for more information.

Source

use-map.tsx

- - - - \ No newline at end of file diff --git a/docs/api-reference/map.html b/docs/api-reference/map.html deleted file mode 100644 index 99903fcc..00000000 --- a/docs/api-reference/map.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - -default (Map) | React Map GL - - - - -
-

default (Map)

React component that wraps the base library's Map class (Mapbox | Maplibre). This is also the default export from react-map-gl.

app.tsx
import * as React from 'react';
import Map from 'react-map-gl';

function App() {
return (
<Map
mapboxAccessToken="<Mapbox access token>"
initialViewState={{
longitude: -122.4,
latitude: 37.8,
zoom: 14
}}
style={{width: 600, height: 400}}
mapStyle="mapbox://styles/mapbox/streets-v9"
/>
);
}

Properties

Aside from the props listed below, the Map component supports all parameters of the Map class constructor (Mapbox | Maplibre). Beware that this is not an exhaustive list of all props. Different base map libraries may offer different options and default values. When in doubt, refer to your base map library's documentation.

Layout options

id: string

Map container id.

style: CSSProperties

Default: {position: 'relative', width: '100%', height: '100%'}

Map container CSS.

cursor: string

Default: 'auto'

The current cursor type.

Styling options

fog: Fog

The fog property of the style. Must conform to the Fog Style Specification. -If undefined is provided, removes the fog from the map.

light: Light

Light properties of the style. Must conform to the Light Style Specification.

mapStyle: MapStyle | string | Immutable

Default: (empty style)

The map's Mapbox style. This must be an a JSON object conforming to the schema described in the Mapbox Style Specification, or a URL to such JSON.

projection: string | Projection

Default: 'mercator'

The projection the map should be rendered in. Available projections are Albers ('albers'), Equal Earth ('equalEarth'), Equirectangular/Plate Carrée/WGS84 ('equirectangular'), Lambert ('lambertConformalConic'), Mercator ('mercator'), Natural Earth ('naturalEarth'), and Winkel Tripel ('winkelTripel'). Conic projections such as Albers and Lambert have configurable center and parallels properties that allow developers to define the region in which the projection has minimal distortion; see example.

renderWorldCopies: boolean

Default: true

If true, multiple copies of the world will be rendered, when zoomed out.

styleDiffing: boolean

Default: true

Enable diffing when mapStyle changes. If false, force a 'full' update, removing the current style and building the given one instead of attempting a diff-based update.

terrain: Terrain

Terrain property of the style. Must conform to the Terrain Style Specification. -If undefined is provided, removes terrain from the map.

Camera options

initialViewState: object

The initial view state of the map. If specified, longitude, latitude, zoom etc. in props are ignored when constructing the map. Only specify initialViewState if Map is being used as an uncontrolled component. See state management for examples.

  • bounds: LngLatBoundsLike - The initial bounds of the map. If specified, it overrides the longitude, latitude and zoom options. Default null.
  • fitBoundsOptions - An object to use only when setting the bounds option. Default null.
    • fitBoundsOptions.offset: PointLike
    • fitBoundsOptions.minZoom: number
    • fitBoundsOptions.maxZoom: number
    • fitBoundsOptions.padding: PaddingOptions
  • longitude: number - The initial longitude of the map center. Default 0.
  • latitude: number - The initial latitude of the map center. Default 0.
  • zoom: number - The initial zoom level. Default 0.
  • pitch: number - The initial pitch (tilt) of the map. Default 0.
  • bearing: number - The initial bearing (rotation) of the map. Default 0.

longitude: number

The longitude of the map center.

latitude: number

The latitude of the map center.

zoom: number

The zoom level of the map.

pitch: number

The initial pitch (tilt) of the map, measured in degrees away from the plane of the screen (0-85).

bearing: number

The initial bearing (rotation) of the map, measured in degrees counter-clockwise from north.

padding: PaddingOptions

Default: null

The padding in pixels around the viewport.

minZoom: number

Default: 0

The minimum zoom level of the map (0-24).

maxZoom: number

Default: 22

The maximum zoom level of the map (0-24).

minPitch: number

Default: 0

The minimum pitch of the map (0-85).

maxPitch: number

Default: 60

The maximum pitch of the map (0-85).

maxBounds: LngLatBoundsLike

Default: null

If set, the map is constrained to the given bounds.

Input handler options

boxZoom: boolean

Default: true

If true, the "box zoom" interaction is enabled. See BoxZoomHandler -(Mapbox | Maplibre)

doubleClickZoom: boolean

Default: true

If true, the "double click to zoom" interaction is enabled. See DoubleClickZoomHandler (Mapbox | Maplibre).

dragRotate: boolean

Default: true

If true, the "drag to rotate" interaction is enabled. See DragRotateHandler (Mapbox | Maplibre).

dragPan: boolean | Object

Default: true

If true, the "drag to pan" interaction is enabled. Optionally accpt an object value that is the options to DragPanHandler.enable (Mapbox | Maplibre).

keyboard: boolean

Default: true

If true, keyboard shortcuts are enabled. See KeyboardHandler (Mapbox | Maplibre).

scrollZoom: boolean | Object

Default: true

If true, the "scroll to zoom" interaction is enabled. Optionally accpt an object value that is the options to ScrollZoomHandler.enable (Mapbox | Maplibre)

touchPitch: boolean | Object

Default: true

If true, the "drag to pitch" interaction is enabled. Optionally accpt an object value that is the options to TouchPitchHandler.enable(Mapbox | Maplibre).

touchZoomRotate: boolean | Object

Default: true

If true, the "pinch to rotate and zoom" interaction is enabled. Optionally accpt an object value that is the options to TouchZoomRotateHandler.enable (Mapbox | Maplibre).

interactiveLayerIds: string[]

Default: null

The id(s) of style layer(s).

If specified, pointer event (mousemove, click etc.) listeners will be triggered only if its location is within a visible feature in these layers, and the event will have a features property containing an array of the matching features.

If not specified, pointer event listeners will be triggered by a corresponding event happening anywhere on the map, and the event will not have a features property.

See the Callbacks section for affected events.

Callbacks

onResize: (event: MapEvent) => void

Called when the map has been resized.

onLoad: (event: MapEvent) => void

Called after all necessary resources have been downloaded and the first visually complete rendering of the map has occurred.

onRender: (event: MapEvent)) => void

Called whenever the map is drawn to the screen.

onIdle: (event: MapEvent)) => void

Called after the last frame rendered before the map enters an "idle" state:

  • No camera transitions are in progress
  • All currently requested tiles have loaded
  • All fade/transition animations have completed

onRemove: (event: MapEvent)) => void

Called when the map has been removed.

onError: (event: ErrorEvent) => void

Default: evt => console.error(evt.error)

Called when an error occurs.

onMouseDown: (event: MapLayerMouseEvent) => void

Called when a pointing device (usually a mouse) is pressed within the map.

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer.

onMouseUp: (event: MapLayerMouseEvent) => void

Called when a pointing device (usually a mouse) is released within the map.

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer.

onMouseOver: (event: MapLayerMouseEvent) => void

Called when a pointing device (usually a mouse) is moved within the map. As you move the cursor across a web page containing a map, the event will fire each time it enters the map or any child elements.

onMouseEnter: (event: MapLayerMouseEvent) => void

Called when a pointing device (usually a mouse) enters a visible portion of the layer(s) specified by interactiveLayerIds from outside that layer or outside the map canvas.

onMouseMove: (event: MapLayerMouseEvent) => void

Called when a pointing device (usually a mouse) is moved while the cursor is inside the map. As you move the cursor across the map, the event will fire every time the cursor changes position within the map.

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer.

onMouseLeave: (event: MapLayerMouseEvent) => void

Called when a pointing device (usually a mouse) leaves a visible portion of the layer(s) specified by interactiveLayerIds or moves from the layer to outside the map canvas.

onMouseOut: (event: MapLayerMouseEvent) => void

Called when a point device (usually a mouse) leaves the map's canvas.

onClick: (event: MapLayerMouseEvent) => void

Called when a pointing device (usually a mouse) is pressed and released at the same point on the map.

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer.

onDblClick: (event: MapLayerMouseEvent) => void

Called when a pointing device (usually a mouse) is pressed and released twice at the same point on the map in rapid succession.

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer.

onContextMenu: (event: MapLayerMouseEvent) => void

Called when the right button of the mouse is clicked or the context menu key is pressed within the map.

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer.

onWheel: (event: MapWheelEvent) => void

Called when a wheel event occurs within the map.

onTouchStart: (event: MapLayerTouchEvent) => void

Called when a touchstart event occurs within the map.

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer.

onTouchEnd: (event: MapLayerTouchEvent) => void

Called when a touchend event occurs within the map.

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer.

onTouchMove: (event: MapLayerTouchEvent) => void

Called when a touchmove event occurs within the map.

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer.

onTouchCancel: (event: MapLayerTouchEvent) => void

Called when a touchcancel event occurs within the map.

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer.

onMoveStart: (event: ViewStateChangeEvent) => void

Called just before the map begins a transition from one view to another.

onMove: (event: ViewStateChangeEvent) => void

Called repeatedly during an animated transition from one view to another.

When Map is used as a controlled component, event.viewState reflects the view state that the camera "proposes" to move to, as a result of either user interaction or methods such as flyTo. The camera does not actually change until the application updates the view state props (longitude, latitude, zoom etc.). -See state management for examples.

onMoveEnd: (event: ViewStateChangeEvent) => void

Called just after the map completes a transition from one view to another.

onDragStart: (event: ViewStateChangeEvent) => void

Called when a "drag to pan" interaction starts.

onDrag: (event: ViewStateChangeEvent) => void

Called repeatedly during a "drag to pan" interaction.

onDragEnd: (event: ViewStateChangeEvent) => void

Called when a "drag to pan" interaction ends.

onZoomStart: (event: ViewStateChangeEvent) => void

Called just before the map begins a transition from one zoom level to another.

onZoom: (event: ViewStateChangeEvent) => void

Called repeatedly during an animated transition from one zoom level to another.

When Map is used as a controlled component, event.viewState.zoom reflects the zoom that the camera "proposes" to change to, as a result of either user interaction or methods such as flyTo. The camera does not actually change until the application updates the zoom prop.

onZoomEnd: (event: ViewStateChangeEvent) => void

Called just after the map completes a transition from one zoom level to another.

onRotateStart: (event: ViewStateChangeEvent) => void

Called just before the map begins a transition from one bearing (rotation) to another.

onRotate: (event: ViewStateChangeEvent) => void

Called repeatedly during an animated transition from one bearing (rotation) to another.

When Map is used as a controlled component, event.viewState.bearing reflects the zoom that the camera "proposes" to change to, as a result of either user interaction or methods such as flyTo. The camera does not actually change until the application updates the bearing prop.

onRotateEnd: (event: ViewStateChangeEvent) => void

Called just after the map completes a transition from one bearing (rotation) to another.

onPitchStart: (event: ViewStateChangeEvent) => void

Called just before the map begins a transition from one pitch (tilt) to another.

onPitch: (event: ViewStateChangeEvent) => void

Called repeatedly during an animated transition from one pitch (tilt) to another.

When Map is used as a controlled component, event.viewState.pitch reflects the zoom that the camera "proposes" to change to, as a result of either user interaction or methods such as flyTo. The camera does not actually change until the application updates the pitch prop.

onPitchEnd: (event: ViewStateChangeEvent) => void

Called just after the map completes a transition from one pitch (tilt) to another.

onBoxZoomStart: (event: MapBoxZoomEvent) => void

Called when a "box zoom" interaction starts.

onBoxZoomEnd: (event: MapBoxZoomEvent) => void

Called when a "box zoom" interaction ends.

onBoxZoomCancel: (event:MapBoxZoomEvent) => void

Called when the user cancels a "box zoom" interaction, or when the bounding box does not meet the minimum size threshold.

onData: (event: MapStyleDataEvent | MapSourceDataEvent) => void

Called when any map data loads or changes. See MapDataEvent for more information.

onStyleData: (event: MapStyleDataEvent) => void

Called when the map's style loads or changes. See MapDataEvent for more information.

onSourceData: (event: MapSourceDataEvent) => void

Called when one of the map's sources loads or changes, including if a tile belonging to a source loads or changes. See MapDataEvent for more information.

Other options

The following props, along with any options of the Map class (Mapbox | Maplibre) not listed above, can be specified to construct the underlying Map instance.

Note: props in this section are not reactive. They are only used once when the Map instance is constructed.

mapLib: any

Default:

  • import('mapbox-gl') if imported from react-map-gl
  • import('maplibre-gl') if imported from react-map-gl/maplibre

Specify the underlying base map library for the Map component. The value can be provided with several options:

By module import (and embedding in the final bundle):

import * as React from 'react';
import Map from 'react-map-gl';
import mapboxgl from 'mapbox-gl';

function App() {
return <Map mapLib={mapboxgl} />;
}

By dynamic import (thus enable bundle splitting):

import * as React from 'react';
import Map from 'react-map-gl';

function App() {
return <Map mapLib={import('mapbox-gl')} />;
}

Or to load a pre-bundled version of the library:

index.html
<script src="https://api.mapbox.com/mapbox-gl-js/v2.4.0/mapbox-gl.js" ></script>
app.tsx
import * as React from 'react';
import Map from 'react-map-gl';

function App() {
return <Map mapLib={window.mapboxgl} />;
}

mapboxAccessToken: string

Token used to access the Mapbox data service. See about map tokens.

baseApiUrl: string

The map's default API URL for requesting tiles, styles, sprites, and glyphs.

maxParallelImageRequests: number

Default: 16

The maximum number of images (raster tiles, sprites, icons) to load in parallel.

reuseMaps: boolean

Default: false

By default, every time a map component is unmounted, all internal resources associated with the underlying Map instance are released. If the map gets mounted again, a new Map instance is constructed.

If reuseMaps is set to true, when a map component is unmounted, the underlying Map instance is retained in memory. The next time a map component gets mounted, the saved instance is reused. This behavior may be desirable if an application frequently mounts/unmounts map(s), for example in a tabbed or collapsable UI, and wants to avoid Mapbox's billable events triggered by initialization.

Note that since some map options cannot be modified after initialization, when reusing maps, only the reactive props and initialViewState of the new component are respected.

RTLTextPlugin: string | false

Default: 'https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js'

Sets the map's RTL text plugin. Necessary for supporting the Arabic and Hebrew languages, which are written right-to-left.

Setting this prop is the equivalent of calling mapboxgl.setRTLTextPlugin with lazy: true. Set to false to disable loading the RTL text plugin.

workerClass: object

Default: null

Provides an interface for external module bundlers such as Webpack or Rollup to package mapbox-gl's WebWorker into a separate class and integrate it with the library. -Takes precedence over workerUrl.

workerCount: number

Default: 2

The number of web workers instantiated on a page with mapbox-gl maps.

workerUrl: string

Provides an interface for loading mapbox-gl's WebWorker bundle from a self-hosted URL. This is useful if your site needs to operate in a strict CSP (Content Security Policy) environment wherein you are not allowed to load JavaScript code from a Blob URL, which is default behavior.

Methods

Imperative methods are accessible via a React ref or the useMap hook.

import * as React from 'react';
import {useRef, useCallback} from 'react';
import Map from 'react-map-gl';
import type {MapRef} from 'react-map-gl';

function App() {
const mapRef = useRef<MapRef>();

const onMapLoad = useCallback(() => {
mapRef.current.on('move', () => {
// do something
});
}, []);

return <Map ref={mapRef} onLoad={onMapLoad} ... />;
}

The MapRef object exposes Map methods (Mapbox | Maplibre) that are safe to call without breaking the React bindings. For example, setStyle() is hidden from the ref object, because the style is supposed to be changed by updating the mapStyle prop. Calling the method directly may cause the the React prop to mismatch with the underlying state, and lead to unexpected behaviors.

You can still access the hidden members via getMap():

getMap()

Returns the native Map (Mapbox | Maplibre) instance associated with this component.

Source

map.tsx

- - - - \ No newline at end of file diff --git a/docs/api-reference/mapbox/attribution-control.html b/docs/api-reference/mapbox/attribution-control.html new file mode 100644 index 00000000..49e6b6f4 --- /dev/null +++ b/docs/api-reference/mapbox/attribution-control.html @@ -0,0 +1,32 @@ + + + + + +AttributionControl | react-map-gl + + + + +

AttributionControl

+

React component that wraps mapbox-gl's AttributionControl class.

+
import * as React from 'react';
import Map, {AttributionControl} from 'react-map-gl/mapbox';
import 'mapbox-gl/dist/mapbox-gl.css';

function App() {
return <Map
mapboxAccessToken="<Mapbox access token>"
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="mapbox://styles/mapbox/streets-v9"
// disable the default attribution
attributionControl={false}
>
<AttributionControl customAttribution="Map design by me" />
</Map>;
}
+

Properties

+

Reactive Properties

+

style: CSSProperties

+

CSS style override that applies to the control's container.

+

Other Properties

+

The properties in this section are not reactive. They are only used when the component first mounts.

+

Any options supported by the AttributionControl class (Mapbox | Maplibre), such as

+
    +
  • compact
  • +
  • customAttribution
  • +
+

Plus the following:

+

position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'

+

Default: 'bottom-right'

+

Placement of the control relative to the map.

+

Source

+

attribution-control.ts

+ + \ No newline at end of file diff --git a/docs/api-reference/mapbox/fullscreen-control.html b/docs/api-reference/mapbox/fullscreen-control.html new file mode 100644 index 00000000..d9de2a27 --- /dev/null +++ b/docs/api-reference/mapbox/fullscreen-control.html @@ -0,0 +1,28 @@ + + + + + +FullscreenControl | react-map-gl + + + + +

FullscreenControl

+

React component that wraps mapbox-gl's FullscreenControl class.

+
import * as React from 'react';
import Map, {FullscreenControl} from 'react-map-gl/mapbox';
import 'mapbox-gl/dist/mapbox-gl.css';

function App() {
return <Map
mapboxAccessToken="<Mapbox access token>"
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="mapbox://styles/mapbox/streets-v9"
>
<FullscreenControl />
</Map>;
}
+

Properties

+

Reactive Properties

+

style: CSSProperties

+

CSS style override that applies to the control's container.

+

Other Properties

+

The properties in this section are not reactive. They are only used when the component first mounts.

+

containerId: string

+

Id of the DOM element which should be made full screen. By default, the map container element will be made full screen.

+

position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'

+

Default: 'top-right'

+

Placement of the control relative to the map.

+

Source

+

fullscreen-control.ts

+ + \ No newline at end of file diff --git a/docs/api-reference/mapbox/geolocate-control.html b/docs/api-reference/mapbox/geolocate-control.html new file mode 100644 index 00000000..9b64014d --- /dev/null +++ b/docs/api-reference/mapbox/geolocate-control.html @@ -0,0 +1,50 @@ + + + + + +GeolocateControl | react-map-gl + + + + +

GeolocateControl

+

React component that wraps mapbox-gl's GeolocateControl class.

+
import * as React from 'react';
import Map, {GeolocateControl} from 'react-map-gl/mapbox';
import 'mapbox-gl/dist/mapbox-gl.css';

function App() {
return <Map
mapboxAccessToken="<Mapbox access token>"
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="mapbox://styles/mapbox/streets-v9"
>
<GeolocateControl />
</Map>;
}
+

Properties

+

Reactive Properties

+

style: CSSProperties

+

CSS style override that applies to the control's container.

+

Callbacks

+

onGeolocate: (evt: GeolocateResultEvent) => void

+

Called on each Geolocation API position update that returned as success.

+

onError: (evt: GeolocateErrorEvent) => void

+

Called on each Geolocation API position update that returned as an error.

+

onOutOfMaxBounds: (evt: GeolocateResultEvent) => void

+

Called on each Geolocation API position update that returned as success but user position is out of map maxBounds.

+

onTrackUserLocationStart: (evt: GeolocateEvent) => void

+

Called when the GeolocateControl changes to the active lock state.

+

onTrackUserLocationEnd: (evt: GeolocateEvent) => void

+

Called when the GeolocateControl changes to the background state.

+

Other Properties

+

The properties in this section are not reactive. They are only used when the component first mounts.

+

Any options supported by the GeolocateControl class (Mapbox | Maplibre), such as

+
    +
  • positionOptions
  • +
  • fitBoundsOptions
  • +
  • trackUserLocation
  • +
  • showAccuracyCircle
  • +
  • showUserLocation
  • +
+

Plus the following:

+

position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'

+

Default: 'bottom-right'

+

Placement of the control relative to the map.

+

Methods

+

The underlying native GeolocateControl instance is accessible via a React ref hook. +You may use it to call any imperative methods:

+
import * as React from 'react';
import {useRef, useEffect} from 'react';
import Map, {GeolocateControl} from 'react-map-gl/mapbox';
import type mapboxgl from 'mapbox-gl';

function App() {
const geoControlRef = useRef<mapboxgl.GeolocateControl>();

useEffect(() => {
// Activate as soon as the control is loaded
geoControlRef.current?.trigger();
}, [geoControlRef.current]);

return <Map>
<GeolocateControl ref={geoControlRef} />
</Map>;
}
+

Source

+

geolocate-control.ts

+ + \ No newline at end of file diff --git a/docs/api-reference/mapbox/layer.html b/docs/api-reference/mapbox/layer.html new file mode 100644 index 00000000..95264e88 --- /dev/null +++ b/docs/api-reference/mapbox/layer.html @@ -0,0 +1,32 @@ + + + + + +Layer | react-map-gl + + + + +

Layer

+

This component allows apps to create a map layer using React.

+
import * as React from 'react';
import Map, {Layer} from 'react-map-gl/mapbox';
import type {FillLayer} from 'react-map-gl/mapbox';
import 'mapbox-gl/dist/mapbox-gl.css';

const parkLayer: FillLayer = {
id: 'landuse_park',
type: 'fill',
source: 'mapbox',
'source-layer': 'landuse',
filter: ['==', 'class', 'park'],
paint: {
'fill-color': '#4E3FC8'
}
};

function App() {
return <Map
mapboxAccessToken="<Mapbox access token>"
initialViewState={{
longitude: -122.4,
latitude: 37.8,
zoom: 14
}}
mapStyle="mapbox://styles/mapbox/streets-v9"
>
<Layer {...parkLayer} />
</Map>;
}
+

Properties

+

The props provided to this component should be conforming to the Mapbox layer specification.

+

When props change shallowly, the component will perform style diffing to update the layer. Avoid defining constant objects/arrays inline may help performance.

+

Identity Properties

+

Once a <Layer> is mounted, the following props should not change. If you add/remove multiple JSX layers dynamically, make sure you use React's key prop to give each element a stable identity.

+

id: string

+

Unique identifier of the layer. If not provided, a default id will be assigned.

+

type: string

+

Required. Type of the layer.

+

Options

+

beforeId: string

+

The ID of an existing layer to insert this layer before. If this prop is omitted, the layer will be appended to the end of the layers array. This is useful when using dynamic layers with a map style from a URL.

+

Note that layers are added by the order that they mount. They are NOT reordered later if their relative positions in the JSX tree change. If dynamic reordering is desired, you should manipulate beforeId for consistent behavior.

+

source: string

+

source is required by some layer types in the Mapbox style specification. If <Layer> is used as the immediate child of a Source component, this prop will be overwritten by the id of the parent source. If the <Layer/> component is not an immediate descendant of <Source/>, e.g wrapped inside a helper component, source property needs to be provided same as the id of the <Source/> component for the <Layer/> component to show.

+

Source

+

layer.ts

+ + \ No newline at end of file diff --git a/docs/api-reference/mapbox/map-provider.html b/docs/api-reference/mapbox/map-provider.html new file mode 100644 index 00000000..6c7351df --- /dev/null +++ b/docs/api-reference/mapbox/map-provider.html @@ -0,0 +1,19 @@ + + + + + +MapProvider | react-map-gl + + + + +

MapProvider

+

A Context.Provider that facilitates map operations outside of the component that directly renders a Map.

+

The component should wrap all nodes in which you may want to access the maps:

+
import {MapProvider} from 'react-map-gl/mapbox';

function Root() {
return (
<MapProvider>
{
// Application tree, somewhere one or more <Map /> component(s) are rendered
}
</MapProvider>
);
}
+

See useMap for more information.

+

Source

+

use-map.tsx

+ + \ No newline at end of file diff --git a/docs/api-reference/mapbox/map.html b/docs/api-reference/mapbox/map.html new file mode 100644 index 00000000..b8026445 --- /dev/null +++ b/docs/api-reference/mapbox/map.html @@ -0,0 +1,285 @@ + + + + + +default (Map) | react-map-gl + + + + +

default (Map)

+

React component that wraps mapbox-gl's Map class. This is also the default export from react-map-gl.

+
app.tsx
import * as React from 'react';
import Map from 'react-map-gl/mapbox';
import 'mapbox-gl/dist/mapbox-gl.css';

function App() {
return (
<Map
mapboxAccessToken="<Mapbox access token>"
initialViewState={{
longitude: -122.4,
latitude: 37.8,
zoom: 14
}}
style={{width: 600, height: 400}}
mapStyle="mapbox://styles/mapbox/streets-v9"
/>
);
}
+

Properties

+

Aside from the props listed below, the Map component supports all parameters of the Map class constructor (Mapbox | Maplibre). Beware that this is not an exhaustive list of all props. Different base map libraries may offer different options and default values. When in doubt, refer to your base map library's documentation.

+

Layout options

+

id: string

+

Map container id.

+

Required when MapProviders are used. Used to reference the map with useMap.

+

Make sure to pick a name that has no conflict with other imports (there are no checks or errors in this case).

+

style: CSSProperties

+

Default: {position: 'relative', width: '100%', height: '100%'}

+

Map container CSS.

+

cursor: string

+

Default: 'auto'

+

The current cursor type.

+

Styling options

+

fog: Fog

+

The fog property of the style. Must conform to the Fog Style Specification. +If undefined is provided, removes the fog from the map.

+

light: Light

+

Light properties of the style. Must conform to the Light Style Specification.

+

mapStyle: MapStyle | string | Immutable

+

Default: (empty style)

+

The map's Mapbox style. This must be an a JSON object conforming to the schema described in the Mapbox Style Specification, or a URL to such JSON.

+

projection: string | Projection

+

Default: 'mercator'

+

The projection the map should be rendered in. Available projections are Albers ('albers'), Equal Earth ('equalEarth'), Equirectangular/Plate Carrée/WGS84 ('equirectangular'), Lambert ('lambertConformalConic'), Mercator ('mercator'), Natural Earth ('naturalEarth'), and Winkel Tripel ('winkelTripel'). Conic projections such as Albers and Lambert have configurable center and parallels properties that allow developers to define the region in which the projection has minimal distortion; see example.

+

renderWorldCopies: boolean

+

Default: true

+

If true, multiple copies of the world will be rendered, when zoomed out.

+

styleDiffing: boolean

+

Default: true

+

Enable diffing when mapStyle changes. If false, force a 'full' update, removing the current style and building the given one instead of attempting a diff-based update.

+

terrain: Terrain

+

Terrain property of the style. Must conform to the Terrain Style Specification. +If undefined is provided, removes terrain from the map.

+

Camera options

+

initialViewState: object

+

The initial view state of the map. If specified, longitude, latitude, zoom etc. in props are ignored when constructing the map. Only specify initialViewState if Map is being used as an uncontrolled component. See state management for examples.

+
    +
  • bounds: LngLatBoundsLike - The initial bounds of the map. If specified, it overrides the longitude, latitude and zoom options. Default null.
  • +
  • fitBoundsOptions - An object to use only when setting the bounds option. Default null. +
      +
    • fitBoundsOptions.offset: PointLike
    • +
    • fitBoundsOptions.minZoom: number
    • +
    • fitBoundsOptions.maxZoom: number
    • +
    • fitBoundsOptions.padding: PaddingOptions
    • +
    +
  • +
  • longitude: number - The initial longitude of the map center. Default 0.
  • +
  • latitude: number - The initial latitude of the map center. Default 0.
  • +
  • zoom: number - The initial zoom level. Default 0.
  • +
  • pitch: number - The initial pitch (tilt) of the map. Default 0.
  • +
  • bearing: number - The initial bearing (rotation) of the map. Default 0.
  • +
+

longitude: number

+

The longitude of the map center.

+

latitude: number

+

The latitude of the map center.

+

zoom: number

+

The zoom level of the map.

+

pitch: number

+

The initial pitch (tilt) of the map, measured in degrees away from the plane of the screen (0-85).

+

bearing: number

+

The initial bearing (rotation) of the map, measured in degrees counter-clockwise from north.

+

padding: PaddingOptions

+

Default: null

+

The padding in pixels around the viewport.

+

minZoom: number

+

Default: 0

+

The minimum zoom level of the map (0-24).

+

maxZoom: number

+

Default: 22

+

The maximum zoom level of the map (0-24).

+

minPitch: number

+

Default: 0

+

The minimum pitch of the map (0-85).

+

maxPitch: number

+

Default: 60

+

The maximum pitch of the map (0-85).

+

maxBounds: LngLatBoundsLike

+

Default: null

+

If set, the map is constrained to the given bounds.

+

Input handler options

+

boxZoom: boolean

+

Default: true

+

If true, the "box zoom" interaction is enabled. See BoxZoomHandler +(Mapbox | Maplibre)

+

doubleClickZoom: boolean

+

Default: true

+

If true, the "double click to zoom" interaction is enabled. See DoubleClickZoomHandler (Mapbox | Maplibre).

+

dragRotate: boolean

+

Default: true

+

If true, the "drag to rotate" interaction is enabled. See DragRotateHandler (Mapbox | Maplibre).

+

dragPan: boolean | Object

+

Default: true

+

If true, the "drag to pan" interaction is enabled. Optionally accept an object value that is the options to DragPanHandler.enable (Mapbox | Maplibre).

+

keyboard: boolean

+

Default: true

+

If true, keyboard shortcuts are enabled. See KeyboardHandler (Mapbox | Maplibre).

+

scrollZoom: boolean | Object

+

Default: true

+

If true, the "scroll to zoom" interaction is enabled. Optionally accept an object value that is the options to ScrollZoomHandler.enable (Mapbox | Maplibre)

+

touchPitch: boolean | Object

+

Default: true

+

If true, the "drag to pitch" interaction is enabled. Optionally accept an object value that is the options to TouchPitchHandler.enable(Mapbox | Maplibre).

+

touchZoomRotate: boolean | Object

+

Default: true

+

If true, the "pinch to rotate and zoom" interaction is enabled. Optionally accept an object value that is the options to TouchZoomRotateHandler.enable (Mapbox | Maplibre).

+

interactiveLayerIds: string[]

+

Default: null

+

The id(s) of style layer(s).

+

If specified, pointer event (mousemove, click etc.) listeners will be triggered only if its location is within a visible feature in these layers, and the event will have a features property containing an array of the matching features.

+

If not specified, pointer event listeners will be triggered by a corresponding event happening anywhere on the map, and the event will not have a features property.

+

See the Callbacks section for affected events.

+

Callbacks

+

onResize: (event: MapEvent) => void

+

Called when the map has been resized.

+

onLoad: (event: MapEvent) => void

+

Called after all necessary resources have been downloaded and the first visually complete rendering of the map has occurred.

+

onRender: (event: MapEvent)) => void

+

Called whenever the map is drawn to the screen.

+

onIdle: (event: MapEvent)) => void

+

Called after the last frame rendered before the map enters an "idle" state:

+
    +
  • No camera transitions are in progress
  • +
  • All currently requested tiles have loaded
  • +
  • All fade/transition animations have completed
  • +
+

onRemove: (event: MapEvent)) => void

+

Called when the map has been removed.

+

onError: (event: ErrorEvent) => void

+

Default: evt => console.error(evt.error)

+

Called when an error occurs.

+

onMouseDown: (event: MapLayerMouseEvent) => void

+

Called when a pointing device (usually a mouse) is pressed within the map.

+

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layers.

+

onMouseUp: (event: MapLayerMouseEvent) => void

+

Called when a pointing device (usually a mouse) is released within the map.

+

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layers.

+

onMouseOver: (event: MapLayerMouseEvent) => void

+

Called when a pointing device (usually a mouse) is moved within the map. As you move the cursor across a web page containing a map, the event will fire each time it enters the map or any child elements.

+

onMouseEnter: (event: MapLayerMouseEvent) => void

+

Called when a pointing device (usually a mouse) enters a visible portion of the layer(s) specified by interactiveLayerIds from outside that layer or outside the map canvas.

+

onMouseMove: (event: MapLayerMouseEvent) => void

+

Called when a pointing device (usually a mouse) is moved while the cursor is inside the map. As you move the cursor across the map, the event will fire every time the cursor changes position within the map.

+

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layers.

+

onMouseLeave: (event: MapLayerMouseEvent) => void

+

Called when a pointing device (usually a mouse) leaves a visible portion of the layer(s) specified by interactiveLayerIds or moves from the layer to outside the map canvas.

+

onMouseOut: (event: MapLayerMouseEvent) => void

+

Called when a point device (usually a mouse) leaves the map's canvas.

+

onClick: (event: MapLayerMouseEvent) => void

+

Called when a pointing device (usually a mouse) is pressed and released at the same point on the map.

+

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layers.

+

onDblClick: (event: MapLayerMouseEvent) => void

+

Called when a pointing device (usually a mouse) is pressed and released twice at the same point on the map in rapid succession.

+

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layers.

+

onContextMenu: (event: MapLayerMouseEvent) => void

+

Called when the right button of the mouse is clicked or the context menu key is pressed within the map.

+

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layers.

+

onWheel: (event: MapWheelEvent) => void

+

Called when a wheel event occurs within the map.

+

onTouchStart: (event: MapLayerTouchEvent) => void

+

Called when a touchstart event occurs within the map.

+

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layers.

+

onTouchEnd: (event: MapLayerTouchEvent) => void

+

Called when a touchend event occurs within the map.

+

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layers.

+

onTouchMove: (event: MapLayerTouchEvent) => void

+

Called when a touchmove event occurs within the map.

+

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layers.

+

onTouchCancel: (event: MapLayerTouchEvent) => void

+

Called when a touchcancel event occurs within the map.

+

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layers.

+

onMoveStart: (event: ViewStateChangeEvent) => void

+

Called just before the map begins a transition from one view to another.

+

onMove: (event: ViewStateChangeEvent) => void

+

Called repeatedly during an animated transition from one view to another.

+

When Map is used as a controlled component, event.viewState reflects the view state that the camera "proposes" to move to, as a result of either user interaction or methods such as flyTo. The camera does not actually change until the application updates the view state props (longitude, latitude, zoom etc.). +See state management for examples.

+

onMoveEnd: (event: ViewStateChangeEvent) => void

+

Called just after the map completes a transition from one view to another.

+

onDragStart: (event: ViewStateChangeEvent) => void

+

Called when a "drag to pan" interaction starts.

+

onDrag: (event: ViewStateChangeEvent) => void

+

Called repeatedly during a "drag to pan" interaction.

+

onDragEnd: (event: ViewStateChangeEvent) => void

+

Called when a "drag to pan" interaction ends.

+

onZoomStart: (event: ViewStateChangeEvent) => void

+

Called just before the map begins a transition from one zoom level to another.

+

onZoom: (event: ViewStateChangeEvent) => void

+

Called repeatedly during an animated transition from one zoom level to another.

+

When Map is used as a controlled component, event.viewState.zoom reflects the zoom that the camera "proposes" to change to, as a result of either user interaction or methods such as flyTo. The camera does not actually change until the application updates the zoom prop.

+

onZoomEnd: (event: ViewStateChangeEvent) => void

+

Called just after the map completes a transition from one zoom level to another.

+

onRotateStart: (event: ViewStateChangeEvent) => void

+

Called just before the map begins a transition from one bearing (rotation) to another.

+

onRotate: (event: ViewStateChangeEvent) => void

+

Called repeatedly during an animated transition from one bearing (rotation) to another.

+

When Map is used as a controlled component, event.viewState.bearing reflects the zoom that the camera "proposes" to change to, as a result of either user interaction or methods such as flyTo. The camera does not actually change until the application updates the bearing prop.

+

onRotateEnd: (event: ViewStateChangeEvent) => void

+

Called just after the map completes a transition from one bearing (rotation) to another.

+

onPitchStart: (event: ViewStateChangeEvent) => void

+

Called just before the map begins a transition from one pitch (tilt) to another.

+

onPitch: (event: ViewStateChangeEvent) => void

+

Called repeatedly during an animated transition from one pitch (tilt) to another.

+

When Map is used as a controlled component, event.viewState.pitch reflects the zoom that the camera "proposes" to change to, as a result of either user interaction or methods such as flyTo. The camera does not actually change until the application updates the pitch prop.

+

onPitchEnd: (event: ViewStateChangeEvent) => void

+

Called just after the map completes a transition from one pitch (tilt) to another.

+

onBoxZoomStart: (event: MapBoxZoomEvent) => void

+

Called when a "box zoom" interaction starts.

+

onBoxZoomEnd: (event: MapBoxZoomEvent) => void

+

Called when a "box zoom" interaction ends.

+

onBoxZoomCancel: (event:MapBoxZoomEvent) => void

+

Called when the user cancels a "box zoom" interaction, or when the bounding box does not meet the minimum size threshold.

+

onData: (event: MapStyleDataEvent | MapSourceDataEvent) => void

+

Called when any map data loads or changes. See MapDataEvent for more information.

+

onStyleData: (event: MapStyleDataEvent) => void

+

Called when the map's style loads or changes. See MapDataEvent for more information.

+

onSourceData: (event: MapSourceDataEvent) => void

+

Called when one of the map's sources loads or changes, including if a tile belonging to a source loads or changes. See MapDataEvent for more information.

+

Other options

+

The following props, along with any options of the Map class (Mapbox | Maplibre) not listed above, can be specified to construct the underlying Map instance.

+

Note: props in this section are not reactive. They are only used once when the Map instance is constructed.

+

mapLib: any

+

Default:

+
    +
  • import('mapbox-gl') if imported from react-map-gl
  • +
  • import('maplibre-gl') if imported from react-map-gl/maplibre
  • +
+

Specify the underlying base map library for the Map component. The value can be provided with several options:

+

By module import (and embedding in the final bundle):

+
import * as React from 'react';
import Map from 'react-map-gl/mapbox';
import mapboxgl from 'mapbox-gl';

function App() {
return <Map mapLib={mapboxgl} />;
}
+

By dynamic import (thus enable bundle splitting):

+
import * as React from 'react';
import Map from 'react-map-gl/mapbox';

function App() {
return <Map mapLib={import('mapbox-gl')} />;
}
+

Or to load a pre-bundled version of the library:

+
index.html
<script src="https://api.mapbox.com/mapbox-gl-js/v2.4.0/mapbox-gl.js"></script>
+
app.tsx
import * as React from 'react';
import Map from 'react-map-gl/mapbox';

function App() {
return <Map mapLib={window.mapboxgl} />;
}
+

mapboxAccessToken: string

+

Token used to access the Mapbox data service. See about map tokens.

+

baseApiUrl: string

+

The map's default API URL for requesting tiles, styles, sprites, and glyphs.

+

maxParallelImageRequests: number

+

Default: 16

+

The maximum number of images (raster tiles, sprites, icons) to load in parallel.

+

reuseMaps: boolean

+

Default: false

+

By default, every time a map component is unmounted, all internal resources associated with the underlying Map instance are released. If the map gets mounted again, a new Map instance is constructed.

+

If reuseMaps is set to true, when a map component is unmounted, the underlying Map instance is retained in memory. The next time a map component gets mounted, the saved instance is reused. This behavior may be desirable if an application frequently mounts/unmounts map(s), for example in a tabbed or collapsable UI, and wants to avoid Mapbox's billable events triggered by initialization.

+

Note that since some map options cannot be modified after initialization, when reusing maps, only the reactive props and initialViewState of the new component are respected.

+

RTLTextPlugin: string | false

+

Default: 'https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js'

+

Sets the map's RTL text plugin. Necessary for supporting the Arabic and Hebrew languages, which are written right-to-left.

+

Setting this prop is the equivalent of calling mapboxgl.setRTLTextPlugin with lazy: true. Set to false to disable loading the RTL text plugin.

+

workerClass: object

+

Default: null

+

Provides an interface for external module bundlers such as Webpack or Rollup to package mapbox-gl's WebWorker into a separate class and integrate it with the library. +Takes precedence over workerUrl.

+

workerCount: number

+

Default: 2

+

The number of web workers instantiated on a page with mapbox-gl maps.

+

workerUrl: string

+

Provides an interface for loading mapbox-gl's WebWorker bundle from a self-hosted URL. This is useful if your site needs to operate in a strict CSP (Content Security Policy) environment wherein you are not allowed to load JavaScript code from a Blob URL, which is default behavior.

+

Methods

+

Imperative methods are accessible via a React ref or the useMap hook.

+
import * as React from 'react';
import {useRef, useCallback} from 'react';
import Map from 'react-map-gl/mapbox';
import type {MapRef} from 'react-map-gl/mapbox';

function App() {
const mapRef = useRef<MapRef>(null);

const onMapLoad = useCallback(() => {
mapRef.current.on('move', () => {
// do something
});
}, []);

return <Map ref={mapRef} onLoad={onMapLoad} ... />;
}
+

The MapRef object exposes Map methods (Mapbox | Maplibre) that are safe to call without breaking the React bindings. For example, setStyle() is hidden from the ref object, because the style is supposed to be changed by updating the mapStyle prop. Calling the method directly may cause the the React prop to mismatch with the underlying state, and lead to unexpected behaviors.

+

You can still access the hidden members via getMap():

+

getMap()

+

Returns the native Map (Mapbox | Maplibre) instance associated with this component.

+

Source

+

map.tsx

+ + \ No newline at end of file diff --git a/docs/api-reference/mapbox/marker.html b/docs/api-reference/mapbox/marker.html new file mode 100644 index 00000000..b6fa8738 --- /dev/null +++ b/docs/api-reference/mapbox/marker.html @@ -0,0 +1,73 @@ + + + + + +Marker | react-map-gl + + + + +

Marker

+

React component that wraps mapbox-gl's Marker class.

+
import * as React from 'react';
import Map, {Marker} from 'react-map-gl/mapbox';
import 'mapbox-gl/dist/mapbox-gl.css';

function App() {
return <Map
mapboxAccessToken="<Mapbox access token>"
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="mapbox://styles/mapbox/streets-v9"
>
<Marker longitude={-100} latitude={40} anchor="bottom" >
<img src="./pin.png" />
</Marker>
</Map>;
}
+

If Marker is mounted with child components, then its content will be rendered to the specified location. If it is mounted with no content, then a default marker will be used.

+

Properties

+

Reactive Properties

+

draggable: boolean

+

Default: false

+

If true, the marker is able to be dragged to a new position on the map.

+

latitude: number

+

Required. The latitude of the anchor location.

+

longitude: number

+

Required. The longitude of the anchor location.

+

offset: PointLike

+

Default: null

+

The offset in pixels as a PointLike object to apply relative to the element's center. Negatives indicate left and up.

+

pitchAlignment: 'map' | 'viewport' | 'auto'

+

Default: 'auto'

+
    +
  • map aligns the Marker to the plane of the map.
  • +
  • viewport aligns the Marker to the plane of the viewport.
  • +
  • auto automatically matches the value of rotationAlignment.
  • +
+ +

An instance of the Popup class (Mapbox | Maplibre) to attach to this marker. If undefined or null, any popup set on this Marker instance is unset.

+

rotation: number

+

Default: 0

+

The rotation angle of the marker in degrees, relative to its rotationAlignment setting. A positive value will rotate the marker clockwise.

+

rotationAlignment: 'map' | 'viewport' | 'auto'

+

Default: 'auto'

+
    +
  • map aligns the Marker's rotation relative to the map, maintaining a bearing as the map rotates.
  • +
  • viewport aligns the Marker's rotation relative to the viewport, agnostic to map rotations.
  • +
  • auto is equivalent to viewport.
  • +
+

style: CSSProperties

+

CSS style override that applies to the marker's container.

+

Callbacks

+

onClick: (evt: MapEvent) => void

+

Called when the marker is clicked on.

+

onDragStart: (evt: MarkerDragEvent) => void

+

Called when dragging starts, if draggable is true.

+

onDrag: (evt: MarkerDragEvent) => void

+

Called while dragging, if draggable is true.

+

onDragEnd: (evt: MarkerDragEvent) => void

+

Called when dragging ends, if draggable is true.

+

Other Properties

+

The properties in this section are not reactive. They are only used when the component first mounts.

+

Any options supported by the Marker class (Mapbox | Maplibre), such as

+
    +
  • anchor
  • +
  • color
  • +
  • scale
  • +
  • clickTolerance
  • +
+

Methods

+

The underlying native Marker instance is accessible via a React ref hook. +You may use it to call any imperative methods:

+
import * as React from 'react';
import {useRef, useMemo, useCallback} from 'react';
import Map, {Marker} from 'react-map-gl/mapbox';
import mapboxgl from 'mapbox-gl';

function App() {
const markerRef = useRef<mapboxgl.Marker>();

const popup = useMemo(() => {
return mapboxgl.Popup().setText('Hello world!');
}, [])

const togglePopup = useCallback(() => {
markerRef.current?.togglePopup();
}, []);

return <>
<Map>
<Marker longitude={-122.4} latitude={37.8} color="red" popup={popup} ref={markerRef} />
</Map>
<button onClick={togglePopup}>Toggle popup</button>
</>;
}
+

Source

+

marker.ts

+ + \ No newline at end of file diff --git a/docs/api-reference/mapbox/navigation-control.html b/docs/api-reference/mapbox/navigation-control.html new file mode 100644 index 00000000..1a192e24 --- /dev/null +++ b/docs/api-reference/mapbox/navigation-control.html @@ -0,0 +1,33 @@ + + + + + +NavigationControl | react-map-gl + + + + +

NavigationControl

+

React component that wraps mapbox-gl's NavigationControl class.

+
import * as React from 'react';
import Map, {NavigationControl} from 'react-map-gl/mapbox';
import 'mapbox-gl/dist/mapbox-gl.css';

function App() {
return <Map
mapboxAccessToken="<Mapbox access token>"
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="mapbox://styles/mapbox/streets-v9"
>
<NavigationControl />
</Map>;
}
+

Properties

+

Reactive Properties

+

style: CSSProperties

+

CSS style override that applies to the control's container.

+

Other Properties

+

The properties in this section are not reactive. They are only used when the component first mounts.

+

Any options supported by the NavigationControl class (Mapbox | Maplibre), such as

+
    +
  • showCompass
  • +
  • showZoom
  • +
  • visualizePitch
  • +
+

Plus the following:

+

position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'

+

Default: 'top-right'

+

Placement of the control relative to the map.

+

Source

+

navigation-control.ts

+ + \ No newline at end of file diff --git a/docs/api-reference/mapbox/popup.html b/docs/api-reference/mapbox/popup.html new file mode 100644 index 00000000..ba3ee567 --- /dev/null +++ b/docs/api-reference/mapbox/popup.html @@ -0,0 +1,56 @@ + + + + + +Popup | react-map-gl + + + + +

Popup

+

React component that wraps mapbox-gl's Popup class.

+
import * as React from 'react';
import {useState} from 'react';
import Map, {Popup} from 'react-map-gl/mapbox';
import 'mapbox-gl/dist/mapbox-gl.css';

function App() {
const [showPopup, setShowPopup] = useState<boolean>(true);

return <Map
mapboxAccessToken="<Mapbox access token>"
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="mapbox://styles/mapbox/streets-v9"
>
{showPopup && (
<Popup longitude={-100} latitude={40}
anchor="bottom"
onClose={() => setShowPopup(false)}>
You are here
</Popup>)}
</Map>;
}
+

Properties

+

Reactive Properties

+

anchor: 'center' | 'left' | 'right' | 'top' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | undefined

+

A string indicating the part of the popup that should be positioned closest to the coordinate, set via longitude and latitude. +If unset, the anchor will be dynamically set to ensure the popup falls within the map container with a preference for 'bottom'.

+

className: string

+

Space-separated CSS class names to add to popup container.

+

offset: number | PointLike | Record<string, PointLike>

+

Default: null

+

A pixel offset applied to the popup's location specified as:

+
    +
  • a single number specifying a distance from the popup's location
  • +
  • a PointLike specifying a constant offset
  • +
  • an object of Points specifing an offset for each anchor position.
  • +
+

Negative offsets indicate left and up.

+

maxWidth: string

+

Default: 240px

+

A string that sets the CSS property of the popup's maximum width.

+

style: CSSProperties

+

CSS style override that applies to the popup's container.

+

Callbacks

+

onOpen: (evt: PopupEvent) => void

+

Called when the popup is opened.

+

onClose: (evt: PopupEvent) => void

+

Called when the popup is closed by the user clicking on the close button or outside (if closeOnClick: true).

+

Other Properties

+

The properties in this section are not reactive. They are only used when the component first mounts.

+

Any options supported by the Popup class (Mapbox | Maplibre), such as

+
    +
  • closeButton
  • +
  • closeOnClick
  • +
  • closeOnMove
  • +
  • focusAfterOpen
  • +
+

Methods

+

The underlying native Popup instance is accessible via a React ref hook. +You may use it to call any imperative methods:

+
import * as React from 'react';
import {useRef, useEffect} from 'react';
import Map, {Popup} from 'react-map-gl/mapbox';
import mapboxgl from 'mapbox-gl';

function App() {
const popupRef = useRef<mapboxgl.Popup>();

useEffect(() => {
popupRef.current?.trackPointer();
}, [popupRef.current])

return <Map>
<Popup longitude={-122.4} latitude={37.8} ref={popupRef} >
Tooltip
</Popup>
</Map>;
}
+

Source

+

popup.ts

+ + \ No newline at end of file diff --git a/docs/api-reference/mapbox/scale-control.html b/docs/api-reference/mapbox/scale-control.html new file mode 100644 index 00000000..3983f9fc --- /dev/null +++ b/docs/api-reference/mapbox/scale-control.html @@ -0,0 +1,32 @@ + + + + + +ScaleControl | react-map-gl + + + + +

ScaleControl

+

React component that wraps mapbox-gl's ScaleControl class.

+
import * as React from 'react';
import Map, {ScaleControl} from 'react-map-gl/mapbox';
import 'mapbox-gl/dist/mapbox-gl.css';

function App() {
return <Map
mapboxAccessToken="<Mapbox access token>"
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="mapbox://styles/mapbox/streets-v9"
>
<ScaleControl />
</Map>;
}
+

Properties

+

Reactive Properties

+

maxWidth: string

+

Default: 100

+

The maximum length of the scale control in pixels.

+

style: CSSProperties

+

CSS style override that applies to the control's container.

+

unit: 'imperial' | 'metric' | 'nautical'

+

Default: 'metric'

+

Unit of the distance.

+

Other Properties

+

The properties in this section are not reactive. They are only used when the component first mounts.

+

position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'

+

Default: 'top-right'

+

Placement of the control relative to the map.

+

Source

+

scale-control.ts

+ + \ No newline at end of file diff --git a/docs/api-reference/mapbox/source.html b/docs/api-reference/mapbox/source.html new file mode 100644 index 00000000..da960281 --- /dev/null +++ b/docs/api-reference/mapbox/source.html @@ -0,0 +1,25 @@ + + + + + +Source | react-map-gl + + + + +

Source

+

This component allows apps to create a map source using React. It may contain Layer components as children.

+
import * as React from 'react';
import Map, {Source, Layer} from 'react-map-gl/mapbox';
import type {CircleLayer} from 'react-map-gl/mapbox';
import type {FeatureCollection} from 'geojson';
import 'mapbox-gl/dist/mapbox-gl.css';

const geojson: FeatureCollection = {
type: 'FeatureCollection',
features: [
{type: 'Feature', geometry: {type: 'Point', coordinates: [-122.4, 37.8]}}
]
};

const layerStyle: CircleLayer = {
id: 'point',
type: 'circle',
paint: {
'circle-radius': 10,
'circle-color': '#007cbf'
}
};

function App() {
return <Map
mapLib={import('mapbox-gl')}
initialViewState={{
longitude: -122.4,
latitude: 37.8,
zoom: 14
}}
mapStyle="mapbox://styles/mapbox/streets-v9"
>
<Source id="my-data" type="geojson" data={geojson}>
<Layer {...layerStyle} />
</Source>
</Map>;
}
+

Properties

+

The props provided to this component should be conforming to the Mapbox source specification or CanvasSourceOptions.

+

When props change shallowly, the component will attempt to update the source. Do not define objects/arrays inline to avoid perf hit.

+

Once a <Source> is mounted, the following props should not change. If add/remove multiple JSX sources dynamically, make sure you use React's key prop to give each element a stable identity.

+

id: string

+

Unique identifier of the source. If not provided, a default id will be assigned.

+

type: string

+

Required. Type of the source.

+

Source

+

source.ts

+ + \ No newline at end of file diff --git a/docs/api-reference/mapbox/types.html b/docs/api-reference/mapbox/types.html new file mode 100644 index 00000000..a26bad78 --- /dev/null +++ b/docs/api-reference/mapbox/types.html @@ -0,0 +1,235 @@ + + + + + +Types | react-map-gl + + + + +

Types

+

The following types can be imported from react-map-gl/mapbox when using TypeScript.

+

Components

+

IControl

+

A custom control implementation.

+

CustomLayerInterface

+

A custom layer implementation.

+

MapRef

+

Instance ref of a Map component. See Map documentation for details.

+

Styling

+

StyleSpecification

+

An object conforming to the Mapbox Style Specification.

+

FogSpecification

+

An object conforming to the Fog Style Specification.

+

LightSpecification

+

An object conforming to the Light Style Specification.

+

TerrainSpecification

+

An object conforming to the Terrain Style Specification.

+

ProjectionSpecification

+

An object conforming to the Projection Style Specification.

+

BackgroundLayerSpecification

+

A JSON object that defines a background layer according to the Mapbox Style Specification.

+

CircleLayerSpecification

+

A JSON object that defines a circle layer according to the Mapbox Style Specification.

+

FillExtrusionLayerSpecification

+

A JSON object that defines a fill-extrusion layer according to the Mapbox Style Specification.

+

FillLayerSpecification

+

A JSON object that defines a fill layer according to the Mapbox Style Specification.

+

HeatmapLayerSpecification

+

A JSON object that defines a heatmap layer according to the Mapbox Style Specification.

+

HillshadeLayerSpecification

+

A JSON object that defines a hillshade layer according to the Mapbox Style Specification.

+

LineLayerSpecification

+

A JSON object that defines a line layer according to the Mapbox Style Specification.

+

RasterLayerSpecification

+

A JSON object that defines a raster layer according to the Mapbox Style Specification.

+

SymbolLayerSpecification

+

A JSON object that defines a symbol layer according to the Mapbox Style Specification.

+

SkyLayerSpecification

+

A JSON object that defines a sky layer according to the Mapbox Style Specification.

+

GeoJSONSourceSpecification

+

A JSON object that defines a geojson source according to the Mapbox Style Specification.

+

VideoSourceSpecification

+

A JSON object that defines a video source according to the Mapbox Style Specification.

+

ImageSourceSpecification

+

A JSON object that defines a image source according to the Mapbox Style Specification.

+

VectorSourceSpecification

+

A JSON object that defines a vector source according to the Mapbox Style Specification.

+

RasterSourceSpecification

+

A JSON object that defines a raster source according to the Mapbox Style Specification.

+

RasterDEMSourceSpecification

+

A JSON object that defines a raster-dem source according to the Mapbox Style Specification.

+

CanvasSourceSpecification

+

A JSON object that defines a canvas source type. See CanvasSourceOptions.

+

Configurations

+

ControlPosition

+

One of 'top-right', 'top-left', 'bottom-right' and 'bottom-left'.

+

PaddingOptions

+

An object with the following fields:

+
    +
  • left: number - in pixels.
  • +
  • top: number - in pixels.
  • +
  • right: number - in pixels.
  • +
  • bottom: number - in pixels.
  • +
+

Data Types

+

LngLat

+

A Mapbox LngLat object.

+

LngLatLike

+

A Mapbox LngLatLike object.

+

LngLatBounds

+

A Mapbox LngLatBounds object.

+

LngLatBoundsLike

+

A Mapbox LngLatBoundsLike object.

+

Point

+

A Mapbox Point object.

+

PointLike

+

A Mapbox PointLike object.

+

MapGeoJSONFeature

+

A GeoJSON feature that also contains the following library-specific fields:

+
    +
  • layer: Layer
  • +
  • source: string
  • +
  • sourceLayer: string
  • +
  • state: { [key: string]: any }
  • +
+

ViewState

+

An object with the following fields:

+
    +
  • longitude: number - The longitude of the map center.
  • +
  • latitude: number - The latitude of the map center.
  • +
  • zoom: number - The zoom level.
  • +
  • pitch: number - The pitch (tilt) of the map, in degrees.
  • +
  • bearing: number - The bearing (rotation) of the map, in degrees.
  • +
+

Events

+

MapEvent

+

An object with the following fields:

+
    +
  • type: string - Event type
  • +
  • target: Map
  • +
  • originalEvent?: Event
  • +
+

MapLayerMouseEvent

+

An object with the following fields:

+ +

MapWheelEvent

+

An object with the following fields:

+
    +
  • type: string
  • +
  • target: Map
  • +
  • originalEvent?: WheelEvent
  • +
  • preventDefault: () => void
  • +
  • defaultPrevented: boolean
  • +
+

MapLayerTouchEvent

+

An object with the following fields:

+ +

ViewStateChangeEvent

+

An object with the following fields:

+
    +
  • type: string - Event type
  • +
  • target: Map
  • +
  • viewState: ViewState - the next view state that the camera wants to change to based on user input or transition.
  • +
+

MapBoxZoomEvent

+

An object with the following fields:

+ +

MapStyleDataEvent

+

An object with the following fields:

+
    +
  • type: string
  • +
  • target: Map
  • +
  • dataType: 'style'
  • +
+

MapSourceDataEvent

+

An object with the following fields:

+
    +
  • type: string
  • +
  • target: Map
  • +
  • dataType: 'source'
  • +
  • isSourceLoaded: boolean
  • +
  • source: string
  • +
  • sourceId: string
  • +
  • sourceDataType: 'metadata' | 'content'
  • +
  • tile: any
  • +
  • coord: Coordinate
  • +
+

See MapDataEvent.

+

ErrorEvent

+

An object with the following fields:

+
    +
  • type: 'error'
  • +
  • target: Map
  • +
  • error: Error
  • +
+

GeolocateEvent

+

An object with the following fields:

+ +

GeolocateResultEvent

+

An object with the following fields:

+ +

GeolocateErrorEvent

+

An object with the following fields:

+
    +
  • type: string
  • +
  • target: GeolocateControl
  • +
  • code: PERMISSION_DENIED | POSITION_UNAVAILABLE | TIMEOUT - see GeolocationPositionError
  • +
  • message: string - the details of the error. Specifications note that this is primarily intended for debugging use and not to be shown directly in a user interface.
  • +
+

MarkerEvent

+

An object with the following fields:

+
    +
  • type: string
  • +
  • target: Marker
  • +
+

MarkerDragEvent

+

An object with the following fields:

+
    +
  • type: string
  • +
  • target: Marker
  • +
  • lngLat: LngLat - the new location of the marker
  • +
+

PopupEvent

+

An object with the following fields:

+
    +
  • type: string
  • +
  • target: Popup
  • +
+ + \ No newline at end of file diff --git a/docs/api-reference/mapbox/use-control.html b/docs/api-reference/mapbox/use-control.html new file mode 100644 index 00000000..27c123df --- /dev/null +++ b/docs/api-reference/mapbox/use-control.html @@ -0,0 +1,34 @@ + + + + + +useControl | react-map-gl + + + + +

useControl

+

The useControl hook is used to create React wrappers for custom map controls.

+
import MapboxDraw from '@mapbox/mapbox-gl-draw';
import Map, {useControl} from 'react-map-gl/mapbox';

function DrawControl(props: DrawControlProps) {
useControl(() => new MapboxDraw(props), {
position: props.position
});

return null;
}

function App() {
return (
<Map
mapLib={import('mapbox-gl')}
initialViewState={{
longitude: -122.4,
latitude: 37.8,
zoom: 14
}}
mapStyle="mapbox://styles/mapbox/satellite-v9"
>
<DrawControl
position="top-left"
displayControlsDefault={false}
controls={{
polygon: true,
trash: true
}}
/>
</Map>
);
}
+

See a full example here.

+

Signature

+
useControl<T extends IControl>(
onCreate: ({map: MapRef, mapLib: mapboxgl}) => IControl,
options?: {
position?: ControlPosition;
}
): T

useControl<T extends IControl>(
onCreate: ({map: MapRef, mapLib: mapboxgl}) => IControl,
onRemove: ({map: MapRef, mapLib: mapboxgl}) => void,
options?: {
position?: ControlPosition;
}
): T

useControl<T extends IControl>(
onCreate: ({map: MapRef, mapLib: mapboxgl}) => IControl,
onAdd: ({map: MapRef, mapLib: mapboxgl}) => void,
onRemove: ({map: MapRef, mapLib: mapboxgl}) => void,
options?: {
position?: ControlPosition;
}
): T
+

The hook creates an IControl instance, adds it to the map when it's available, and removes it upon unmount.

+

Parameters:

+
    +
  • onCreate: ({map: MapRef, mapLib: mapboxgl}) => IControl - called to create an instance of the control.
  • +
  • onAdd: ({map: MapRef, mapLib: mapboxgl}) => void - called when the control has been added to the map.
  • +
  • onRemove: ({map: MapRef, mapLib: mapboxgl}) => void - called when the control is about to be removed from the map.
  • +
  • options: object +
      +
    • position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' - control position relative to the map
    • +
    +
  • +
+

Returns:

+

IControl - the control instance from onCreate.

+

Source

+

use-control.ts

+ + \ No newline at end of file diff --git a/docs/api-reference/mapbox/use-map.html b/docs/api-reference/mapbox/use-map.html new file mode 100644 index 00000000..266c1045 --- /dev/null +++ b/docs/api-reference/mapbox/use-map.html @@ -0,0 +1,25 @@ + + + + + +useMap | react-map-gl + + + + +

useMap

+

The useMap hook allows a component to reference the Map that contains it.

+

When used with MapProvider, this hook can also reference maps that are rendered outside of the current map component's direct render tree.

+
import {Map, useMap} from 'react-map-gl/mapbox';

function Root() {
return (
<Map ... >
<NavigationButton />
</Map>
);
}

function NavigateButton() {
const {current: map} = useMap();

const onClick = () => {
map.flyTo({center: [-122.4, 37.8]});
};

return <button onClick={onClick}>Go</button>;
}
+

When used with the MapProvider, this hook can also reference maps that are rendered outside of the current component's direct render tree as long as both trees are part of the current <MapProvider>.

+
import {MapProvider, Map, useMap} from 'react-map-gl/mapbox';

function Root() {
// Note: `useMap` will not work in <Root>, only children of <MapProvider> can use `useMap`

return (
<MapProvider>
<Map id="myMapA" ... />
<Map id="myMapB" ... />
<NavigateButton />
</MapProvider>
);
}

function NavigateButton() {
const {myMapA, myMapB} = useMap();

const onClick = () => {
myMapA.flyTo({center: [-122.4, 37.8]});
myMapB.flyTo({center: [-74, 40.7]});
};

return <button onClick={onClick}>Go</button>;
}
+

See a full example here.

+

Signature

+

useMap(): {current?: MapRef, [id: string]: MapRef}

+

The hook returns an object that contains all mounted maps under the closest MapProvider. The keys are each map's id and the values are the MapRef.

+

If the hook is used inside a decendent of a Map component, the returned object additionally contains a current field that references the containing map.

+

Source

+

use-map.tsx

+ + \ No newline at end of file diff --git a/docs/api-reference/maplibre/attribution-control.html b/docs/api-reference/maplibre/attribution-control.html new file mode 100644 index 00000000..a5ada9ae --- /dev/null +++ b/docs/api-reference/maplibre/attribution-control.html @@ -0,0 +1,32 @@ + + + + + +AttributionControl | react-map-gl + + + + +

AttributionControl

+

React component that wraps maplibre-gl's AttributionControl class.

+
import * as React from 'react';
import {Map, AttributionControl} from 'react-map-gl/maplibre';
import 'maplibre-gl/dist/maplibre-gl.css';

function App() {
return <Map
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="https://demotiles.maplibre.org/style.json"
// disable the default attribution
attributionControl={false}
>
<AttributionControl customAttribution="Map design by me" />
</Map>;
}
+

Properties

+

Reactive Properties

+

style: CSSProperties

+

CSS style override that applies to the control's container.

+

Other Properties

+

The properties in this section are not reactive. They are only used when the component first mounts.

+

Any options supported by the AttributionControl class, such as

+
    +
  • compact
  • +
  • customAttribution
  • +
+

Plus the following:

+

position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'

+

Default: 'bottom-right'

+

Placement of the control relative to the map.

+

Source

+

attribution-control.ts

+ + \ No newline at end of file diff --git a/docs/api-reference/maplibre/fullscreen-control.html b/docs/api-reference/maplibre/fullscreen-control.html new file mode 100644 index 00000000..4bd006f9 --- /dev/null +++ b/docs/api-reference/maplibre/fullscreen-control.html @@ -0,0 +1,28 @@ + + + + + +FullscreenControl | react-map-gl + + + + +

FullscreenControl

+

React component that wraps maplibre-gl's FullscreenControl class.

+
import * as React from 'react';
import {Map, FullscreenControl} from 'react-map-gl/maplibre';
import 'maplibre-gl/dist/maplibre-gl.css';

function App() {
return <Map
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="https://demotiles.maplibre.org/style.json"
>
<FullscreenControl />
</Map>;
}
+

Properties

+

Reactive Properties

+

style: CSSProperties

+

CSS style override that applies to the control's container.

+

Other Properties

+

The properties in this section are not reactive. They are only used when the component first mounts.

+

containerId: string

+

Id of the DOM element which should be made full screen. By default, the map container element will be made full screen.

+

position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'

+

Default: 'top-right'

+

Placement of the control relative to the map.

+

Source

+

fullscreen-control.ts

+ + \ No newline at end of file diff --git a/docs/api-reference/maplibre/geolocate-control.html b/docs/api-reference/maplibre/geolocate-control.html new file mode 100644 index 00000000..d0c579a2 --- /dev/null +++ b/docs/api-reference/maplibre/geolocate-control.html @@ -0,0 +1,50 @@ + + + + + +GeolocateControl | react-map-gl + + + + +

GeolocateControl

+

React component that wraps maplibre-gl's GeolocateControl class.

+
import * as React from 'react';
import {Map, GeolocateControl} from 'react-map-gl/maplibre';
import 'maplibre-gl/dist/maplibre-gl.css';

function App() {
return <Map
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="https://demotiles.maplibre.org/style.json"
>
<GeolocateControl />
</Map>;
}
+

Properties

+

Reactive Properties

+

style: CSSProperties

+

CSS style override that applies to the control's container.

+

Callbacks

+

onGeolocate: (evt: GeolocateResultEvent) => void

+

Called on each Geolocation API position update that returned as success.

+

onError: (evt: GeolocateErrorEvent) => void

+

Called on each Geolocation API position update that returned as an error.

+

onOutOfMaxBounds: (evt: GeolocateResultEvent) => void

+

Called on each Geolocation API position update that returned as success but user position is out of map maxBounds.

+

onTrackUserLocationStart: (evt: GeolocateEvent) => void

+

Called when the GeolocateControl changes to the active lock state.

+

onTrackUserLocationEnd: (evt: GeolocateEvent) => void

+

Called when the GeolocateControl changes to the background state.

+

Other Properties

+

The properties in this section are not reactive. They are only used when the component first mounts.

+

Any options supported by the GeolocateControl class, such as

+
    +
  • positionOptions
  • +
  • fitBoundsOptions
  • +
  • trackUserLocation
  • +
  • showAccuracyCircle
  • +
  • showUserLocation
  • +
+

Plus the following:

+

position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'

+

Default: 'bottom-right'

+

Placement of the control relative to the map.

+

Methods

+

The underlying native GeolocateControl instance is accessible via a React ref hook. +You may use it to call any imperative methods:

+
import * as React from 'react';
import {useRef, useEffect} from 'react';
import {Map, GeolocateControl} from 'react-map-gl/maplibre';
import type maplibregl from 'maplibre-gl';

function App() {
const geoControlRef = useRef<maplibregl.GeolocateControl>();

useEffect(() => {
// Activate as soon as the control is loaded
geoControlRef.current?.trigger();
}, [geoControlRef.current]);

return <Map>
<GeolocateControl ref={geoControlRef} />
</Map>;
}
+

Source

+

geolocate-control.ts

+ + \ No newline at end of file diff --git a/docs/api-reference/maplibre/layer.html b/docs/api-reference/maplibre/layer.html new file mode 100644 index 00000000..979b32ea --- /dev/null +++ b/docs/api-reference/maplibre/layer.html @@ -0,0 +1,32 @@ + + + + + +Layer | react-map-gl + + + + +

Layer

+

This component allows apps to create a map layer using React.

+
import * as React from 'react';
import {Map, Layer} from 'react-map-gl/maplibre';
import type {FillLayer} from 'react-map-gl/maplibre';
import 'maplibre-gl/dist/maplibre-gl.css';

const parkLayer: FillLayer = {
id: 'landuse_park',
type: 'fill',
source: 'vector',
'source-layer': 'landuse',
filter: ['==', 'class', 'park'],
paint: {
'fill-color': '#4E3FC8'
}
};

function App() {
return <Map
initialViewState={{
longitude: -122.4,
latitude: 37.8,
zoom: 14
}}
mapStyle="https://demotiles.maplibre.org/style.json"
>
<Layer {...parkLayer} />
</Map>;
}
+

Properties

+

The props provided to this component should be conforming to the Maplibre layer specification.

+

When props change shallowly, the component will perform style diffing to update the layer. Avoid defining constant objects/arrays inline may help performance.

+

Identity Properties

+

Once a <Layer> is mounted, the following props should not change. If you add/remove multiple JSX layers dynamically, make sure you use React's key prop to give each element a stable identity.

+

id: string

+

Unique identifier of the layer. If not provided, a default id will be assigned.

+

type: string

+

Required. Type of the layer.

+

Options

+

beforeId: string

+

The ID of an existing layer to insert this layer before. If this prop is omitted, the layer will be appended to the end of the layers array. This is useful when using dynamic layers with a map style from a URL.

+

Note that layers are added by the order that they mount. They are NOT reordered later if their relative positions in the JSX tree change. If dynamic reordering is desired, you should manipulate beforeId for consistent behavior.

+

source: string

+

source is required by some layer types in the Mapbox style specification. If <Layer> is used as the immediate child of a Source component, this prop will be overwritten by the id of the parent source. If the <Layer/> component is not an immediate descendant of <Source/>, e.g wrapped inside a helper component, source property needs to be provided same as the id of the <Source/> component for the <Layer/> component to show.

+

Source

+

layer.ts

+ + \ No newline at end of file diff --git a/docs/api-reference/maplibre/logo-control.html b/docs/api-reference/maplibre/logo-control.html new file mode 100644 index 00000000..22411b6f --- /dev/null +++ b/docs/api-reference/maplibre/logo-control.html @@ -0,0 +1,31 @@ + + + + + +LogoControl | react-map-gl + + + + +

LogoControl

+

React component that wraps maplibre-gl's LogoControl class.

+
import * as React from 'react';
import {Map, LogoControl} from 'react-map-gl/maplibre';
import 'maplibre-gl/dist/maplibre-gl.css';

function App() {
return <Map
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="https://demotiles.maplibre.org/style.json"
>
<LogoControl />
</Map>;
}
+

Properties

+

Reactive Properties

+

style: CSSProperties

+

CSS style override that applies to the control's container.

+

Other Properties

+

The properties in this section are not reactive. They are only used when the component first mounts.

+

Any options supported by the LogoControl class, such as

+
    +
  • compact
  • +
+

Plus the following:

+

position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'

+

Default: 'top-right'

+

Placement of the control relative to the map.

+

Source

+

logo-control.ts

+ + \ No newline at end of file diff --git a/docs/api-reference/maplibre/map-provider.html b/docs/api-reference/maplibre/map-provider.html new file mode 100644 index 00000000..72160e5b --- /dev/null +++ b/docs/api-reference/maplibre/map-provider.html @@ -0,0 +1,19 @@ + + + + + +MapProvider | react-map-gl + + + + +

MapProvider

+

A Context.Provider that facilitates map operations outside of the component that directly renders a Map.

+

The component should wrap all nodes in which you may want to access the maps:

+
import {MapProvider} from 'react-map-gl/maplibre';

function Root() {
return (
<MapProvider>
{
// Application tree, somewhere one or more <Map /> component(s) are rendered
}
</MapProvider>
);
}
+

See useMap for more information.

+

Source

+

use-map.tsx

+ + \ No newline at end of file diff --git a/docs/api-reference/maplibre/map.html b/docs/api-reference/maplibre/map.html new file mode 100644 index 00000000..5ab4d970 --- /dev/null +++ b/docs/api-reference/maplibre/map.html @@ -0,0 +1,274 @@ + + + + + +default (Map) | react-map-gl + + + + +

default (Map)

+

React component that wraps maplibre-gl's Map class. This is also the default export from react-map-gl/maplibre.

+
import * as React from 'react';
import {Map} from 'react-map-gl/maplibre';
import 'maplibre-gl/dist/maplibre-gl.css';

function App() {
return (
<Map
initialViewState={{
longitude: -122.4,
latitude: 37.8,
zoom: 14
}}
style={{width: 600, height: 400}}
mapStyle="https://demotiles.maplibre.org/style.json"
/>
);
}
+

Properties

+

Aside from the props listed below, the Map component supports all options of the Map class constructor. Beware that this is not an exhaustive list of all props. Different base map libraries may offer different options and default values. When in doubt, refer to your base map library's documentation.

+

Layout options

+

id: string

+

Map container id.

+

style: CSSProperties

+

Default: {position: 'relative', width: '100%', height: '100%'}

+

Map container CSS.

+

cursor: string

+

Default: 'auto'

+

The current cursor type.

+

Styling options

+

light: Light

+

Light properties of the style. Must conform to the Light Style Specification.

+

mapStyle: MapStyle | string | Immutable

+

Default: (empty style)

+

The map's Maplibre style. This must be an a JSON object conforming to the schema described in the MapLibre Style Specification, or a URL to such JSON.

+

projection: string | Projection

+

Default: 'mercator'

+

The projection the map should be rendered in. See Projection Specification.

+

renderWorldCopies: boolean

+

Default: true

+

If true, multiple copies of the world will be rendered, when zoomed out.

+

sky: Sky

+

The sky property of the style. Must conform to the Sky Style Specification.

+

styleDiffing: boolean

+

Default: true

+

Enable diffing when mapStyle changes. If false, force a 'full' update, removing the current style and building the given one instead of attempting a diff-based update.

+

terrain: Terrain|null

+

Terrain property of the style. Must conform to the Terrain Style Specification. +If null is provided, removes terrain from the map.

+

Camera options

+

initialViewState: object

+

The initial view state of the map. If specified, longitude, latitude, zoom etc. in props are ignored when constructing the map. Only specify initialViewState if Map is being used as an uncontrolled component. See state management for examples.

+
    +
  • bounds: LngLatBoundsLike - The initial bounds of the map. If specified, it overrides the longitude, latitude and zoom options. Default null.
  • +
  • fitBoundsOptions - An object to use only when setting the bounds option. Default null. +
      +
    • fitBoundsOptions.offset: PointLike
    • +
    • fitBoundsOptions.minZoom: number
    • +
    • fitBoundsOptions.maxZoom: number
    • +
    • fitBoundsOptions.padding: PaddingOptions
    • +
    +
  • +
  • longitude: number - The initial longitude of the map center. Default 0.
  • +
  • latitude: number - The initial latitude of the map center. Default 0.
  • +
  • zoom: number - The initial zoom level. Default 0.
  • +
  • pitch: number - The initial pitch (tilt) of the map. Default 0.
  • +
  • bearing: number - The initial bearing (rotation) of the map. Default 0.
  • +
+

longitude: number

+

The longitude of the map center.

+

latitude: number

+

The latitude of the map center.

+

zoom: number

+

The zoom level of the map.

+

pitch: number

+

The initial pitch (tilt) of the map, measured in degrees away from the plane of the screen (0-85).

+

bearing: number

+

The initial bearing (rotation) of the map, measured in degrees counter-clockwise from north.

+

padding: PaddingOptions

+

Default: null

+

The padding in pixels around the viewport.

+

minZoom: number

+

Default: 0

+

The minimum zoom level of the map (0-24).

+

maxZoom: number

+

Default: 22

+

The maximum zoom level of the map (0-24).

+

minPitch: number

+

Default: 0

+

The minimum pitch of the map (0-85).

+

maxPitch: number

+

Default: 60

+

The maximum pitch of the map (0-85).

+

maxBounds: LngLatBoundsLike

+

Default: null

+

If set, the map is constrained to the given bounds.

+

Input handler options

+

boxZoom: boolean

+

Default: true

+

If true, the "box zoom" interaction is enabled. See BoxZoomHandler.

+

doubleClickZoom: boolean

+

Default: true

+

If true, the "double click to zoom" interaction is enabled. See DoubleClickZoomHandler.

+

dragRotate: boolean

+

Default: true

+

If true, the "drag to rotate" interaction is enabled. See DragRotateHandler.

+

dragPan: boolean | Object

+

Default: true

+

If true, the "drag to pan" interaction is enabled. Optionally accept an object value that is the options to DragPanHandler.

+

keyboard: boolean

+

Default: true

+

If true, keyboard shortcuts are enabled. See KeyboardHandler.

+

scrollZoom: boolean | Object

+

Default: true

+

If true, the "scroll to zoom" interaction is enabled. Optionally accept an object value that is the options to ScrollZoomHandler.

+

touchPitch: boolean | Object

+

Default: true

+

If true, the "drag to pitch" interaction is enabled. Optionally accept an object value that is the options to TwoFingersTouchPitchHandler.

+

touchZoomRotate: boolean | Object

+

Default: true

+

If true, the "pinch to rotate and zoom" interaction is enabled. Optionally accept an object value that is the options to TwoFingersTouchZoomRotateHandler.

+

interactiveLayerIds: string[]

+

Default: null

+

The id(s) of style layer(s).

+

If specified, pointer event (mousemove, click etc.) listeners will be triggered only if its location is within a visible feature in these layers, and the event will have a features property containing an array of the matching features.

+

If not specified, pointer event listeners will be triggered by a corresponding event happening anywhere on the map, and the event will not have a features property.

+

See the Callbacks section for affected events.

+

Callbacks

+

onResize: (event: MapEvent) => void

+

Called when the map has been resized.

+

onLoad: (event: MapEvent) => void

+

Called after all necessary resources have been downloaded and the first visually complete rendering of the map has occurred.

+

onRender: (event: MapEvent)) => void

+

Called whenever the map is drawn to the screen.

+

onIdle: (event: MapEvent)) => void

+

Called after the last frame rendered before the map enters an "idle" state:

+
    +
  • No camera transitions are in progress
  • +
  • All currently requested tiles have loaded
  • +
  • All fade/transition animations have completed
  • +
+

onRemove: (event: MapEvent)) => void

+

Called when the map has been removed.

+

onError: (event: ErrorEvent) => void

+

Default: evt => console.error(evt.error)

+

Called when an error occurs.

+

onMouseDown: (event: MapLayerMouseEvent) => void

+

Called when a pointing device (usually a mouse) is pressed within the map.

+

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer.

+

onMouseUp: (event: MapLayerMouseEvent) => void

+

Called when a pointing device (usually a mouse) is released within the map.

+

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer.

+

onMouseOver: (event: MapLayerMouseEvent) => void

+

Called when a pointing device (usually a mouse) is moved within the map. As you move the cursor across a web page containing a map, the event will fire each time it enters the map or any child elements.

+

onMouseEnter: (event: MapLayerMouseEvent) => void

+

Called when a pointing device (usually a mouse) enters a visible portion of the layer(s) specified by interactiveLayerIds from outside that layer or outside the map canvas.

+

onMouseMove: (event: MapLayerMouseEvent) => void

+

Called when a pointing device (usually a mouse) is moved while the cursor is inside the map. As you move the cursor across the map, the event will fire every time the cursor changes position within the map.

+

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer.

+

onMouseLeave: (event: MapLayerMouseEvent) => void

+

Called when a pointing device (usually a mouse) leaves a visible portion of the layer(s) specified by interactiveLayerIds or moves from the layer to outside the map canvas.

+

onMouseOut: (event: MapLayerMouseEvent) => void

+

Called when a point device (usually a mouse) leaves the map's canvas.

+

onClick: (event: MapLayerMouseEvent) => void

+

Called when a pointing device (usually a mouse) is pressed and released at the same point on the map.

+

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer.

+

onDblClick: (event: MapLayerMouseEvent) => void

+

Called when a pointing device (usually a mouse) is pressed and released twice at the same point on the map in rapid succession.

+

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer.

+

onContextMenu: (event: MapLayerMouseEvent) => void

+

Called when the right button of the mouse is clicked or the context menu key is pressed within the map.

+

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer.

+

onWheel: (event: MapWheelEvent) => void

+

Called when a wheel event occurs within the map.

+

onTouchStart: (event: MapLayerTouchEvent) => void

+

Called when a touchstart event occurs within the map.

+

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer.

+

onTouchEnd: (event: MapLayerTouchEvent) => void

+

Called when a touchend event occurs within the map.

+

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer.

+

onTouchMove: (event: MapLayerTouchEvent) => void

+

Called when a touchmove event occurs within the map.

+

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer.

+

onTouchCancel: (event: MapLayerTouchEvent) => void

+

Called when a touchcancel event occurs within the map.

+

If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer.

+

onMoveStart: (event: ViewStateChangeEvent) => void

+

Called just before the map begins a transition from one view to another.

+

onMove: (event: ViewStateChangeEvent) => void

+

Called repeatedly during an animated transition from one view to another.

+

When Map is used as a controlled component, event.viewState reflects the view state that the camera "proposes" to move to, as a result of either user interaction or methods such as flyTo. The camera does not actually change until the application updates the view state props (longitude, latitude, zoom etc.). +See state management for examples.

+

onMoveEnd: (event: ViewStateChangeEvent) => void

+

Called just after the map completes a transition from one view to another.

+

onDragStart: (event: ViewStateChangeEvent) => void

+

Called when a "drag to pan" interaction starts.

+

onDrag: (event: ViewStateChangeEvent) => void

+

Called repeatedly during a "drag to pan" interaction.

+

onDragEnd: (event: ViewStateChangeEvent) => void

+

Called when a "drag to pan" interaction ends.

+

onZoomStart: (event: ViewStateChangeEvent) => void

+

Called just before the map begins a transition from one zoom level to another.

+

onZoom: (event: ViewStateChangeEvent) => void

+

Called repeatedly during an animated transition from one zoom level to another.

+

When Map is used as a controlled component, event.viewState.zoom reflects the zoom that the camera "proposes" to change to, as a result of either user interaction or methods such as flyTo. The camera does not actually change until the application updates the zoom prop.

+

onZoomEnd: (event: ViewStateChangeEvent) => void

+

Called just after the map completes a transition from one zoom level to another.

+

onRotateStart: (event: ViewStateChangeEvent) => void

+

Called just before the map begins a transition from one bearing (rotation) to another.

+

onRotate: (event: ViewStateChangeEvent) => void

+

Called repeatedly during an animated transition from one bearing (rotation) to another.

+

When Map is used as a controlled component, event.viewState.bearing reflects the zoom that the camera "proposes" to change to, as a result of either user interaction or methods such as flyTo. The camera does not actually change until the application updates the bearing prop.

+

onRotateEnd: (event: ViewStateChangeEvent) => void

+

Called just after the map completes a transition from one bearing (rotation) to another.

+

onPitchStart: (event: ViewStateChangeEvent) => void

+

Called just before the map begins a transition from one pitch (tilt) to another.

+

onPitch: (event: ViewStateChangeEvent) => void

+

Called repeatedly during an animated transition from one pitch (tilt) to another.

+

When Map is used as a controlled component, event.viewState.pitch reflects the zoom that the camera "proposes" to change to, as a result of either user interaction or methods such as flyTo. The camera does not actually change until the application updates the pitch prop.

+

onPitchEnd: (event: ViewStateChangeEvent) => void

+

Called just after the map completes a transition from one pitch (tilt) to another.

+

onBoxZoomStart: (event: MapBoxZoomEvent) => void

+

Called when a "box zoom" interaction starts.

+

onBoxZoomEnd: (event: MapBoxZoomEvent) => void

+

Called when a "box zoom" interaction ends.

+

onBoxZoomCancel: (event:MapBoxZoomEvent) => void

+

Called when the user cancels a "box zoom" interaction, or when the bounding box does not meet the minimum size threshold.

+

onData: (event: MapStyleDataEvent | MapSourceDataEvent) => void

+

Called when any map data loads or changes. See MapDataEvent for more information.

+

onStyleData: (event: MapStyleDataEvent) => void

+

Called when the map's style loads or changes. See MapDataEvent for more information.

+

onSourceData: (event: MapSourceDataEvent) => void

+

Called when one of the map's sources loads or changes, including if a tile belonging to a source loads or changes. See MapDataEvent for more information.

+

Other options

+

The following props, along with any options of the Map class not listed above, can be specified to construct the underlying Map instance.

+

Note: props in this section are not reactive. They are only used once when the Map instance is constructed.

+

mapLib: any

+

Default:

+
    +
  • import('maplibre-gl')
  • +
+

Specify the underlying base map library for the Map component. The value can be provided with several options:

+

By module import (and embedding in the final bundle):

+
import * as React from 'react';
import {Map} from 'react-map-gl/maplibre';
import maplibregl from 'maplibre-gl';

function App() {
return <Map mapLib={maplibregl} />;
}
+

By dynamic import (thus enable bundle splitting):

+
import * as React from 'react';
import {Map} from 'react-map-gl/maplibre';

function App() {
return <Map mapLib={import('maplibre-gl')} />;
}
+

Or to load a pre-bundled version of the library:

+
index.html
<script src="https://unpkg.com/maplibre-gl@4.7.1/dist/maplibre-gl.js" ></script>
+
app.tsx
import * as React from 'react';
import {Map} from 'react-map-gl/maplibre';

function App() {
return <Map mapLib={window.maplibregl} />;
}
+

maxParallelImageRequests: number

+

Default: 16

+

The maximum number of images (raster tiles, sprites, icons) to load in parallel.

+

reuseMaps: boolean

+

Default: false

+

By default, every time a map component is unmounted, all internal resources associated with the underlying Map instance are released. If the map gets mounted again, a new Map instance is constructed.

+

If reuseMaps is set to true, when a map component is unmounted, the underlying Map instance is retained in memory. The next time a map component gets mounted, the saved instance is reused. This behavior may be desirable if an application frequently mounts/unmounts map(s), for example in a tabbed or collapsable UI, and wants to avoid recreating the Map and its data cache triggered by initialization.

+

Note that since some map options cannot be modified after initialization, when reusing maps, only the reactive props and initialViewState of the new component are respected.

+

RTLTextPlugin: string | object

+
    +
  • pluginUrl: string URL to the plugin JS file.
  • +
  • lazy: boolean When true, the plugin is only loaded when the map first encounters Hebrew or Arabic text. Default true.
  • +
+

Sets the map's RTL text plugin via setRTLTextPlugin. Can be used with mapbox-gl-rtl-text. Necessary for supporting the Arabic and Hebrew languages, which are written right-to-left.

+

workerCount: number

+

Default: 2

+

The number of web workers instantiated on a page with maplibre-gl maps.

+

workerUrl: string

+

Provides an interface for loading maplibre-gl's WebWorker bundle from a self-hosted URL. This is useful if your site needs to operate in a strict CSP (Content Security Policy) environment wherein you are not allowed to load JavaScript code from a Blob URL, which is default behavior.

+

Methods

+

Imperative methods are accessible via a React ref or the useMap hook.

+
import * as React from 'react';
import {useRef, useCallback} from 'react';
import {Map} from 'react-map-gl/maplibre';
import type {MapRef} from 'react-map-gl/maplibre';

function App() {
const mapRef = useRef<MapRef>();

const onMapLoad = useCallback(() => {
mapRef.current.on('move', () => {
// do something
});
}, []);

return <Map ref={mapRef} onLoad={onMapLoad} ... />;
}
+

The MapRef object exposes Map methods that are safe to call without breaking the React bindings. For example, setStyle() is hidden from the ref object, because the style is supposed to be changed by updating the mapStyle prop. Calling the method directly may cause the the React prop to mismatch with the underlying state, and lead to unexpected behaviors.

+

You can still access the hidden members via getMap():

+

getMap()

+

Returns the native Map instance associated with this component.

+

Source

+

map.tsx

+ + \ No newline at end of file diff --git a/docs/api-reference/maplibre/marker.html b/docs/api-reference/maplibre/marker.html new file mode 100644 index 00000000..733bab87 --- /dev/null +++ b/docs/api-reference/maplibre/marker.html @@ -0,0 +1,73 @@ + + + + + +Marker | react-map-gl + + + + +

Marker

+

React component that wraps maplibre-gl's Marker class.

+
import * as React from 'react';
import {Map, Marker} from 'react-map-gl/maplibre';
import 'maplibre-gl/dist/maplibre-gl.css';

function App() {
return <Map
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="https://demotiles.maplibre.org/style.json"
>
<Marker longitude={-100} latitude={40} anchor="bottom" >
<img src="./pin.png" />
</Marker>
</Map>;
}
+

If Marker is mounted with child components, then its content will be rendered to the specified location. If it is mounted with no content, then a default marker will be used.

+

Properties

+

Reactive Properties

+

draggable: boolean

+

Default: false

+

If true, the marker is able to be dragged to a new position on the map.

+

latitude: number

+

Required. The latitude of the anchor location.

+

longitude: number

+

Required. The longitude of the anchor location.

+

offset: PointLike

+

Default: null

+

The offset in pixels as a PointLike object to apply relative to the element's center. Negatives indicate left and up.

+

pitchAlignment: 'map' | 'viewport' | 'auto'

+

Default: 'auto'

+
    +
  • map aligns the Marker to the plane of the map.
  • +
  • viewport aligns the Marker to the plane of the viewport.
  • +
  • auto automatically matches the value of rotationAlignment.
  • +
+ +

An instance of the Popup class to attach to this marker. If undefined or null, any popup set on this Marker instance is unset.

+

rotation: number

+

Default: 0

+

The rotation angle of the marker in degrees, relative to its rotationAlignment setting. A positive value will rotate the marker clockwise.

+

rotationAlignment: 'map' | 'viewport' | 'auto'

+

Default: 'auto'

+
    +
  • map aligns the Marker's rotation relative to the map, maintaining a bearing as the map rotates.
  • +
  • viewport aligns the Marker's rotation relative to the viewport, agnostic to map rotations.
  • +
  • auto is equivalent to viewport.
  • +
+

style: CSSProperties

+

CSS style override that applies to the marker's container.

+

Callbacks

+

onClick: (evt: MapEvent) => void

+

Called when the marker is clicked on.

+

onDragStart: (evt: MarkerDragEvent) => void

+

Called when dragging starts, if draggable is true.

+

onDrag: (evt: MarkerDragEvent) => void

+

Called while dragging, if draggable is true.

+

onDragEnd: (evt: MarkerDragEvent) => void

+

Called when dragging ends, if draggable is true.

+

Other Properties

+

The properties in this section are not reactive. They are only used when the component first mounts.

+

Any options supported by the Marker class, such as

+
    +
  • anchor
  • +
  • color
  • +
  • scale
  • +
  • clickTolerance
  • +
+

Methods

+

The underlying native Marker instance is accessible via a React ref hook. +You may use it to call any imperative methods:

+
import * as React from 'react';
import {useRef, useMemo, useCallback} from 'react';
import {Map, Marker} from 'react-map-gl/maplibre';
import maplibregl from 'maplibre-gl';

function App() {
const markerRef = useRef<maplibregl.Marker>();

const popup = useMemo(() => {
return maplibregl.Popup().setText('Hello world!');
}, [])

const togglePopup = useCallback(() => {
markerRef.current?.togglePopup();
}, []);

return <>
<Map>
<Marker longitude={-122.4} latitude={37.8} color="red" popup={popup} ref={markerRef} />
</Map>
<button onClick={togglePopup}>Toggle popup</button>
</>;
}
+

Source

+

marker.ts

+ + \ No newline at end of file diff --git a/docs/api-reference/maplibre/navigation-control.html b/docs/api-reference/maplibre/navigation-control.html new file mode 100644 index 00000000..9742eb19 --- /dev/null +++ b/docs/api-reference/maplibre/navigation-control.html @@ -0,0 +1,33 @@ + + + + + +NavigationControl | react-map-gl + + + + +

NavigationControl

+

React component that wraps maplibre-gl's NavigationControl class.

+
import * as React from 'react';
import {Map, NavigationControl} from 'react-map-gl/maplibre';
import 'maplibre-gl/dist/maplibre-gl.css';

function App() {
return <Map
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="https://demotiles.maplibre.org/style.json"
>
<NavigationControl />
</Map>;
}
+

Properties

+

Reactive Properties

+

style: CSSProperties

+

CSS style override that applies to the control's container.

+

Other Properties

+

The properties in this section are not reactive. They are only used when the component first mounts.

+

Any options supported by the NavigationControl class, such as

+
    +
  • showCompass
  • +
  • showZoom
  • +
  • visualizePitch
  • +
+

Plus the following:

+

position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'

+

Default: 'top-right'

+

Placement of the control relative to the map.

+

Source

+

navigation-control.ts

+ + \ No newline at end of file diff --git a/docs/api-reference/maplibre/popup.html b/docs/api-reference/maplibre/popup.html new file mode 100644 index 00000000..216eae61 --- /dev/null +++ b/docs/api-reference/maplibre/popup.html @@ -0,0 +1,56 @@ + + + + + +Popup | react-map-gl + + + + +

Popup

+

React component that wraps maplibre-gl's Popup class.

+
import * as React from 'react';
import {useState} from 'react';
import {Map, Popup} from 'react-map-gl/maplibre';
import 'maplibre-gl/dist/maplibre-gl.css';

function App() {
const [showPopup, setShowPopup] = useState<boolean>(true);

return <Map
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="https://demotiles.maplibre.org/style.json"
>
{showPopup && (
<Popup longitude={-100} latitude={40}
anchor="bottom"
onClose={() => setShowPopup(false)}>
You are here
</Popup>)}
</Map>;
}
+

Properties

+

Reactive Properties

+

anchor: 'center' | 'left' | 'right' | 'top' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | undefined

+

A string indicating the part of the popup that should be positioned closest to the coordinate, set via longitude and latitude. +If unset, the anchor will be dynamically set to ensure the popup falls within the map container with a preference for 'bottom'.

+

className: string

+

Space-separated CSS class names to add to popup container.

+

offset: number | PointLike | Record<string, PointLike>

+

Default: null

+

A pixel offset applied to the popup's location specified as:

+
    +
  • a single number specifying a distance from the popup's location
  • +
  • a PointLike specifying a constant offset
  • +
  • an object of Points specifing an offset for each anchor position.
  • +
+

Negative offsets indicate left and up.

+

maxWidth: string

+

Default: 240px

+

A string that sets the CSS property of the popup's maximum width.

+

style: CSSProperties

+

CSS style override that applies to the popup's container.

+

Callbacks

+

onOpen: (evt: PopupEvent) => void

+

Called when the popup is opened.

+

onClose: (evt: PopupEvent) => void

+

Called when the popup is closed by the user clicking on the close button or outside (if closeOnClick: true).

+

Other Properties

+

The properties in this section are not reactive. They are only used when the component first mounts.

+

Any options supported by the Popup class, such as

+
    +
  • closeButton
  • +
  • closeOnClick
  • +
  • closeOnMove
  • +
  • focusAfterOpen
  • +
+

Methods

+

The underlying native Popup instance is accessible via a React ref hook. +You may use it to call any imperative methods:

+
import * as React from 'react';
import {useRef, useEffect} from 'react';
import {Map, Popup} from 'react-map-gl/maplibre';
import maplibregl from 'maplibre-gl';

function App() {
const popupRef = useRef<maplibregl.Popup>();

useEffect(() => {
popupRef.current?.trackPointer();
}, [popupRef.current])

return <Map>
<Popup longitude={-122.4} latitude={37.8} ref={popupRef} >
Tooltip
</Popup>
</Map>;
}
+

Source

+

popup.ts

+ + \ No newline at end of file diff --git a/docs/api-reference/maplibre/scale-control.html b/docs/api-reference/maplibre/scale-control.html new file mode 100644 index 00000000..5627aede --- /dev/null +++ b/docs/api-reference/maplibre/scale-control.html @@ -0,0 +1,32 @@ + + + + + +ScaleControl | react-map-gl + + + + +

ScaleControl

+

React component that wraps maplibre-gl's ScaleControl class.

+
import * as React from 'react';
import {Map, ScaleControl} from 'react-map-gl/maplibre';
import 'maplibre-gl/dist/maplibre-gl.css';

function App() {
return <Map
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="https://demotiles.maplibre.org/style.json"
>
<ScaleControl />
</Map>;
}
+

Properties

+

Reactive Properties

+

maxWidth: string

+

Default: 100

+

The maximum length of the scale control in pixels.

+

style: CSSProperties

+

CSS style override that applies to the control's container.

+

unit: 'imperial' | 'metric' | 'nautical'

+

Default: 'metric'

+

Unit of the distance.

+

Other Properties

+

The properties in this section are not reactive. They are only used when the component first mounts.

+

position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'

+

Default: 'top-right'

+

Placement of the control relative to the map.

+

Source

+

scale-control.ts

+ + \ No newline at end of file diff --git a/docs/api-reference/maplibre/source.html b/docs/api-reference/maplibre/source.html new file mode 100644 index 00000000..2ccc9d30 --- /dev/null +++ b/docs/api-reference/maplibre/source.html @@ -0,0 +1,25 @@ + + + + + +Source | react-map-gl + + + + +

Source

+

This component allows apps to create a map source using React. It may contain Layer components as children.

+
import * as React from 'react';
import {Map, Source, Layer} from 'react-map-gl/maplibre';
import type {CircleLayer} from 'react-map-gl/maplibre';
import type {FeatureCollection} from 'geojson';
import 'maplibre-gl/dist/maplibre-gl.css';

const geojson: FeatureCollection = {
type: 'FeatureCollection',
features: [
{type: 'Feature', geometry: {type: 'Point', coordinates: [-122.4, 37.8]}}
]
};

const layerStyle: CircleLayer = {
id: 'point',
type: 'circle',
paint: {
'circle-radius': 10,
'circle-color': '#007cbf'
}
};

function App() {
return <Map
initialViewState={{
longitude: -122.4,
latitude: 37.8,
zoom: 14
}}
mapStyle="https://demotiles.maplibre.org/style.json"
>
<Source id="my-data" type="geojson" data={geojson}>
<Layer {...layerStyle} />
</Source>
</Map>;
}
+

Properties

+

The props provided to this component should be conforming to the Mapbox source specification or CanvasSourceSpecification.

+

When props change shallowly, the component will attempt to update the source. Do not define objects/arrays inline to avoid perf hit.

+

Once a <Source> is mounted, the following props should not change. If add/remove multiple JSX sources dynamically, make sure you use React's key prop to give each element a stable identity.

+

id: string

+

Unique identifier of the source. If not provided, a default id will be assigned.

+

type: string

+

Required. Type of the source.

+

Source

+

source.ts

+ + \ No newline at end of file diff --git a/docs/api-reference/maplibre/terrain-control.html b/docs/api-reference/maplibre/terrain-control.html new file mode 100644 index 00000000..d5f0f7b1 --- /dev/null +++ b/docs/api-reference/maplibre/terrain-control.html @@ -0,0 +1,32 @@ + + + + + +TerrainControl | react-map-gl + + + + +

TerrainControl

+

React component that wraps maplibre-gl's TerrainControl class.

+
import * as React from 'react';
import {Map, MapStyle, TerrainControl} from 'react-map-gl/maplibre';
import 'maplibre-gl/dist/maplibre-gl.css';

// https://maplibre.org/maplibre-gl-js/docs/examples/3d-terrain/
const MAP_STYLE: MapStyle = {
version: 8,
sources: {
osm: {
type: 'raster',
tiles: ['https://a.tile.openstreetmap.org/{z}/{x}/{y}.png'],
tileSize: 256,
attribution: '&copy; OpenStreetMap Contributors',
maxzoom: 19
},
terrainSource: {
type: 'raster-dem',
url: 'https://demotiles.maplibre.org/terrain-tiles/tiles.json',
tileSize: 256
}
},
layers: [
{
id: 'osm',
type: 'raster',
source: 'osm'
}
],
terrain: {
source: 'terrainSource',
exaggeration: 1
},
sky: {}
};

function App() {
return <Map
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle={MAP_STYLE}
>
<TerrainControl />
</Map>;
}
+

Properties

+

Reactive Properties

+

style: CSSProperties

+

CSS style override that applies to the control's container.

+

Other Properties

+

The properties in this section are not reactive. They are only used when the component first mounts.

+

Any options supported by the TerrainControl class, such as

+
    +
  • source
  • +
  • exageration
  • +
+

Plus the following:

+

position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'

+

Default: 'top-right'

+

Placement of the control relative to the map.

+

Source

+

terrain-control.ts

+ + \ No newline at end of file diff --git a/docs/api-reference/maplibre/types.html b/docs/api-reference/maplibre/types.html new file mode 100644 index 00000000..78cc1f11 --- /dev/null +++ b/docs/api-reference/maplibre/types.html @@ -0,0 +1,232 @@ + + + + + +Types | react-map-gl + + + + +

Types

+

The following types can be imported from react-map-gl/maplibre when using TypeScript.

+

Components

+

IControl

+

A custom control implementation.

+

CustomLayerInterface

+

A custom layer implementation.

+

MapRef

+

Instance ref of a Map component. See Map documentation for details.

+

Styling

+

StyleSpecification

+

An object conforming to the Maplibre Style Specification.

+

SkySpecification

+

An object conforming to the Sky Style Specification.

+

LightSpecification

+

An object conforming to the Light Style Specification.

+

TerrainSpecification

+

An object conforming to the Terrain Style Specification.

+

ProjectionSpecification

+

An object conforming to the Projection Style Specification.

+

BackgroundLayerSpecification

+

A JSON object that defines a background layer according to the Maplibre Style Specification.

+

CircleLayerSpecification

+

A JSON object that defines a circle layer according to the Maplibre Style Specification.

+

FillExtrusionLayerSpecification

+

A JSON object that defines a fill-extrusion layer according to the Maplibre Style Specification.

+

FillLayerSpecification

+

A JSON object that defines a fill layer according to the Maplibre Style Specification.

+

HeatmapLayerSpecification

+

A JSON object that defines a heatmap layer according to the Maplibre Style Specification.

+

HillshadeLayerSpecification

+

A JSON object that defines a hillshade layer according to the Maplibre Style Specification.

+

LineLayerSpecification

+

A JSON object that defines a line layer according to the Maplibre Style Specification.

+

RasterLayerSpecification

+

A JSON object that defines a raster layer according to the Maplibre Style Specification.

+

SymbolLayerSpecification

+

A JSON object that defines a symbol layer according to the Maplibre Style Specification.

+

GeoJSONSourceSpecification

+

A JSON object that defines a geojson source according to the Maplibre Style Specification.

+

VideoSourceSpecification

+

A JSON object that defines a video source according to the Maplibre Style Specification.

+

ImageSourceSpecification

+

A JSON object that defines a image source according to the Maplibre Style Specification.

+

VectorSourceSpecification

+

A JSON object that defines a vector source according to the Maplibre Style Specification.

+

RasterSourceSpecification

+

A JSON object that defines a raster source according to the Maplibre Style Specification.

+

RasterDEMSourceSpecification

+

A JSON object that defines a raster-dem source according to the Maplibre Style Specification.

+

CanvasSourceSpecification

+

A JSON object that defines a canvas source type. See CanvasSourceSpecification.

+

Configurations

+

ControlPosition

+

One of 'top-right', 'top-left', 'bottom-right' and 'bottom-left'.

+

PaddingOptions

+

An object with the following fields:

+
    +
  • left: number - in pixels.
  • +
  • top: number - in pixels.
  • +
  • right: number - in pixels.
  • +
  • bottom: number - in pixels.
  • +
+

Data Types

+

LngLat

+

A Maplibre LngLat object.

+

LngLatLike

+

A Maplibre LngLatLike object.

+

LngLatBounds

+

A Maplibre LngLatBounds object.

+

LngLatBoundsLike

+

A Maplibre LngLatBoundsLike object.

+

Point

+

A Maplibre Point object.

+

PointLike

+

A Maplibre PointLike object.

+

MapGeoJSONFeature

+

A GeoJSON feature that also contains the following library-specific fields:

+
    +
  • layer: Layer
  • +
  • source: string
  • +
  • sourceLayer: string
  • +
  • state: { [key: string]: any }
  • +
+

ViewState

+

An object with the following fields:

+
    +
  • longitude: number - The longitude of the map center.
  • +
  • latitude: number - The latitude of the map center.
  • +
  • zoom: number - The zoom level.
  • +
  • pitch: number - The pitch (tilt) of the map, in degrees.
  • +
  • bearing: number - The bearing (rotation) of the map, in degrees.
  • +
+

Events

+

MapEvent

+

An object with the following fields:

+
    +
  • type: string - Event type
  • +
  • target: Map
  • +
  • originalEvent?: Event
  • +
+

MapLayerMouseEvent

+

An object with the following fields:

+ +

MapWheelEvent

+

An object with the following fields:

+
    +
  • type: string
  • +
  • target: Map
  • +
  • originalEvent?: WheelEvent
  • +
  • preventDefault: () => void
  • +
  • defaultPrevented: boolean
  • +
+

MapLayerTouchEvent

+

An object with the following fields:

+ +

ViewStateChangeEvent

+

An object with the following fields:

+
    +
  • type: string - Event type
  • +
  • target: Map
  • +
  • viewState: ViewState - the next view state that the camera wants to change to based on user input or transition.
  • +
+

MapBoxZoomEvent

+

An object with the following fields:

+ +

MapStyleDataEvent

+

An object with the following fields:

+
    +
  • type: string
  • +
  • target: Map
  • +
  • dataType: 'style'
  • +
+

MapSourceDataEvent

+

An object with the following fields:

+
    +
  • type: string
  • +
  • target: Map
  • +
  • dataType: 'source'
  • +
  • isSourceLoaded: boolean
  • +
  • source: string
  • +
  • sourceId: string
  • +
  • sourceDataType: 'metadata' | 'content'
  • +
  • tile: any
  • +
  • coord: Coordinate
  • +
+

See MapDataEvent.

+

ErrorEvent

+

An object with the following fields:

+
    +
  • type: 'error'
  • +
  • target: Map
  • +
  • error: Error
  • +
+

GeolocateEvent

+

An object with the following fields:

+ +

GeolocateResultEvent

+

An object with the following fields:

+ +

GeolocateErrorEvent

+

An object with the following fields:

+
    +
  • type: string
  • +
  • target: GeolocateControl
  • +
  • code: PERMISSION_DENIED | POSITION_UNAVAILABLE | TIMEOUT - see GeolocationPositionError
  • +
  • message: string - the details of the error. Specifications note that this is primarily intended for debugging use and not to be shown directly in a user interface.
  • +
+

MarkerEvent

+

An object with the following fields:

+
    +
  • type: string
  • +
  • target: Marker
  • +
+

MarkerDragEvent

+

An object with the following fields:

+
    +
  • type: string
  • +
  • target: Marker
  • +
  • lngLat: LngLat - the new location of the marker
  • +
+

PopupEvent

+

An object with the following fields:

+
    +
  • type: string
  • +
  • target: Popup
  • +
+ + \ No newline at end of file diff --git a/docs/api-reference/maplibre/use-control.html b/docs/api-reference/maplibre/use-control.html new file mode 100644 index 00000000..f5f0238d --- /dev/null +++ b/docs/api-reference/maplibre/use-control.html @@ -0,0 +1,34 @@ + + + + + +useControl | react-map-gl + + + + +

useControl

+

The useControl hook is used to create React wrappers for custom map controls.

+
import MapboxDraw from '@mapbox/mapbox-gl-draw';
import {Map, useControl} from 'react-map-gl/maplibre';

function DrawControl(props: DrawControlProps) {
useControl(() => new MapboxDraw(props), {
position: props.position
});

return null;
}

function App() {
return (
<Map
initialViewState={{
longitude: -122.4,
latitude: 37.8,
zoom: 14
}}
mapStyle="https://demotiles.maplibre.org/style.json"
>
<DrawControl
position="top-left"
displayControlsDefault={false}
controls={{
polygon: true,
trash: true
}}
/>
</Map>
);
}
+

See a full example here.

+

Signature

+
useControl<T extends IControl>(
onCreate: ({map: MapRef, mapLib: maplibregl}) => IControl,
options?: {
position?: ControlPosition;
}
): T

useControl<T extends IControl>(
onCreate: ({map: MapRef, mapLib: maplibregl}) => IControl,
onRemove: ({map: MapRef, mapLib: maplibregl}) => void,
options?: {
position?: ControlPosition;
}
): T

useControl<T extends IControl>(
onCreate: ({map: MapRef, mapLib: maplibregl}) => IControl,
onAdd: ({map: MapRef, mapLib: maplibregl}) => void,
onRemove: ({map: MapRef, mapLib: maplibregl}) => void,
options?: {
position?: ControlPosition;
}
): T
+

The hook creates an IControl instance, adds it to the map when it's available, and removes it upon unmount.

+

Parameters:

+
    +
  • onCreate: ({map: MapRef, mapLib: maplibregl}) => IControl - called to create an instance of the control.
  • +
  • onAdd: ({map: MapRef, mapLib: maplibregl}) => void - called when the control has been added to the map.
  • +
  • onRemove: ({map: MapRef, mapLib: maplibregl}) => void - called when the control is about to be removed from the map.
  • +
  • options: object +
      +
    • position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' - control position relative to the map
    • +
    +
  • +
+

Returns:

+

IControl - the control instance from onCreate.

+

Source

+

use-control.ts

+ + \ No newline at end of file diff --git a/docs/api-reference/maplibre/use-map.html b/docs/api-reference/maplibre/use-map.html new file mode 100644 index 00000000..880b6b58 --- /dev/null +++ b/docs/api-reference/maplibre/use-map.html @@ -0,0 +1,24 @@ + + + + + +useMap | react-map-gl + + + + +

useMap

+

The useMap hook allows a custom component to reference the Map that contains it.

+
import {Map, useMap} from 'react-map-gl/maplibre';

function Root() {
return (
<Map ... >
<NavigationButton />
</Map>
);
}

function NavigateButton() {
const {current: map} = useMap();

const onClick = () => {
map.flyTo({center: [-122.4, 37.8]});
};

return <button onClick={onClick}>Go</button>;
}
+

When used with the MapProvider, this hook can also reference maps that are rendered outside of the current component's direct render tree.

+
import {MapProvider, Map, useMap} from 'react-map-gl/maplibre';

function Root() {
return (
<MapProvider>
<Map id="myMapA" ... />
<Map id="myMapB" ... />
<NavigateButton />
</MapProvider>
);
}

function NavigateButton() {
const {myMapA, myMapB} = useMap();

const onClick = () => {
myMapA.flyTo({center: [-122.4, 37.8]});
myMapB.flyTo({center: [-74, 40.7]});
};

return <button onClick={onClick}>Go</button>;
}
+

See a full example here.

+

Signature

+

useMap(): {current?: MapRef, [id: string]: MapRef}

+

The hook returns an object that contains all mounted maps under the closest MapProvider. The keys are each map's id and the values are the MapRef.

+

If the hook is used inside a decendent of a Map component, the returned object also contains a current field that references the containing map.

+

Source

+

use-map.tsx

+ + \ No newline at end of file diff --git a/docs/api-reference/marker.html b/docs/api-reference/marker.html deleted file mode 100644 index c341368c..00000000 --- a/docs/api-reference/marker.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - -Marker | React Map GL - - - - -
-

Marker

React component that wraps the base library's Marker class (Mapbox | Maplibre).

import * as React from 'react';
import Map, {Marker} from 'react-map-gl';

function App() {
return <Map
mapboxAccessToken="<Mapbox access token>"
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="mapbox://styles/mapbox/streets-v9"
>
<Marker longitude={-100} latitude={40} anchor="bottom" >
<img src="./pin.png" />
</Marker>
</Map>;
}

If Marker is mounted with child components, then its content will be rendered to the specified location. If it is mounted with no content, then a default marker will be used.

Properties

Reactive Properties

draggable: boolean

Default: false

If true, the marker is able to be dragged to a new position on the map.

latitude: number

Required. The latitude of the anchor location.

longitude: number

Required. The longitude of the anchor location.

offset: PointLike

Default: null

The offset in pixels as a PointLike object to apply relative to the element's center. Negatives indicate left and up.

pitchAlignment: 'map' | 'viewport' | 'auto'

Default: 'auto'

  • map aligns the Marker to the plane of the map.
  • viewport aligns the Marker to the plane of the viewport.
  • auto automatically matches the value of rotationAlignment.

An instance of the Popup class (Mapbox | Maplibre) to attach to this marker. If undefined or null, any popup set on this Marker instance is unset.

rotation: number

Default: 0

The rotation angle of the marker in degrees, relative to its rotationAlignment setting. A positive value will rotate the marker clockwise.

rotationAlignment: 'map' | 'viewport' | 'auto'

Default: 'auto'

  • map aligns the Marker's rotation relative to the map, maintaining a bearing as the map rotates.
  • viewport aligns the Marker's rotation relative to the viewport, agnostic to map rotations.
  • auto is equivalent to viewport.

style: CSSProperties

CSS style override that applies to the marker's container.

Callbacks

onClick: (evt: MapEvent) => void

Called when the marker is clicked on.

onDragStart: (evt: MarkerDragEvent) => void

Called when dragging starts, if draggable is true.

onDrag: (evt: MarkerDragEvent) => void

Called while dragging, if draggable is true.

onDragEnd: (evt: MarkerDragEvent) => void

Called when dragging ends, if draggable is true.

Other Properties

The properties in this section are not reactive. They are only used when the component first mounts.

Any options supported by the Marker class (Mapbox | Maplibre), such as

  • anchor
  • color
  • scale
  • clickTolerance

Methods

The underlying native Marker instance is accessible via a React ref hook. -You may use it to call any imperative methods:

import * as React from 'react';
import {useRef, useMemo, useCallback} from 'react';
import Map, {Marker} from 'react-map-gl';
import mapboxgl from 'mapbox-gl';

function App() {
const markerRef = useRef<mapboxgl.Marker>();

const popup = useMemo(() => {
return mapboxgl.Popup().setText('Hello world!');
}, [])

const togglePopup = useCallback(() => {
markerRef.current?.togglePopup();
}, []);

return <>
<Map>
<Marker longitude={-122.4} latitude={37.8} color="red" popup={popup} ref={markerRef} />
</Map>
<button onClick={togglePopup}>Toggle popup</button>
</>;
}

Source

marker.ts

- - - - \ No newline at end of file diff --git a/docs/api-reference/navigation-control.html b/docs/api-reference/navigation-control.html deleted file mode 100644 index 48f09622..00000000 --- a/docs/api-reference/navigation-control.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -NavigationControl | React Map GL - - - - -
-

NavigationControl

React component that wraps the base library's NavigationControl class (Mapbox | Maplibre).

import * as React from 'react';
import Map, {NavigationControl} from 'react-map-gl';

function App() {
return <Map
mapboxAccessToken="<Mapbox access token>"
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="mapbox://styles/mapbox/streets-v9"
>
<NavigationControl />
</Map>;
}

Properties

Reactive Properties

style: CSSProperties

CSS style override that applies to the control's container.

Other Properties

The properties in this section are not reactive. They are only used when the component first mounts.

Any options supported by the NavigationControl class (Mapbox | Maplibre), such as

  • showCompass
  • showZoom
  • visualizePitch

Plus the following:

position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'

Default: 'top-right'

Placement of the control relative to the map.

Source

navigation-control.ts

- - - - \ No newline at end of file diff --git a/docs/api-reference/popup.html b/docs/api-reference/popup.html deleted file mode 100644 index 8a95a285..00000000 --- a/docs/api-reference/popup.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - -Popup | React Map GL - - - - -
-

Popup

React component that wraps the base library's Popup class (Mapbox | Maplibre).

import * as React from 'react';
import {useState} from 'react';
import Map, {Popup} from 'react-map-gl';

function App() {
const [showPopup, setShowPopup] = useState<boolean>(true);

return <Map
mapboxAccessToken="<Mapbox access token>"
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="mapbox://styles/mapbox/streets-v9"
>
{showPopup && (
<Popup longitude={-100} latitude={40}
anchor="bottom"
onClose={() => setShowPopup(false)}>
You are here
</Popup>)}
</Map>;
}

Properties

Reactive Properties

anchor: 'center' | 'left' | 'right' | 'top' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | undefined

A string indicating the part of the popup that should be positioned closest to the coordinate, set via longitude and latitude. -If unset, the anchor will be dynamically set to ensure the popup falls within the map container with a preference for 'bottom'.

className: string

Space-separated CSS class names to add to popup container.

offset: number | PointLike | Record\<string, PointLike>

Default: null

A pixel offset applied to the popup's location specified as:

  • a single number specifying a distance from the popup's location
  • a PointLike specifying a constant offset
  • an object of Points specifing an offset for each anchor position.

Negative offsets indicate left and up.

maxWidth: string

Default: 240px

A string that sets the CSS property of the popup's maximum width.

style: CSSProperties

CSS style override that applies to the popup's container.

Callbacks

onOpen: (evt: PopupEvent) => void

Called when the popup is opened.

onClose: (evt: PopupEvent) => void

Called when the popup is closed by the user clicking on the close button or outside (if closeOnClick: true).

Other Properties

The properties in this section are not reactive. They are only used when the component first mounts.

Any options supported by the Popup class (Mapbox | Maplibre), such as

  • closeButton
  • closeOnClick
  • closeOnMove
  • focusAfterOpen

Methods

The underlying native Popup instance is accessible via a React ref hook. -You may use it to call any imperative methods:

import * as React from 'react';
import {useRef, useEffect} from 'react';
import Map, {Popup} from 'react-map-gl';
import mapboxgl from 'mapbox-gl';

function App() {
const popupRef = useRef<mapboxgl.Popup>();

useEffect(() => {
popupRef.current?.trackPointer();
}, [popupRef.current])

return <Map>
<Popup longitude={-122.4} latitude={37.8} ref={popupRef} >
Tooltip
</Popup>
</Map>;
}

Source

popup.ts

- - - - \ No newline at end of file diff --git a/docs/api-reference/scale-control.html b/docs/api-reference/scale-control.html deleted file mode 100644 index 321a21ce..00000000 --- a/docs/api-reference/scale-control.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -ScaleControl | React Map GL - - - - -
-

ScaleControl

React component that wraps the base library's ScaleControl class (Mapbox | Maplibre).

import * as React from 'react';
import Map, {ScaleControl} from 'react-map-gl';

function App() {
return <Map
mapboxAccessToken="<Mapbox access token>"
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="mapbox://styles/mapbox/streets-v9"
>
<ScaleControl />
</Map>;
}

Properties

Reactive Properties

maxWidth: string

Default: 100

The maximum length of the scale control in pixels.

style: CSSProperties

CSS style override that applies to the control's container.

unit: 'imperial' | 'metric' | 'nautical'

Default: 'metric'

Unit of the distance.

Other Properties

The properties in this section are not reactive. They are only used when the component first mounts.

position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'

Default: 'top-right'

Placement of the control relative to the map.

Source

scale-control.ts

- - - - \ No newline at end of file diff --git a/docs/api-reference/source.html b/docs/api-reference/source.html deleted file mode 100644 index 9c54174e..00000000 --- a/docs/api-reference/source.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -Source | React Map GL - - - - -
-

Source

This component allows apps to create a map source using React. It may contain Layer components as children.

import * as React from 'react';
import Map, {Source, Layer} from 'react-map-gl';
import type {CircleLayer} from 'react-map-gl';
import type {FeatureCollection} from 'geojson';

const geojson: FeatureCollection = {
type: 'FeatureCollection',
features: [
{type: 'Feature', geometry: {type: 'Point', coordinates: [-122.4, 37.8]}}
]
};

const layerStyle: CircleLayer = {
id: 'point',
type: 'circle',
paint: {
'circle-radius': 10,
'circle-color': '#007cbf'
}
};

function App() {
return <Map
mapLib={import('mapbox-gl')}
initialViewState={{
longitude: -122.4,
latitude: 37.8,
zoom: 14
}}
mapStyle="mapbox://styles/mapbox/streets-v9"
>
<Source id="my-data" type="geojson" data={geojson}>
<Layer {...layerStyle} />
</Source>
</Map>;
}

Properties

The props provided to this component should be conforming to the Mapbox source specification or CanvasSourceOptions.

When props change shallowly, the component will attempt to update the source. Do not define objects/arrays inline to avoid perf hit.

Once a <Source> is mounted, the following props should not change. If add/remove multiple JSX sources dynamically, make sure you use React's key prop to give each element a stable identity.

id: string

Unique identifier of the source. If not provided, a default id will be assigned.

type: string

Required. Type of the source.

Source

source.ts

- - - - \ No newline at end of file diff --git a/docs/api-reference/types.html b/docs/api-reference/types.html deleted file mode 100644 index a1a71ca4..00000000 --- a/docs/api-reference/types.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -Types | React Map GL - - - - -
-

Types

The following types can be imported from react-map-gl when using TypeScript.

Components

IControl

A custom control implementation.

CustomLayerInterface

A custom layer implementation.

MapRef

Instance ref of a Map component. See Map documentation for details.

Styling

MapStyle

An object conforming to the Mapbox Style Specification.

Fog

An object conforming to the Fog Style Specification.

Light

An object conforming to the Light Style Specification.

Terrain

An object conforming to the Terrain Style Specification.

Projection

An object conforming to the Projection Style Specification.

BackgroundLayer

A JSON object that defines a background layer according to the Mapbox Style Specification.

CircleLayer

A JSON object that defines a circle layer according to the Mapbox Style Specification.

FillExtrusionLayer

A JSON object that defines a fill-extrusion layer according to the Mapbox Style Specification.

FillLayer

A JSON object that defines a fill layer according to the Mapbox Style Specification.

HeatmapLayer

A JSON object that defines a heatmap layer according to the Mapbox Style Specification.

HillshadeLayer

A JSON object that defines a hillshade layer according to the Mapbox Style Specification.

LineLayer

A JSON object that defines a line layer according to the Mapbox Style Specification.

RasterLayer

A JSON object that defines a raster layer according to the Mapbox Style Specification.

SymbolLayer

A JSON object that defines a symbol layer according to the Mapbox Style Specification.

SkyLayer

A JSON object that defines a sky layer according to the Mapbox Style Specification.

GeoJSONSourceRaw

A JSON object that defines a geojson source according to the Mapbox Style Specification.

VideoSourceRaw

A JSON object that defines a video source according to the Mapbox Style Specification.

ImageSourceRaw

A JSON object that defines a image source according to the Mapbox Style Specification.

VectorSourceRaw

A JSON object that defines a vector source according to the Mapbox Style Specification.

RasterSource

A JSON object that defines a raster source according to the Mapbox Style Specification.

RasterDemSource

A JSON object that defines a raster-dem source according to the Mapbox Style Specification.

CanvasSourceRaw

A JSON object that defines a canvas source type. See CanvasSourceOptions.

Configurations

ControlPosition

One of 'top-right', 'top-left', 'bottom-right' and 'bottom-left'.

PaddingOptions

An object with the following fields:

  • left: number - in pixels.
  • top: number - in pixels.
  • right: number - in pixels.
  • bottom: number - in pixels.

Data Types

LngLat

A mapboxgl.LngLat object.

LngLatLike

A LngLat object, an array of two numbers representing longitude and latitude, or an object with lng and lat or lon and lat properties.

LngLatBounds

A mapboxgl.LngLatBounds object.

LngLatBoundsLike

A LngLatBounds object, an array of LngLatLike objects in [sw, ne] order, or an array of numbers in [west, south, east, north] order.

Point

A mapboxgl.Point object.

PointLike

A Point or an array of two numbers representing x and y screen coordinates in pixels.

MapGeoJSONFeature

A GeoJSON feature that also contains the following library-specific fields:

  • layer: Layer
  • source: string
  • sourceLayer: string
  • state: { [key: string]: any }

ViewState

An object with the following fields:

  • longitude: number - The longitude of the map center.
  • latitude: number - The latitude of the map center.
  • zoom: number - The zoom level.
  • pitch: number - The pitch (tilt) of the map, in degrees.
  • bearing: number - The bearing (rotation) of the map, in degrees.

Sources

The following are implementations of source types that could be retrieved with Map.getSource (Mapbox | Maplibre).

GeoJSONSource

A source containing GeoJSON. See GeoJSONSource (Mapbox | Maplibre).

VideoSource

A source containing video. See VideoSource (Mapbox | Maplibre).

ImageSource

A source containing image. See ImageSource (Mapbox | Maplibre).

CanvasSource

A source containing the contents of an HTML canvas. See CanvasSource(Mapbox | Maplibre).

VectorTileSource

A source containing vector tiles in Mapbox Vector Tile format. See VectorTileSource (Mapbox | Maplibre).

Events

MapEvent

An object with the following fields:

MapLayerMouseEvent

An object with the following fields:

MapWheelEvent

An object with the following fields:

  • type: string
  • target: Map (Mapbox | Maplibre)
  • originalEvent?: WheelEvent
  • preventDefault: () => void
  • defaultPrevented: boolean

MapLayerTouchEvent

An object with the following fields:

ViewStateChangeEvent

An object with the following fields:

  • type: string - Event type
  • target: Map (Mapbox | Maplibre)
  • viewState: ViewState - the next view state that the camera wants to change to based on user input or transition.

MapBoxZoomEvent

An object with the following fields:

MapStyleDataEvent

An object with the following fields:

MapSourceDataEvent

An object with the following fields:

  • type: string
  • target: Map (Mapbox | Maplibre)
  • dataType: 'source'
  • isSourceLoaded: boolean
  • source: string
  • sourceId: string
  • sourceDataType: 'metadata' | 'content'
  • tile: any
  • coord: Coordinate

See MapDataEvent.

ErrorEvent

An object with the following fields:

GeolocateEvent

An object with the following fields:

GeolocateResultEvent

An object with the following fields:

GeolocateErrorEvent

An object with the following fields:

  • type: string
  • target: GeolocateControl (Mapbox | Maplibre)
  • code: PERMISSION_DENIED | POSITION_UNAVAILABLE | TIMEOUT - see GeolocationPositionError
  • message: string - the details of the error. Specifications note that this is primarily intended for debugging use and not to be shown directly in a user interface.

MarkerEvent

An object with the following fields:

MarkerDragEvent

An object with the following fields:

PopupEvent

An object with the following fields:

- - - - \ No newline at end of file diff --git a/docs/api-reference/use-control.html b/docs/api-reference/use-control.html deleted file mode 100644 index fff1cfb6..00000000 --- a/docs/api-reference/use-control.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -useControl | React Map GL - - - - -
-

useControl

The useControl hook is used to create React wrappers for custom map controls.

import MapboxDraw from '@mapbox/mapbox-gl-draw';
import Map, {useControl} from 'react-map-gl';

function DrawControl(props: DrawControlProps) {
useControl(() => new MapboxDraw(props), {
position: props.position
});

return null;
}

function App() {
return (
<Map
mapLib={import('mapbox-gl')}
initialViewState={{
longitude: -122.4,
latitude: 37.8,
zoom: 14
}}
mapStyle="mapbox://styles/mapbox/satellite-v9"
>
<DrawControl
position="top-left"
displayControlsDefault={false}
controls={{
polygon: true,
trash: true
}}
/>
</Map>
);
}

See a full example here.

Signature

useControl<T extends IControl>(
onCreate: ({map: MapRef, mapLib: mapboxgl}) => IControl,
options?: {
position?: ControlPosition;
}
): T

useControl<T extends IControl>(
onCreate: ({map: MapRef, mapLib: mapboxgl}) => IControl,
onRemove: ({map: MapRef, mapLib: mapboxgl}) => void,
options?: {
position?: ControlPosition;
}
): T

useControl<T extends IControl>(
onCreate: ({map: MapRef, mapLib: mapboxgl}) => IControl,
onAdd: ({map: MapRef, mapLib: mapboxgl}) => void,
onRemove: ({map: MapRef, mapLib: mapboxgl}) => void,
options?: {
position?: ControlPosition;
}
): T

The hook creates an IControl instance, adds it to the map when it's available, and removes it upon unmount.

Parameters:

  • onCreate: ({map: MapRef, mapLib: mapboxgl}) => IControl - called to create an instance of the control.
  • onAdd: ({map: MapRef, mapLib: mapboxgl}) => void - called when the control has been added to the map.
  • onRemove: ({map: MapRef, mapLib: mapboxgl}) => void - called when the control is about to be removed from the map.
  • options: object
    • position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' - control position relative to the map

Returns:

IControl - the control instance from onCreate.

Source

use-control.ts

- - - - \ No newline at end of file diff --git a/docs/api-reference/use-map.html b/docs/api-reference/use-map.html deleted file mode 100644 index d9a56d6d..00000000 --- a/docs/api-reference/use-map.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -useMap | React Map GL - - - - -
-

useMap

The useMap hook allows a custom component to reference the Map that contains it.

import {Map, useMap} from 'react-map-gl';

function Root() {
return (
<Map ... >
<NavigationButton />
</Map>
);
}

function NavigateButton() {
const {current: map} = useMap();

const onClick = () => {
map.flyTo({center: [-122.4, 37.8]});
};

return <button onClick={onClick}>Go</button>;
}

When used with the MapProvider, this hook can also reference maps that are rendered outside of the current component's direct render tree.

import {MapProvider, Map, useMap} from 'react-map-gl';

function Root() {
return (
<MapProvider>
<Map id="myMapA" ... />
<Map id="myMapB" ... />
<NavigateButton />
</MapProvider>
);
}

function NavigateButton() {
const {myMapA, myMapB} = useMap();

const onClick = () => {
myMapA.flyTo({center: [-122.4, 37.8]});
myMapB.flyTo({center: [-74, 40.7]});
};

return <button onClick={onClick}>Go</button>;
}

See a full example here.

Signature

useMap(): {current?: MapRef, [id: string]: MapRef}

The hook returns an object that contains all mounted maps under the closest MapProvider. The keys are each map's id and the values are the MapRef.

If the hook is used inside a decendent of a Map component, the returned object also contains a current field that references the containing map.

Source

use-map.tsx

- - - - \ No newline at end of file diff --git a/docs/contributing.html b/docs/contributing.html index 4bc8b940..f43eea3b 100644 --- a/docs/contributing.html +++ b/docs/contributing.html @@ -1,18 +1,73 @@ - + - -Contributing | React Map GL - - + +Contributing | react-map-gl + + - -
-

Contributing

Thanks for taking the time to contribute!

PRs and bug reports are welcome, and we are actively looking for new maintainers.

Setting Up Dev Environment

The master branch is the active development branch.

Building react-map-gl locally from the source requires node.js >=8. -We use yarn to manage the dependencies.

git checkout master
yarn bootstrap
yarn test

Test:

$ yarn test

Test in Node:

$ yarn test node

Test in browser (can use Chrome dev tools for debugging):

$ yarn test browser

Pull Requests

Any intended change to the code base must open a pull request and be approved.

Generally speaking, all PRs are open against the master branch, unless the feature being affected no longer exists on master.

PR Checklist

  • Tests

  • yarn test must be successful.

    • New code should be covered by unit tests whenever possible.
  • Documentation

    • If public APIs are added/modified, update component documentation in docs/api-reference.
    • Breaking changes and deprecations must be added to docs/upgrade-guide.md.
    • Noteworthy new features should be added to docs/whats-new.md.
  • Description on GitHub

    • Link to relevant issue.
    • Label with a milestone (latest release or vNext).
    • If public APIs are added/modified, describe the intended behavior.
    • If visual/interaction is affected, consider attaching a screenshot/GIF.

Release

react-map-gl follows the Semantic Versioning guidelines. Steps for publishing releases can be found here.

Community Governance

vis.gl is part of the Urban Computing Foundation. See the organization's Technical Charter.

Technical Steering Committee

react-map-gl development is governed by the vis.gl Technical Steering Committee (TSC).

Maintainers

Maintainers of react-map-gl have commit access to this GitHub repository, and take part in the decision making process.

If you are interested in becoming a maintainer, read the governance guidelines.

The vis.gl TSC meets monthly and publishes meeting notes via a mailing list. -This mailing list can also be utilized to reach out to the TSC.

Code of Conduct

Please be mindful of and adhere to the Linux Foundation's Code of Conduct when contributing to react-map-gl.

- - + +

Contributing

+

Thanks for taking the time to contribute!

+

PRs and bug reports are welcome, and we are actively looking for new maintainers.

+

Setting Up Dev Environment

+

The master branch is the active development branch.

+

Building react-map-gl locally from the source requires node.js >=8. +We use yarn to manage the dependencies.

+
git checkout master
yarn bootstrap
yarn test
+

Test:

+
$ yarn test

+

Test in Node:

+
$ yarn test node

+

Test in browser (can use Chrome dev tools for debugging):

+
$ yarn test browser

+

Pull Requests

+

Any intended change to the code base must open a pull request and be approved.

+

Generally speaking, all PRs are open against the master branch, unless the feature being affected no longer exists on master.

+

PR Checklist

+
    +
  • +

    Tests

    +
  • +
  • +

    yarn test must be successful.

    +
      +
    • New code should be covered by unit tests whenever possible.
    • +
    +
  • +
  • +

    Documentation

    +
      +
    • If public APIs are added/modified, update component documentation in docs/api-reference.
    • +
    • Breaking changes and deprecations must be added to docs/upgrade-guide.md.
    • +
    • Noteworthy new features should be added to docs/whats-new.md.
    • +
    +
  • +
  • +

    Description on GitHub

    +
      +
    • Link to relevant issue.
    • +
    • Label with a milestone (latest release or vNext).
    • +
    • If public APIs are added/modified, describe the intended behavior.
    • +
    • If visual/interaction is affected, consider attaching a screenshot/GIF.
    • +
    +
  • +
+

Release

+

react-map-gl follows the Semantic Versioning guidelines. Steps for publishing releases can be found here.

+

Community Governance

+

vis.gl is part of the OpenJS Foundation. See the organization's Technical Charter.

+

Technical Steering Committee

+

react-map-gl development is governed by the vis.gl Technical Steering Committee (TSC).

+

Maintainers

+ +

Maintainers of react-map-gl have commit access to this GitHub repository, and take part in the decision making process.

+

If you are interested in becoming a maintainer, read the governance guidelines.

+

The vis.gl TSC meets monthly and publishes meeting notes via a mailing list. +This mailing list can also be utilized to reach out to the TSC.

\ No newline at end of file diff --git a/docs/get-started.html b/docs/get-started.html index 517362c3..d8bb34a3 100644 --- a/docs/get-started.html +++ b/docs/get-started.html @@ -1,16 +1,25 @@ - + - -Get Started | React Map GL - - + +Get Started | react-map-gl + + - -
-

Get Started

You may find complete project setups in get-started examples.

Installation

Using react-map-gl requires node >= 12 and react >= 16.3.

npm install --save react-map-gl mapbox-gl @types/mapbox-gl

Example

app.tsx
import * as React from 'react';
import Map from 'react-map-gl';

function App() {
return (
<Map
mapboxAccessToken="<Mapbox access token>"
initialViewState={{
longitude: -122.4,
latitude: 37.8,
zoom: 14
}}
style={{width: 600, height: 400}}
mapStyle="mapbox://styles/mapbox/streets-v9"
/>
);
}

See about Mapbox tokens for alternatives to providing a Mapbox token.

Styling

The base map library requires its stylesheet be included at all times. The marker, popup and navigation components in react-map-gl also need the stylesheet to work properly.

You may add the stylesheet to the head of your page:

index.html
<link href='https://api.tiles.mapbox.com/mapbox-gl-js/v<YOUR_MAPBOX_VERSION>/mapbox-gl.css' rel='stylesheet' />

Find out your mapbox version by running yarn list mapbox-gl or npm ls mapbox-gl.

Or embed it in your app by using css-loader with Webpack or postcss with rollup:

app.tsx
import 'mapbox-gl/dist/mapbox-gl.css';

Using with a Compatible Fork

npm install --save react-map-gl my-mapbox-fork

Then override the mapLib prop of Map:

app.tsx
import * as React from 'react';
import Map from 'react-map-gl';

// Include style sheet
import 'my-mapbox-fork/path/to/style-sheet.css';

function App() {
return <Map mapLib={import('my-mapbox-fork')} />;
}
- - + +

Get Started

+

You may find complete project setups in get-started examples.

+

Installation

+

Using react-map-gl requires node >= 12 and react >= 16.3.

+ +
npm install react-map-gl mapbox-gl @types/mapbox-gl
+

Example

+
app.tsx
import * as React from 'react';
import Map from 'react-map-gl/mapbox';
// If using with mapbox-gl v1:
// import Map from 'react-map-gl/mapbox-legacy';
import 'mapbox-gl/dist/mapbox-gl.css';

function App() {
return (
<Map
mapboxAccessToken="<Mapbox access token>"
initialViewState={{
longitude: -122.4,
latitude: 37.8,
zoom: 14
}}
style={{width: 600, height: 400}}
mapStyle="mapbox://styles/mapbox/streets-v9"
/>
);
}

See about Mapbox tokens for alternatives to providing a Mapbox token.

+

Styling

+

The base map library requires its stylesheet be included at all times. The marker, popup and navigation components in react-map-gl also need the stylesheet to work properly.

+

The above example code imports the CSS file directly into the app. Most bundlers support this syntax out-of-the-box or with an official plugin.

+

Alternatively, you may add the stylesheet to the head of your page:

+
index.html
<link href='https://api.tiles.mapbox.com/mapbox-gl-js/v<YOUR_MAPBOX_VERSION>/mapbox-gl.css' rel='stylesheet' />

Find out your mapbox version by running yarn list mapbox-gl or npm ls mapbox-gl.

\ No newline at end of file diff --git a/docs/get-started/adding-custom-data.html b/docs/get-started/adding-custom-data.html index e41ec5a9..c8236644 100644 --- a/docs/get-started/adding-custom-data.html +++ b/docs/get-started/adding-custom-data.html @@ -1,16 +1,27 @@ - + - -Adding Custom Data | React Map GL - - + +Adding Custom Data | react-map-gl + + - -
-

Adding Custom Data

Native Mapbox Layers

You can inject data and mapbox native layers using the Source and Layer components:

import * as React from 'react';
import Map, {Source, Layer} from 'react-map-gl';
import type {CircleLayer} from 'react-map-gl';
import type {FeatureCollection} from 'geojson';

const geojson: FeatureCollection = {
type: 'FeatureCollection',
features: [
{type: 'Feature', geometry: {type: 'Point', coordinates: [-122.4, 37.8]}}
]
};

const layerStyle: CircleLayer = {
id: 'point',
type: 'circle',
paint: {
'circle-radius': 10,
'circle-color': '#007cbf'
}
};

function App() {
return (
<Map
initialViewState={{
longitude: -122.45,
latitude: 37.78,
zoom: 14
}}>
<Source id="my-data" type="geojson" data={geojson}>
<Layer {...layerStyle} />
</Source>
</Map>
);
}

For details about data sources and layer configuration, check out the Mapbox style specification.

For dynamically updating data sources and layers, check out the GeoJSON and GeoJSON animation examples.

Custom Overlays

You can implement a custom HTML or SVG overlay on top of the map that redraws whenever the camera changes. By calling map.project() you can adjust the DOM or CSS properties so that the customly-drawn features are always aligned with the map. See a full example here.

Other vis.gl Libraries

For more feature rich and performant data visualization overlay use cases, you may consider using other visualization libraries. react-map-gl is part of the vis.gl ecosystem, a suite of high-performance data visualization tools for the Web.

  • deck.gl - WebGL-powered framework for the visualization of large datasets.
  • loaders.gl - loaders for file formats focused on visualization of big data, including point clouds, 3D geometries, images, geospatial formats as well as tabular data.
  • nebula.gl - 3D-enabled GeoJSON editing based on deck.gl and React.
- - + +

Adding Custom Data

+

Native Mapbox Layers

+

You can inject data and mapbox native layers using the Source and Layer components:

+
import * as React from 'react';
import Map, {Source, Layer} from 'react-map-gl/maplibre';
import type {CircleLayer} from 'react-map-gl/maplibre';
import type {FeatureCollection} from 'geojson';

const geojson: FeatureCollection = {
type: 'FeatureCollection',
features: [
{
type: 'Feature',
geometry: {
type: 'Point',
coordinates: [-122.4, 37.8]
},
properties: {title: '915 Front Street, San Francisco, California'}
}
]
};

const layerStyle: CircleLayer = {
id: 'point',
type: 'circle',
paint: {
'circle-radius': 10,
'circle-color': '#007cbf'
}
};

function App() {
return (
<Map
initialViewState={{
longitude: -122.45,
latitude: 37.78,
zoom: 14
}}>
<Source id="my-data" type="geojson" data={geojson}>
<Layer {...layerStyle} />
</Source>
</Map>
);
}
+

For details about data sources and layer configuration, check out the Mapbox style specification.

+

For dynamically updating data sources and layers, check out the GeoJSON and GeoJSON animation examples.

+

Custom Overlays

+

You can implement a custom HTML or SVG overlay on top of the map that redraws whenever the camera changes. By calling map.project() you can adjust the DOM or CSS properties so that the customly-drawn features are always aligned with the map. See a full example here.

+

Other vis.gl Libraries

+

For more feature rich and performant data visualization overlay use cases, you may consider using other visualization libraries. react-map-gl is part of the vis.gl ecosystem, a suite of high-performance data visualization tools for the Web.

+
    +
  • deck.gl - WebGL-powered framework for the visualization of large datasets.
  • +
  • loaders.gl - loaders for file formats focused on visualization of big data, including point clouds, 3D geometries, images, geospatial formats as well as tabular data.
  • +
  • nebula.gl - 3D-enabled GeoJSON editing based on deck.gl and React.
  • +
\ No newline at end of file diff --git a/docs/get-started/mapbox-tokens.html b/docs/get-started/mapbox-tokens.html index ddb3cecc..1093e7ef 100644 --- a/docs/get-started/mapbox-tokens.html +++ b/docs/get-started/mapbox-tokens.html @@ -1,17 +1,50 @@ - + - -About Mapbox Tokens | React Map GL - - + +About Mapbox Tokens | react-map-gl + + - -
-

About Mapbox Tokens

react-map-gl itself is open source and free. It provides a React wrapper for mapbox-gl or derived projects. -Depending on which Mapbox GL JS version (or fork) you use, you may need a Mapbox token. You will need a Mapbox token if you use:

  • mapbox-gl@>=2.0.0 and above - requires a mapbox access token in order to access the map renderer, and generates billable events regardlesss of whether you are displaying your own maps.
  • mapbox-gl@1.x or maplibre-gl - requires an access token only if you load the map styles and tiles from Mapbox's data service. See "Display Maps Without A Mapbox Token" section below for using non-Mapbox tiles.

To get a Mapbox token, you will need to register on their website. The token will be used to identify you and start serving up map tiles. The service is free until a certain level of traffic is exceeded.

There are several ways to provide a token to your app, as showcased in some of the example folders:

  • Provide a mapboxAccessToken prop to the map component
  • Set the MapboxAccessToken environment variable (or set REACT_APP_MAPBOX_ACCESS_TOKEN if you are using Create React App)
  • Provide it in the URL, e.g ?access_token=TOKEN

We recommend using an environment variable to minimize leaking risks. See securing Mapbox token for examples.

Display Maps Without A Mapbox Token

It is possible to use the map component without the Mapbox service, if you use another tile source (for example, if you host your own map tiles). Note that this is no longer allowed using mapbox-gl v2.0 and above. The options are:

  • Stay on mapbox-gl@1.x. react-map-gl plans to continue supporting this release in the foreseeable future, however, this version will not include any of the latest features of the map renderer, nor get any future updates from Mapbox.
  • Use a community fork of mapbox-gl, for example maplibre-gl. See Get Started for how to configure your project.

To use your own map service, you will need a custom Mapbox GL style that points to your own vector tile source, and pass it to Map using the mapStyle prop. This custom style must match the schema of your tile source.

Open source tile schemas include:

Some useful resources for creating your own map service:

If you are using a third party service that requires header based authentication, you can do this by defining a function to pass to Map using the transformRequest prop.

An example function:

const transformRequest = (url, resourceType) => {
if (resourceType === 'Tile' && url.match('yourTileSource.com')) {
return {
url: url,
headers: { 'Authorization': 'Bearer ' + yourAuthToken }
}
}
}
- - + +

About Mapbox Tokens

+

react-map-gl itself is open source and free. It provides a React wrapper for mapbox-gl, maplibre-gl or compatible projects. +Depending on which base map library you use, you may need a Mapbox token. You will need a Mapbox token if you use:

+
    +
  • mapbox-gl@>=2.0.0 - requires a mapbox access token in order to access the map renderer, and generates billable events regardlesss of whether you are displaying your own maps.
  • +
  • mapbox-gl@1.x - requires an access token only if you load the map styles and tiles from Mapbox's data service. See "Display Maps Without A Mapbox Token" section below for using non-Mapbox tiles.
  • +
+

To get a Mapbox token, you will need to register on the Mapbox website. The token will be used to identify you and start serving up map tiles. The service is free until a certain level of traffic is exceeded.

+

There are several ways to provide a token to your app, as showcased in some of the example folders:

+
    +
  • Provide a mapboxAccessToken prop to the map component
  • +
  • Set the MapboxAccessToken environment variable (or set REACT_APP_MAPBOX_ACCESS_TOKEN if you are using Create React App)
  • +
  • Provide it in the URL, e.g ?access_token=TOKEN
  • +
+

We recommend using an environment variable to minimize leaking risks. See securing Mapbox token for examples.

+

Display Maps Without A Mapbox Token

+

It is possible to use the map component without the Mapbox service, if you use another tile source (for example, if you host your own map tiles). Note that this is no longer allowed using mapbox-gl v2.0 and above. The options are:

+
    +
  • Use maplibre-gl. See Get Started for how to configure your project.
  • +
  • Stay on mapbox-gl@1.x. react-map-gl plans to continue supporting this release in the foreseeable future, however, this version will not include any of the latest features of the map renderer, nor get any future updates from Mapbox.
  • +
+

To use your own map service, you will need a custom map style that points to your own tile source, and pass it to Map using the mapStyle prop.

+

Some alternative map data providers include:

+ +

Useful resources for creating your own map tiles and service:

+ +

If you are using a third party service that requires header based authentication, you can do this by defining a function to pass to Map using the transformRequest prop.

+

An example function:

+
const transformRequest = (url, resourceType) => {
if (resourceType === 'Tile' && url.match('yourTileSource.com')) {
return {
url: url,
headers: { 'Authorization': 'Bearer ' + yourAuthToken }
}
}
}
\ No newline at end of file diff --git a/docs/get-started/state-management.html b/docs/get-started/state-management.html index 6d292a7b..a4fe1adc 100644 --- a/docs/get-started/state-management.html +++ b/docs/get-started/state-management.html @@ -1,16 +1,32 @@ - + - -State Management | React Map GL - - + +State Management | react-map-gl + + - -
-

State Management

There are two ways to use a Map:

  • Uncontrolled: The application sets the initial view state (Camera options) when the map is mounted, and the component automatically makes changes to the view states afterwards. This mode works very similarly to the mapbox-gl Map class.
  • Controlled: The application manages the view state, and pass it to the map via props. The map invokes a callback with a new view state during user interaction transition, and the application can decide what to do with it. This mode is the most powerful when an application has other components that need to interact with the map, or implements its own user input and data handling logic.

Uncontrolled Map

You may clone a full app configuration for this example here.

import * as React from 'react';
import Map from 'react-map-gl';

function App() {
return <Map
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="mapbox://styles/mapbox/streets-v9"
/>;
}

Controlled Map

You may clone a full app configuration for this example here.

import * as React from 'react';
import Map from 'react-map-gl';

function App() {
const [viewState, setViewState] = React.useState({
longitude: -100,
latitude: 40,
zoom: 3.5
});

return <Map
{...viewState}
onMove={evt => setViewState(evt.viewState)}
mapStyle="mapbox://styles/mapbox/streets-v9"
/>;
}

A real-world application likely uses more complicated state flows:

  • Using map with a state store (Redux) example
  • Using map with SSR (Next.js) example

Custom Camera Constraints

Map offers props that set basic constraints for the camera, e.g. maxBounds, minZoom, maxPitch. If you need more complicated logic to constrain the camera, you may use it as a controlled component. The following example restricts the map center inside a GeoJSON geofence:

import * as React from 'react';
import Map from 'react-map-gl';

// npm install @turf/turf
import * as turf from '@turf/turf';

// A circle of 5 mile radius of the Empire State Building
const GEOFENCE = turf.circle([-74.0122106, 40.7467898], 5, {units: 'miles'});

function App() {
const [viewState, setViewState] = React.useState({
longitude: -100,
latitude: 40,
zoom: 3.5
});

const onMove = React.useCallback(({viewState}) => {
const newCenter = [viewState.longitude, viewState.latitude];
// Only update the view state if the center is inside the geofence
if (turf.booleanPointInPolygon(newCenter, GEOFENCE)) {
setViewState(newCenter);
}
}, [])

return <Map
{...viewState}
onMove={onMove}
mapStyle="mapbox://styles/mapbox/streets-v9"
/>;
}
- - + +

State Management

+

There are two ways to use a Map:

+
    +
  • Uncontrolled: The application sets the initial view state (Camera options) when the map is mounted, and the component automatically makes changes to the view states afterwards. This mode works very similarly to the mapbox-gl Map class.
  • +
  • Controlled: The application manages the view state, and pass it to the map via props. The map invokes a callback with a new view state during user interaction transition, and the application can decide what to do with it. This mode is the most powerful when an application has other components that need to interact with the map, or implements its own user input and data handling logic.
  • +
+

Uncontrolled Map

+

You may clone a full app configuration for this example here.

+
import * as React from 'react';
import Map from 'react-map-gl/maplibre';

function App() {
return <Map
initialViewState={{
longitude: -100,
latitude: 40,
zoom: 3.5
}}
mapStyle="mapbox://styles/mapbox/streets-v9"
/>;
}
+

Controlled Map

+

You may clone a full app configuration for this example here.

+
import * as React from 'react';
import Map from 'react-map-gl/maplibre';

function App() {
const [viewState, setViewState] = React.useState({
longitude: -100,
latitude: 40,
zoom: 3.5
});

return <Map
{...viewState}
onMove={evt => setViewState(evt.viewState)}
mapStyle="mapbox://styles/mapbox/streets-v9"
/>;
}
+

A real-world application likely uses more complicated state flows:

+
    +
  • Using map with a state store (Redux) example
  • +
  • Using map with SSR (Next.js) example
  • +
+

Custom Camera Constraints

+

Map offers props that set basic constraints for the camera, e.g. maxBounds, minZoom, maxPitch. If you need more complicated logic to constrain the camera, you may use it as a controlled component. The following example restricts the map center inside a GeoJSON geofence:

+
import * as React from 'react';
import Map from 'react-map-gl/maplibre';

// npm install @turf/turf
import * as turf from '@turf/turf';

// A circle of 5 mile radius of the Empire State Building
const GEOFENCE = turf.circle([-74.0122106, 40.7467898], 5, {units: 'miles'});

function App() {
const [viewState, setViewState] = React.useState({
longitude: -100,
latitude: 40,
zoom: 3.5
});

const onMove = React.useCallback(({viewState}) => {
const newCenter = [viewState.longitude, viewState.latitude];
// Only update the view state if the center is inside the geofence
if (turf.booleanPointInPolygon(newCenter, GEOFENCE)) {
setViewState(viewState);
}
}, [])

return <Map
{...viewState}
onMove={onMove}
mapStyle="mapbox://styles/mapbox/streets-v9"
/>;
}
\ No newline at end of file diff --git a/docs/get-started/tips-and-tricks.html b/docs/get-started/tips-and-tricks.html index 824a6db6..c35a15d8 100644 --- a/docs/get-started/tips-and-tricks.html +++ b/docs/get-started/tips-and-tricks.html @@ -1,17 +1,44 @@ - + - -Tips and Tricks | React Map GL - - + +Tips and Tricks | react-map-gl + + - -
-

Tips and Tricks

Securing Mapbox Token

Because Mapbox tokens are required for the client application to make requests to Mapbox servers, you have to distribute it with your app. It is not possible to stop a visitor to your site from scraping the token. The practice outlined below can help you protect your token from being abused.

  • Never commit your token in clear text into GitHub or other source control.
  • In your local dev environment, define the token in an environment variable e.g. MapboxAccessTokenDev=... in the command line, or use something like dotenv and put MapboxAccessTokenDev=... in a .env file. Add .env to .gitignore so it's never tracked. If your app is deployed by a continuous integration pipeline, follow its documentation and set a secret environment variable.
  • Create separate tokens for development (often times on http://localhost), public code snippet (Gist, Codepen etc.) and production (deployed to https://mycompany.com). The public token should be rotated regularly. The production token should have strict scope and URL restrictions that only allows it to be used on a domain that you own.
  • Add the following to your bundler config:
/// webpack.config.js
const {DefinePlugin} = require('webpack');

module.exports = {
...
plugins: [
new DefinePlugin({
'process.env.MapboxAccessToken': JSON.stringify(process.env.NODE_ENV == 'production' ? process.env.MapboxAccessTokenProd : process.env.MapboxAccessTokenDev)
})
]
};

react-map-gl automatically picks up process.env.MapboxAccessToken or process.env.REACT_APP_MAPBOX_ACCESS_TOKEN if they are defined. Alternatively, you can use your own variable name (e.g. __SUPER_SECRET_TOKEN__) and pass it in manually with mapboxAccessToken={__SUPER_SECRET_TOKEN__}.

Minimize Cost from Frequent Re-mounting

In a moderately complex single-page app, as the user navigates through the UI, a map component may unmount and mount again many times during a session. Consider the following layout:

/// Example using Tabs from Material UI
<TabContext value={selectedTab}>
<TabList onChange={handleTabChange}>
<Tab label="Map" value="map" />
<Tab label="List" value="table" />
</TabList>
<TabPanel value="map">
<Map mapStyle="mapbox://styles/mapbox/streets-v9" >
{items.map(renderMarker)}
</Map>
</TabPanel>
<TabPanel value="table">
<Table>
{items.map(renderRow)}
</Table>
</TabPanel>
</TabContext>

Every time the user clicks the "table" tab, the map is unmounted. When they click the "map" tab, the map is mounted again. As of v2.0, mapbox-gl generates a billable event every time a Map object is initialized. It is obviously not ideal to get billed for just collapsing and expanding part of the UI.

In this case, it is recommended that you set the reuseMaps prop to true:

  <TabPanel value="map">
<Map reuseMaps mapStyle="mapbox://styles/mapbox/streets-v9" >
{items.map(renderMarker)}
</Map>
</TabPanel>

This bypasses the initialization when a map is removed then added back.

Performance with Many Markers

If your application uses externally managed camera state, like with Redux, the number of React rerenders may be very high when the user is interacting with the map. Consider the following setup:

import {useSelector, useDispatch} from 'react-redux';
import Map, {Marker} from 'react-map-gl';

function MapView() {
const viewState = useSelector((s: RootState) => s.viewState);
const vehicles = useSelector((s: RootState) => s.vehicles);
const dispatch = useDispatch();

const onMove = useCallback(evt => {
dispatch({type: 'setViewState', payload: evt.viewState});
}, []);

return (
<Map
{...viewState}
onMove={onMove}
mapStyle="mapbox://styles/mapbox/streets-v9" >
>
{vehicles.map(vehicle => (
<Marker key={vehicle.id}
longitude={vehicle.coordinates[0]}
latitude={vehicle.coordinates[1]}>
<svg>
// vehicle icon
</svg>
</Marker>)
)}
</Map>
);
}

This component is rerendered on every animation frame when the user is dragging the map. If it's trying to render hundreds of markers, the performance lag will become quite visible.

One way to improve the performance is useMemo:

  const markers = useMemo(() => vehicles.map(vehicle => (
<Marker key={vehicle.id}
longitude={vehicle.coordinates[0]}
latitude={vehicle.coordinates[1]}>
<svg>
// vehicle icon
</svg>
</Marker>)
), [vehicles]);

return (
<Map
{...viewState}
onMove={onMove}
mapStyle="mapbox://styles/mapbox/streets-v9" >
>
{markers}
</Map>
);
}

This prevents React from rerendering the markers unless they have changed.

If your application can do without complicated DOM objects and CSS styling, consider switching to a symbol layer. Layers are rendered in WebGL and are much more performant than markers:

  const vehiclesGeoJSON = useMemo(() => {
return {
type: 'FeatureCollection',
features: vehicles.map(vehicle => turf.point(vehicle.coordinates, vehicle))
};
}, [vehicles]);

return (
<Map
{...viewState}
onMove={onMove}
mapStyle="mapbox://styles/mapbox/streets-v9" >
>
<Source id="vehicles" type="geojson" data={vehiclesGeoJSON}>
<Layer type="symbol"
layout={{
'icon-image': 'vehicle-icon',
'icon-size': 1,
'text-field': ['get', 'id']
}}
/>
</Source>
</Map>
);

Finding out if a point is within the current viewport

There are some situations where you want to know if a point is currently visible on the map.
-Checking this is simple and can be done like so:

const mapRef = useRef<MapRef>();

const checkIfPositionInViewport = (lat, lng) => {
const bounds = mapRef.current.getBounds();
return bounds.contains([lng, lat]);
}

return <Map ref={mapRef} ... />
- - + +

Tips and Tricks

+

Securing Mapbox Token

+

Because Mapbox tokens are required for the client application to make requests to Mapbox servers, you have to distribute it with your app. It is not possible to stop a visitor to your site from scraping the token. The practice outlined below can help you protect your token from being abused.

+
    +
  • Never commit your token in clear text into GitHub or other source control.
  • +
  • In your local dev environment, define the token in an environment variable e.g. MapboxAccessTokenDev=... in the command line, or use something like dotenv and put MapboxAccessTokenDev=... in a .env file. Add .env to .gitignore so it's never tracked. If your app is deployed by a continuous integration pipeline, follow its documentation and set a secret environment variable.
  • +
  • Create separate tokens for development (often times on http://localhost), public code snippet (Gist, Codepen etc.) and production (deployed to https://mycompany.com). The public token should be rotated regularly. The production token should have strict scope and URL restrictions that only allows it to be used on a domain that you own.
  • +
  • Add the following to your bundler config:
  • +
+ +
/// webpack.config.js
const {DefinePlugin} = require('webpack');

module.exports = {
...
plugins: [
new DefinePlugin({
'process.env.MapboxAccessToken': JSON.stringify(process.env.NODE_ENV == 'production' ? process.env.MapboxAccessTokenProd : process.env.MapboxAccessTokenDev)
})
]
};
+

react-map-gl automatically picks up process.env.MapboxAccessToken or process.env.REACT_APP_MAPBOX_ACCESS_TOKEN if they are defined. Alternatively, you can use your own variable name (e.g. __SUPER_SECRET_TOKEN__) and pass it in manually with mapboxAccessToken={__SUPER_SECRET_TOKEN__}.

+

Minimize Cost from Frequent Re-mounting

+

In a moderately complex single-page app, as the user navigates through the UI, a map component may unmount and mount again many times during a session. Consider the following layout:

+
/// Example using Tabs from Material UI
<TabContext value={selectedTab}>
<TabList onChange={handleTabChange}>
<Tab label="Map" value="map" />
<Tab label="List" value="table" />
</TabList>
<TabPanel value="map">
<Map mapStyle="mapbox://styles/mapbox/streets-v9" >
{items.map(renderMarker)}
</Map>
</TabPanel>
<TabPanel value="table">
<Table>
{items.map(renderRow)}
</Table>
</TabPanel>
</TabContext>
+

Every time the user clicks the "table" tab, the map is unmounted. When they click the "map" tab, the map is mounted again. As of v2.0, mapbox-gl generates a billable event every time a Map object is initialized. It is obviously not ideal to get billed for just collapsing and expanding part of the UI.

+

In this case, it is recommended that you set the reuseMaps prop to true:

+
  <TabPanel value="map">
<Map reuseMaps mapStyle="mapbox://styles/mapbox/streets-v9" >
{items.map(renderMarker)}
</Map>
</TabPanel>
+

This bypasses the initialization when a map is removed then added back.

+

Performance with Many Markers

+

If your application uses externally managed camera state, like with Redux, the number of React rerenders may be very high when the user is interacting with the map. Consider the following setup:

+
import {useSelector, useDispatch} from 'react-redux';
import Map, {Marker} from 'react-map-gl/maplibre';

function MapView() {
const viewState = useSelector((s: RootState) => s.viewState);
const vehicles = useSelector((s: RootState) => s.vehicles);
const dispatch = useDispatch();

const onMove = useCallback(evt => {
dispatch({type: 'setViewState', payload: evt.viewState});
}, []);

return (
<Map
{...viewState}
onMove={onMove}
mapStyle="mapbox://styles/mapbox/streets-v9" >
>
{vehicles.map(vehicle => (
<Marker key={vehicle.id}
longitude={vehicle.coordinates[0]}
latitude={vehicle.coordinates[1]}>
<svg>
// vehicle icon
</svg>
</Marker>)
)}
</Map>
);
}
+

This component is rerendered on every animation frame when the user is dragging the map. If it's trying to render hundreds of markers, the performance lag will become quite visible.

+

One way to improve the performance is useMemo:

+
  const markers = useMemo(() => vehicles.map(vehicle => (
<Marker key={vehicle.id}
longitude={vehicle.coordinates[0]}
latitude={vehicle.coordinates[1]}>
<svg>
// vehicle icon
</svg>
</Marker>)
), [vehicles]);

return (
<Map
{...viewState}
onMove={onMove}
mapStyle="mapbox://styles/mapbox/streets-v9" >
>
{markers}
</Map>
);
}
+

This prevents React from rerendering the markers unless they have changed.

+

If your application can do without complicated DOM objects and CSS styling, consider switching to a symbol layer. Layers are rendered in WebGL and are much more performant than markers:

+
  const vehiclesGeoJSON = useMemo(() => {
return {
type: 'FeatureCollection',
features: vehicles.map(vehicle => turf.point(vehicle.coordinates, vehicle))
};
}, [vehicles]);

return (
<Map
{...viewState}
onMove={onMove}
mapStyle="mapbox://styles/mapbox/streets-v9" >
>
<Source id="vehicles" type="geojson" data={vehiclesGeoJSON}>
<Layer type="symbol"
layout={{
'icon-image': 'vehicle-icon',
'icon-size': 1,
'text-field': ['get', 'id']
}}
/>
</Source>
</Map>
);
+

Finding out if a point is within the current viewport

+

There are some situations where you want to know if a point is currently visible on the map.
+Checking this is simple and can be done like so:

+
const mapRef = useRef<MapRef>();

const checkIfPositionInViewport = (lat, lng) => {
const bounds = mapRef.current.getBounds();
return bounds.contains([lng, lat]);
}

return <Map ref={mapRef} ... />
\ No newline at end of file diff --git a/docs/upgrade-guide.html b/docs/upgrade-guide.html index 3fb2d1f9..cb61661e 100644 --- a/docs/upgrade-guide.html +++ b/docs/upgrade-guide.html @@ -1,16 +1,176 @@ - + - -Upgrade Guide | React Map GL - - + +Upgrade Guide | react-map-gl + + - -
-

Upgrade Guide

Upgrading to v7.1

  • maplibre-gl users no longer need to install mapbox-gl or a placeholder package as dependency. Change your imports to the new endpoint react-map-gl/maplibre. Components imported from here do not require setting the mapLib prop, and use the types defined by maplibre-gl.
map-v7.0.tsx
import Map from 'react-map-gl';
import maplibregl from 'maplibre-gl';

function App() {
return <Map
mapLib={maplibregl}
style={MAP_STYLE}
maplibreLogo // This will generate a TypeScript error because it's not defined in Mapbox options
/>;
}
map-v7.1.tsx
import Map from 'react-map-gl/maplibre'; // <- mind the updated import

function App() {
return <Map
// mapLib is default to `import('maplibre-gl')`
style={MAP_STYLE}
maplibreLogo
/>
}

If you installed mapbox-gl from a placeholder such as npm:empty-npm-package@^1.0.0 as suggested by the previous version's documentation, it should be removed from your package.json.

  • The @types/mapbox-gl dependency has relaxed its version constraint. If you use mapbox-gl as the base map library, it's recommended to explicitly list @types/mapbox-gl in your package.json with a version matching that of mapbox-gl (v1 or v2). This package is no longer required by the non-mapbox code path, and may be further demoted to an optional peer dependency in a future release.
  • If you use the Map component as a child of the DeckGL component from deck.gl, upgrade deck.gl to >=8.9.18.

Upgrading to v7.0

v7 is a complete rewrite of the library. It is redesigned to be fast, lightweight, fully typed, to behave the same and expose the same APIs as the wrapped map library, and to provide the maximum compatibility with third-party plugins. To take advantages of these new features, you need to make some changes to your code that was previously depending on react-map-gl v5 and v6.

If you are using react-map-gl controls (Marker, Popup, NavigationControl etc.) with deck.gl's ContextProvider, do not upgrade to this version. The old approach no longer works with v7. We are moving the support for this use case to a new project that does not depend on mapbox.

Dependencies

  • Add mapbox-gl (or a compatible fork) to your package.json. react-map-gl no longer lists a specific map renderer in its dependencies, so you are free to use it with Mapbox v1, v2 or Maplibre.
  • viewport-mercator-project (an alias of @math.gl/web-mercator) is no longer a dependency. You can still install the library on the side as a utility for viewport-related math, but it's no longer required.

Module exports

  • InteractiveMap and StaticMap are removed. Instead, import Map.
  • setRTLTextPlugin is removed. Use the Map component's RTLTextPlugin prop (default enabled).
  • MapController is removed. v7.0 has removed its own implementation of user input handling in favor of the native handlers. If you are using a custom implementation of MapController, check if the native handlers offer options to address your application's needs.
  • MapContext and useMapControl are removed. Check out the new API useMap and useControl.
  • The overlay components (HTMLOverlay, CanvasOverlay and SVGOverlay) are removed. Check out this example for implementing similar controls in your own application.
  • LinearInterpolator and FlyToInterpolator are removed. Use map.easeTo() and map.flyTo() instead, see this example.

Map

documentation

  • Renamed props for better consistency with the wrapped library:
    • mapboxApiAccessToken is now mapboxAccessToken
    • mapboxApiUrl is now baseApiUrl
    • preventStyleDiffing (default false) is replaced with styleDiffing (default true)
  • mapStyle should be explicitly specified. The default value has changed from "mapbox://styles/mapbox/light-v9" to an empty style.
  • The following props are removed and apps should use style instead:
    • width
    • height
    • visible
  • onViewportChange, onViewStateChange and onInteractionStateChange are removed. You can either use Map as an uncontrolled component with the new initialViewState prop, or if you need to manage the camera state externally (e.g. in Redux), use the onMove callback instead. See examples in state management.
  • transition* props are removed. Use map.easeTo() and map.flyTo() instead, see this example.
  • mapOptions is removed. Almost all of the options for the native Map class are exposed as props.
  • onHover is removed. Use onMouseMove or onMouseEnter.
  • The event argument is changed for all interaction callbacks. See documentation for details.
  • getCursor is removed as part of the effort to get Map behave the same as the native component. To set the cursor, use the cursor prop. Follow this example to change cursor on hover.
  • touchAction and eventRecognizerOptions are removed. Check out the cooperativeGestures prop.

Other components

  • capture* props are removed.
  • *label props are removed. Use Map's locale prop.
  • All map controls' props are now strictly aligned with their mapbox-gl counterparts. In heading this direction, we are able to remove a significant amount of custom code and have the components behave more predictably for developers switching from the native library. If your application is relying on an old feature that is no longer supported, please open a topic on Discussion so we can review on a case-by-case basis.

Upgrading to v5.3/v6.1

  • MapContext is now an official API. The experimental _MapContext export will be removed in a future release.
  • react-virtualized-auto-sizer is no longer a dependency.
  • Inertia has been enabled by default on the map controller. To revert to the behavior in previous versions, set the interaction options:
const CONTROLLER_OPTS = {
dragPan: {inertia: 0},
dragRotate: {inertia: 0},
touchZoom: {inertia: 0}
};

<MapGL {...CONTROLLER_OPTS} ... />
  • Source and Layer components no longer expose imperative methods via ref as part of the migration to functional components. This is to comply with the pattern recommended by the latest React.
    • If you used to call sourceRef.getSource(), it can be replaced with mapRef().getMap().getSource(sourceId).
    • If you used to call layerRef.getLayer(), it can be replaced with mapRef().getMap().getLayer(layerId).

Upgrading to v6

  • A valid Mapbox access token is always required.
  • The default value of InteractiveMap's maxPitch prop is changed to 85 from 60.
  • mapbox-gl v2 introduced a breaking change to the build system. Transpiling it may result in a crash in the production build with the message m is not defined. Find solutions in this thread.

Upgrading to v4

  • onChangeViewport is removed, use onViewportChange instead
  • Immutable.js is no longer a dependency
  • Export experimental.MapControls is removed, use MapController instead
  • InteractiveMap's mapControls prop is renamed to controller
  • Removed support for the deprecated interactive property on the layer styles. Use the interactiveLayerIds prop to specify which layers are clickable.

Upgrading to v3.2

  • The latest mapbox-gl release requires stylesheet to be included at all times. See Get Started for information about styling.
  • Immutable.js is no longer a hard dependency and will be removed in the next major release. If you are importing immutable in your application, it is recommended that you explicitly list it in the application's dependencies.

Upgrading to v3

v3 is a major upgrade of react-map-gl. While we have tried to gently deprecated any changed or removed features, a few breaking changes could not be avoided.

Version Requirements

  • The Node Version Requirement for building react-map-gl is now >=v6.4.0. Using prebuilt react-map-gl does NOT has this limitation. This is introduced by Mapbox GL JS v0.38.0

MapGL Component

  • Two Map Components - v3 now splits the Map component into two React components: StaticMap and InteractiveMap. InteractiveMap is the default export, and designed to be as compatible as possible with the v2 default component.

onChangeViewport callback now includes width and height.

The viewport parameter passed to the onChangeViewport callback now includes width and height. Application code that composed the viewport with width and height may have to be updated. Please double check your render code if you relied on this behavior.

// BAD: 'width' and 'height' below will be overridden by what's in the 'viewport' object
<ReactMapGL width={500} height={400} {...viewport} />
// GOOD: 'width' and 'height' below will override the values in 'viewport'
<ReactMapGL {...viewport} width={500} height={400} />

Overlays

  • Some Overlays Moved to Examples - Some less frequently used overlays (DraggablePointsOverlay, ChoroplethOverlay, ScatterplotOverlay), have been moved to examples. Most users are now using mapbox styles or deck.gl layers and removing these overlays reduces the size of the react-map-gl library for the majority of users that don't need them. If you still use them, simply copy the overlay source file(s) into your application.
  • Overlays must be Children of the Map - Overlays must now be rendered as children of the main react-map-gl component to automatically sync with the map viewport.

fitBounds utility function

The fitBounds utility has been moved to the math.gl library. The function can now be called as follows:

import WebMercatorViewport from 'viewport-mercator-project';
const viewport = new WebMercatorViewport({width: 600, height: 400});
const bound = viewport.fitBounds(
[[-73.9876, 40.7661], [-72.9876, 41.7661]],
{padding: 20, offset: [0, -40]}
);
// => bounds: instance of WebMercatorViewport
// {longitude: -73.48760000000007, latitude: 41.268014439447484, zoom: 7.209231188444142}

Deprecations

We have started to deprecate a few React props. In all the cases below, the old props will still work (you'll get a warning in the console), but they will likely be removed in the next major version of react-map-gl so you should start using the new props as soon as possible.

Old PropNew Prop
onChangeViewport(<viewport>)onViewportChange(<viewport>)
onHoverFeatures(<features>)onHover(<event>)
onClickFeatures(<features>)onClick(<event>)
perspectiveEnabled [default: false]dragRotate [default: true]

Upgrading to v2

v2 is API compatible with v1, however if you are still using v1 of react-map-gl, make sure that you first upgrade:

  • Your node version to v4 or higher
  • Your react version to 15.4 or higher.

Background: mapbox-gl 0.31.0 introduced a hard dependency on Node >= v4.

Upgrading to v1

(Upgrading from 0.6.x)

  • Importing Overlays - The map overlay components (HTMLOverlay, CanvasOverlay, SVGOverlay etc) are now named exports. They previously had to be imported via their relative source paths:
// v1.0
import MapGL, {SVGOverlay} from 'react-map-gl';

// v0.6
import MapGL from 'react-map-gl';
import SVGOverlay from 'react-map-gl/src/api-reference/svg-overlay';.
  • Map State - The map state reported by onViewportChanged will now contain additional state fields (tracking not only pitch and bearing needed for perspective mode, but also transient information about how the projection is being changed by the user).
    • This information must be passed back to the react-map-gl component in the next render.
    • To simplify and future proof applications, it is recommended to simply save the entire mapState in your app store whenever it changes and then pass it back to the component rather than trying to keep track of individual fields (like longitude, latitude and zoom).
- - + +

Upgrade Guide

+

Upgrading to v8.0

+
    +
  • +

    All imports from react-map-gl should be replaced with one of the following endpoints:

    +
      +
    • If using with mapbox-gl@>=3.5.0: import from react-map-gl/mapbox
    • +
    • If using with mapbox-gl@<3.5.0: import from react-map-gl/mapbox-legacy
    • +
    +
  • +
  • +

    maplibre-gl@<=3 is no longer supported.

    +
  • +
  • +

    Some TypeScript types have been renamed to align with the official types from the base map libraries:

    +
    Old nameNew name
    MapStyleStyleSpecification
    FogFogSpecification
    LightLightSpecification
    TerrainTerrainSpecification
    ProjectionProjectionSpecification
    *Layer*LayerSpecification
    *SourceRaw*SourceSpecification
    +
  • +
+

MapLibre

+

Removed default for RTLTextPlugin

+

The default RTLTextPlugin loaded from mapbox.com has been removed to align with the default behavior of MapLibre. +To keep the previous behavior, specify the pluginUrl which was previously used or supply the plugin from any other source:

+
<Map RTLTextPlugin="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js" />
+

Upgrading to v7.1

+
    +
  • maplibre-gl users no longer need to install mapbox-gl or a placeholder package as dependency. Change your imports to the new endpoint react-map-gl/maplibre. Components imported from here do not require setting the mapLib prop, and use the types defined by maplibre-gl.
  • +
+
map-v7.0.tsx
import Map from 'react-map-gl';
import maplibregl from 'maplibre-gl';

function App() {
return <Map
mapLib={maplibregl}
style={MAP_STYLE}
maplibreLogo // This will generate a TypeScript error because it's not defined in Mapbox options
/>;
}
+
map-v7.1.tsx
import Map from 'react-map-gl/maplibre'; // <- mind the updated import

function App() {
return <Map
// mapLib is default to `import('maplibre-gl')`
style={MAP_STYLE}
maplibreLogo
/>
}
+

If you installed mapbox-gl from a placeholder such as npm:empty-npm-package@^1.0.0 as suggested by the previous version's documentation, it should be removed from your package.json.

+
    +
  • The @types/mapbox-gl dependency has relaxed its version constraint. If you use mapbox-gl as the base map library, it's recommended to explicitly list @types/mapbox-gl in your package.json with a version matching that of mapbox-gl (v1 or v2). This package is no longer required by the non-mapbox code path, and may be further demoted to an optional peer dependency in a future release.
  • +
  • If you use the Map component as a child of the DeckGL component from deck.gl, upgrade deck.gl to >=8.9.18.
  • +
+

Upgrading to v7.0

+

v7 is a complete rewrite of the library. It is redesigned to be fast, lightweight, fully typed, to behave the same and expose the same APIs as the wrapped map library, and to provide the maximum compatibility with third-party plugins. To take advantages of these new features, you need to make some changes to your code that was previously depending on react-map-gl v5 and v6.

+
+

If you are using react-map-gl controls (Marker, Popup, NavigationControl etc.) with deck.gl's ContextProvider, do not upgrade to this version. The old approach no longer works with v7. We are moving the support for this use case to a new project that does not depend on mapbox.

+
+

Dependencies

+
    +
  • Add mapbox-gl (or a compatible fork) to your package.json. react-map-gl no longer lists a specific map renderer in its dependencies, so you are free to use it with Mapbox v1, v2 or Maplibre.
  • +
  • viewport-mercator-project (an alias of @math.gl/web-mercator) is no longer a dependency. You can still install the library on the side as a utility for viewport-related math, but it's no longer required.
  • +
+

Module exports

+
    +
  • InteractiveMap and StaticMap are removed. Instead, import Map.
  • +
  • setRTLTextPlugin is removed. Use the Map component's RTLTextPlugin prop (default enabled).
  • +
  • MapController is removed. v7.0 has removed its own implementation of user input handling in favor of the native handlers. If you are using a custom implementation of MapController, check if the native handlers offer options to address your application's needs.
  • +
  • MapContext and useMapControl are removed. Check out the new API useMap and useControl.
  • +
  • The overlay components (HTMLOverlay, CanvasOverlay and SVGOverlay) are removed. Check out this example for implementing similar controls in your own application.
  • +
  • LinearInterpolator and FlyToInterpolator are removed. Use map.easeTo() and map.flyTo() instead, see this example.
  • +
+

Map

+

documentation

+
    +
  • Renamed props for better consistency with the wrapped library: +
      +
    • mapboxApiAccessToken is now mapboxAccessToken
    • +
    • mapboxApiUrl is now baseApiUrl
    • +
    • preventStyleDiffing (default false) is replaced with styleDiffing (default true)
    • +
    +
  • +
  • mapStyle should be explicitly specified. The default value has changed from "mapbox://styles/mapbox/light-v9" to an empty style.
  • +
  • The following props are removed and apps should use style instead: +
      +
    • width
    • +
    • height
    • +
    • visible
    • +
    +
  • +
  • onViewportChange, onViewStateChange and onInteractionStateChange are removed. You can either use Map as an uncontrolled component with the new initialViewState prop, or if you need to manage the camera state externally (e.g. in Redux), use the onMove callback instead. See examples in state management.
  • +
  • transition* props are removed. Use map.easeTo() and map.flyTo() instead, see this example.
  • +
  • mapOptions is removed. Almost all of the options for the native Map class are exposed as props.
  • +
  • onHover is removed. Use onMouseMove or onMouseEnter.
  • +
  • The event argument is changed for all interaction callbacks. See documentation for details.
  • +
  • getCursor is removed as part of the effort to get Map behave the same as the native component. To set the cursor, use the cursor prop. Follow this example to change cursor on hover.
  • +
  • touchAction and eventRecognizerOptions are removed. Check out the cooperativeGestures prop.
  • +
+

Other components

+
    +
  • capture* props are removed.
  • +
  • *label props are removed. Use Map's locale prop.
  • +
  • All map controls' props are now strictly aligned with their mapbox-gl counterparts. In heading this direction, we are able to remove a significant amount of custom code and have the components behave more predictably for developers switching from the native library. If your application is relying on an old feature that is no longer supported, please open a topic on Discussion so we can review on a case-by-case basis.
  • +
+

Upgrading to v5.3/v6.1

+
    +
  • MapContext is now an official API. The experimental _MapContext export will be removed in a future release.
  • +
  • react-virtualized-auto-sizer is no longer a dependency.
  • +
  • Inertia has been enabled by default on the map controller. To revert to the behavior in previous versions, set the interaction options:
  • +
+
const CONTROLLER_OPTS = {
dragPan: {inertia: 0},
dragRotate: {inertia: 0},
touchZoom: {inertia: 0}
};

<MapGL {...CONTROLLER_OPTS} ... />
+
    +
  • Source and Layer components no longer expose imperative methods via ref as part of the migration to functional components. This is to comply with the pattern recommended by the latest React. +
      +
    • If you used to call sourceRef.getSource(), it can be replaced with mapRef().getMap().getSource(sourceId).
    • +
    • If you used to call layerRef.getLayer(), it can be replaced with mapRef().getMap().getLayer(layerId).
    • +
    +
  • +
+

Upgrading to v6

+
    +
  • A valid Mapbox access token is always required.
  • +
  • The default value of InteractiveMap's maxPitch prop is changed to 85 from 60.
  • +
  • mapbox-gl v2 introduced a breaking change to the build system. Transpiling it may result in a crash in the production build with the message m is not defined. Find solutions in this thread.
  • +
+

Upgrading to v4

+
    +
  • onChangeViewport is removed, use onViewportChange instead
  • +
  • Immutable.js is no longer a dependency
  • +
  • Export experimental.MapControls is removed, use MapController instead
  • +
  • InteractiveMap's mapControls prop is renamed to controller
  • +
  • Removed support for the deprecated interactive property on the layer styles. Use the interactiveLayerIds prop to specify which layers are clickable.
  • +
+

Upgrading to v3.2

+
    +
  • The latest mapbox-gl release requires stylesheet to be included at all times. See Get Started for information about styling.
  • +
  • Immutable.js is no longer a hard dependency and will be removed in the next major release. If you are importing immutable in your application, it is recommended that you explicitly list it in the application's dependencies.
  • +
+

Upgrading to v3

+

v3 is a major upgrade of react-map-gl. While we have tried to gently deprecated any changed or removed features, a few breaking changes could not be avoided.

+

Version Requirements

+
    +
  • The Node Version Requirement for building react-map-gl is now >=v6.4.0. Using prebuilt react-map-gl does NOT has this limitation. This is introduced by Mapbox GL JS v0.38.0
  • +
+

MapGL Component

+
    +
  • Two Map Components - v3 now splits the Map component into two React components: StaticMap and InteractiveMap. InteractiveMap is the default export, and designed to be as compatible as possible with the v2 default component.
  • +
+

onChangeViewport callback now includes width and height.

+

The viewport parameter passed to the onChangeViewport callback now includes width and height. Application code that composed the viewport with width and height may have to be updated. Please double check your render code if you relied on this behavior.

+
// BAD: 'width' and 'height' below will be overridden by what's in the 'viewport' object
<ReactMapGL width={500} height={400} {...viewport} />
// GOOD: 'width' and 'height' below will override the values in 'viewport'
<ReactMapGL {...viewport} width={500} height={400} />
+

Overlays

+
    +
  • Some Overlays Moved to Examples - Some less frequently used overlays (DraggablePointsOverlay, ChoroplethOverlay, ScatterplotOverlay), have been moved to examples. Most users are now using mapbox styles or deck.gl layers and removing these overlays reduces the size of the react-map-gl library for the majority of users that don't need them. If you still use them, simply copy the overlay source file(s) into your application.
  • +
  • Overlays must be Children of the Map - Overlays must now be rendered as children of the main react-map-gl component to automatically sync with the map viewport.
  • +
+

fitBounds utility function

+

The fitBounds utility has been moved to the math.gl library. The function can now be called as follows:

+
import WebMercatorViewport from 'viewport-mercator-project';
const viewport = new WebMercatorViewport({width: 600, height: 400});
const bound = viewport.fitBounds(
[[-73.9876, 40.7661], [-72.9876, 41.7661]],
{padding: 20, offset: [0, -40]}
);
// => bounds: instance of WebMercatorViewport
// {longitude: -73.48760000000007, latitude: 41.268014439447484, zoom: 7.209231188444142}
+

Deprecations

+

We have started to deprecate a few React props. In all the cases below, the old props will still work (you'll get a warning in the console), but they will likely be removed in the next major version of react-map-gl so you should start using the new props as soon as possible.

+
Old PropNew Prop
onChangeViewport(<viewport>)onViewportChange(<viewport>)
onHoverFeatures(<features>)onHover(<event>)
onClickFeatures(<features>)onClick(<event>)
perspectiveEnabled [default: false]dragRotate [default: true]
+

Upgrading to v2

+

v2 is API compatible with v1, however if you are still using v1 of react-map-gl, make sure that you first upgrade:

+
    +
  • Your node version to v4 or higher
  • +
  • Your react version to 15.4 or higher.
  • +
+

Background: mapbox-gl 0.31.0 introduced a hard dependency on Node >= v4.

+

Upgrading to v1

+

(Upgrading from 0.6.x)

+
    +
  • Importing Overlays - The map overlay components (HTMLOverlay, CanvasOverlay, SVGOverlay etc) are now named exports. They previously had to be imported via their relative source paths:
  • +
+
// v1.0
import MapGL, {SVGOverlay} from 'react-map-gl';

// v0.6
import MapGL from 'react-map-gl';
import SVGOverlay from 'react-map-gl/src/api-reference/svg-overlay';.
+
    +
  • Map State - The map state reported by onViewportChanged will now contain additional state fields (tracking not only pitch and bearing needed for perspective mode, but also transient information about how the projection is being changed by the user). +
      +
    • This information must be passed back to the react-map-gl component in the next render.
    • +
    • To simplify and future proof applications, it is recommended to simply save the entire mapState in your app store whenever it changes and then pass it back to the component rather than trying to keep track of individual fields (like longitude, latitude and zoom).
    • +
    +
  • +
\ No newline at end of file diff --git a/docs/whats-new.html b/docs/whats-new.html index 8b4d4b8b..1cd4b12e 100644 --- a/docs/whats-new.html +++ b/docs/whats-new.html @@ -1,18 +1,215 @@ - + - -What's new | React Map GL - - + +What's new | react-map-gl + + - -
-

What's new

react-map-gl v7.1

Release date: June 30 2023

  • To better accommodate the API divergence between Mapbox and Maplibre, this version adds a new endpoint react-map-gl/maplibre. The new endpoint exports identical components as react-map-gl, but typed for maplibre-gl instead. After switching to this new endpoint, maplibre-gl users no longer need to install mapbox-gl or a placeholder package as dependency. See upgrade guide for an example.
  • Marker, Popup and GeolocateControl components now expose the native instance via React ref.

react-map-gl v7.0

Release date: Feb 4, 2022

v7 is a complete rewrite of the library. It addresses many long-standing issues in v5 and v6 limited by legacy architecture decisions. The most notable results of this redesign are:

  • Performance: minimize the overhead of React, offer the same fast and smooth interaction as the native library
  • Lightweight: the ESM build size is reduced from 219k to 57k
  • Predictability: Components behave the same as their mapbox counterparts. Props are mapped 1:1 from the native options wherever appropriate. Almost all imperative APIs (flyTo, fitBounds etc.) can now be called directly without breaking the React binding.
  • Compatibility: first and third-party plugins! Directly use mapbox-gl-draw, mapbox-gl-geocoder, to name a few.
  • TypeScript compliant: the code base is now entirely written in TypeScript, and all types can be imported.

Visit the upgrade guide if you are trying to upgrade from v5 and v6.

react-map-gl v5.3/v6.1

Release date: Jan 27, 2020

Highlights

  • TypeScript and Flow typings are now published with the library
  • More controller customizations. Smooth easing on wheel scroll, three-finger gesture to change pitch, inertia after pan/pinch, and customizable keyboard navigation speed. See the updated interaction options for details.
  • A new eventRecognizerOptions prop is added for fine-tuning the interaction experience.
  • New component: AttributionControl
  • Promoted to official API: MapContext
  • Resolved React error over attempted state update during render
  • GeolocateControl added supports for showAccuracyCircle
  • All controls now support inline styling with a style prop
  • All components and examples have been rewritten as functional components

react-map-gl v6.0

Release date: Dec 16, 2020

What's Changed

The 6.0 release upgrades its Mapbox GL JS dependency to v2.0. There are important changes to mapbox-gl's license and pricing model in this milestone. If you are NOT using a Mapbox account (e.g. self-hosting map tiles), do NOT upgrade to this version, and consider your options discussed in this document.

See upgrade guide for a complete list of breaking changes.

react-map-gl v5.2

Release date: Jan 6, 2020

Highlights

  • New Components: ScaleControl
  • NavigationControl: new label prop
  • GeolocateControl: new label, onGeolocate, auto props
  • New Export: WebMercatorViewport is re-exported from the viewport-mercator-project library for ease of use. It's recommended to import it from react-map-gl instead to avoid future dependency change.
  • New Example: Clusters

react-map-gl v5.1

Release date: Oct 30, 2019

Highlights

  • New Components: Layer and Source have been added to provide better React parity with the Mapbox GL JS API.
  • Viewport transition: transitionDuration can be set to 'auto' when using FlyToInterpolator.
  • New Example: Add an example with drawing library react-map-gl-draw.

react-map-gl v5.0

Release date: May 31, 2019

What's Changed

The only change between the 5.0 release and the latest 4.1 release is Mapbox GL JS v1.0. By using this version, you opt into Mapbox's new pricing model, which bills per map load instead of map views. 5.0.x and 4.1.x will continue to update in parallel with otherwise identical features until November 2019 when Mapbox moves all users of 0.xx to a new pricing scheme. For more details, see mapbox's changelog and blog post.

Alongside Mapbox GL JS's new milestone, we have relaxed the mapbox-gl dependency from locking minor release (~0.53.0) to major release (^1.0.0). This will allow developers to upgrade faster without waiting for a new release from react-map-gl.

react-map-gl v4.1

Release date: Mar 14, 2019

Highlights

  • New Components: FullscreenControl, GeolocateControl have been added to provide better React parity with the Mapbox GL JS API.
  • New callback props InteractiveMap supports more callbacks:
    • onNativeClick

react-map-gl v4.0

Release date: Nov 5, 2018

Highlights

  • Relative dimensions Both InteractiveMap and StaticMap now support CSS strings supplied to map width and height props. New onResize callback is fired when the map resizes.
  • React 16 Upgrade to React 16.3 context and ref patterns
  • Babel 7 Upgrade build system to Babel 7, better support for tree-shaking
  • Style diffing Now use Mapbox's native style diffing. Immutable is no longer required.
  • Draggable Markers Marker component now supports a new prop draggable, along with callbacks onDragStart, onDrag, and onDragEnd.
  • 3d Popups Popup component now supports a new prop sortByDepth to enable proper occlusion when multiple popups are used in a tilted map.
  • Interaction states onViewportChange is now called with richer descriptors of the user interaction, including isPanning, isZooming and isRotating.
  • Interactive layers Dropped the requirement for the deprecated interactive property on the layer styles. Use the interactiveLayerIds prop to specify which layers are clickable.
  • New callback props InteractiveMap supports more callbacks:
    • onDblClick
    • onMouseDown
    • onMouseMove
    • onMouseUp
    • onTouchStart
    • onTouchMove
    • onTouchEnd
    • onMouseEnter
    • onMouseLeave
    • onWheel
    • onMouseOut

See upgrade guide for breaking changes.

react-map-gl v3.3

Release date: July, 2018

Highlights

  • New viewState Property: Makes it possible to specify all map state properties (longitude, latitude, zoom, bearing and pitch) as a single property.
  • New onViewStateChange callback: An alternative callback that matches the new viewState prop.

react-map-gl v3.2

Realease date: January, 2018

Highlights

  • Viewport transition: feature equivalent to Mapbox's flyTo and easeTo; smooth transition when using keyboard navigation or the NavigationControl.
  • Better parity of Mapbox interaction: navigation using keyboard and the navigation control matches Mapbox behavior, including smooth transition when zooming and panning.
  • Support for Map Reuse (experimental): A new property reuseMaps is provided for applications that create and destroy maps, to help work around a mapbox-gl resource leak issue that can lead to a browser crash in certain situations.
  • mapbox-gl 0.42.2
  • New props of the InteractiveMap component:
    • Map creation: transformRequest, reuseMaps
    • Interaction: touchZoom, touchRotate
    • Transition: transitionDuration, transitionInterpolator, transitionEasing, transitionInterruption, onTransitionStart, onTransitionInterrupt, onTransitionEnd

react-map-gl v3.1

Release date: October 19, 2017

Highlights

  • Event handling
    • Support right mouse drag to rotate
    • Support keyboard navigation
    • Allow controls and overlays to block map interactions
  • React 16 - react-map-gl is now being tested with React 16, but the React peer dependency requirement is unchanged at >=15.4.x.
  • mapbox-gl v0.40.1
  • No Token warning: react-map-gl now renders an HTML message if no mapbox token is supplied.

react-map-gl v3.0

Release date: July 27th, 2017

Highlights

  • Latest Mapbox GL JS: Bumps Mapbox GL JS to 0.38.
  • Multi-Touch Support: Full support for multi-touch gestures such as pinch-to-zoom and rotate.
  • New Components: The MapGL component has been split into StaticMap and InteractiveMap (the default). Also, Popup, Marker, NavigationControl have been added to provide better React parity with the Mapbox GL JS API.
  • Improved Overlay Components: Supplying viewport props (width height zoom longitude and latitude) are no longer required if you render SVGOverlay, CanvasOverlay or HTMLOverlay as a child of the map. Perspective mode is now supported in all overlays.
  • New Props: maxPitch, minPitch, dragPan, doubleClickZoom, touchZoomRotate, -scrollZoom are now provided to allow granular control of map interactivity.
  • Documentation: Significantly expanded and linked with our other geospatial frameworks.
  • Examples: New stand-alone examples to get you started instantly with the new features.
  • Event Handling: New event handling architecture that enables full customization of event handling (experimental).

Components

InteractiveMap (New, MapGL replacement)

This is a wrapper on top of StaticMap. It takes all the props of StaticMap and additional ones such as onViewportChange, scrollZoom, dragRotate, etc. to control interactivity on the map. See Source Code for more information.

StaticMap (New)

This is the React wrapper around Mapbox GL JS and takes in viewport properties such as width, height, latitude, longitude. Style diffing and updating logic also live here. See Source Code for more information.

Overlays

  • Three overlays (ScatterplotOverlay, DraggablePointsOverlay, ChoroplethOverlay), have been moved out of the library and are now only provided as examples.

Property Changes

  • Property Names - some prop names have been modernized, the old ones will still work for now with a warning.
  • Internal Properties such as isHovering, isDragging, startDragLngLat have been removed. -These were never meant to be useful publicly and have caused confusions in the past.

Utilities

  • fitBounds: fitBounds has been moved to another repository and has been rewritten to provide a more logical interface.

For more information, see the Upgrade Guide.

react-map-gl v2.0

Date: Jan 17, 2017

Highlights

  • Latest mapbox-gl: Bump mapbox-gl to v0.31.0
  • new maxZoom prop - Add maxZoom prop and defaults to 20
  • New onLoad prop - Add onLoad event handler
  • new onClick prop - Add onClick prop handler (#140)

react-map-gl v1.0

  • Perspective Mode - Now supports bearing and pitch properties, per mapbox-gl api documentation. These props default to 0 which means that maps will still be rendered in flat/ortographic mode when they are not provided
  • Support for ES6 imports - The map overlay components (HTMLOverlay, CanvasOverlay, SVGOverlay etc) previously had to be imported via their relative source paths can now be imported directly using `import {SVGOverlay} from 'react-map-gl'.

react-map-gl v0.6

Initial public version

- - + +

What's new

+

react-map-gl v8.0

+

Release date: Jan 2025

+
    +
  • First version to support Mapbox GL JS' official types and MapLibre GL JS v5. +This version fully separates the code that support each compatible map library: +
      +
    • react-map-gl/mapbox: for use with mapbox-gl>=3.5.0
    • +
    • react-map-gl/maplibre: for use with maplibre-gl>=4
    • +
    • react-map-gl/mapbox-legacy: for use with mapbox-gl v1.x and v2.x and @types/mapbox-gl
    • +
    +
  • +
  • As a result, each endpoint now have slightly smaller bundle size and more precise types.
  • +
  • Maplibre wrapper is expected to have better functionality and performance than v7 by utilizing an upstream API for the React use case.
  • +
+

For a full list of breaking changes, please visit the upgrade guide.

+

react-map-gl v7.1

+

Release date: June 2023

+
    +
  • To better accommodate the API divergence between Mapbox and Maplibre, this version adds a new endpoint react-map-gl/maplibre. The new endpoint exports identical components as react-map-gl, but typed for maplibre-gl instead. After switching to this new endpoint, maplibre-gl users no longer need to install mapbox-gl or a placeholder package as dependency. See upgrade guide for an example.
  • +
  • Marker, Popup and GeolocateControl components now expose the native instance via React ref.
  • +
+

react-map-gl v7.0

+

Release date: Feb 4, 2022

+

v7 is a complete rewrite of the library. It addresses many long-standing issues in v5 and v6 limited by legacy architecture decisions. The most notable results of this redesign are:

+
    +
  • Performance: minimize the overhead of React, offer the same fast and smooth interaction as the native library
  • +
  • Lightweight: the ESM build size is reduced from 219k to 57k
  • +
  • Predictability: Components behave the same as their mapbox counterparts. Props are mapped 1:1 from the native options wherever appropriate. Almost all imperative APIs (flyTo, fitBounds etc.) can now be called directly without breaking the React binding.
  • +
  • Compatibility: first and third-party plugins! Directly use mapbox-gl-draw, mapbox-gl-geocoder, to name a few.
  • +
  • TypeScript compliant: the code base is now entirely written in TypeScript, and all types can be imported.
  • +
+

Visit the upgrade guide if you are trying to upgrade from v5 and v6.

+

react-map-gl v5.3/v6.1

+

Release date: Jan 27, 2020

+

Highlights

+
    +
  • TypeScript and Flow typings are now published with the library
  • +
  • More controller customizations. Smooth easing on wheel scroll, three-finger gesture to change pitch, inertia after pan/pinch, and customizable keyboard navigation speed. See the updated interaction options for details.
  • +
  • A new eventRecognizerOptions prop is added for fine-tuning the interaction experience.
  • +
  • New component: AttributionControl
  • +
  • Promoted to official API: MapContext
  • +
  • Resolved React error over attempted state update during render
  • +
  • GeolocateControl added supports for showAccuracyCircle
  • +
  • All controls now support inline styling with a style prop
  • +
  • All components and examples have been rewritten as functional components
  • +
+

react-map-gl v6.0

+

Release date: Dec 16, 2020

+

What's Changed

+

The 6.0 release upgrades its Mapbox GL JS dependency to v2.0. There are important changes to mapbox-gl's license and pricing model in this milestone. If you are NOT using a Mapbox account (e.g. self-hosting map tiles), do NOT upgrade to this version, and consider your options discussed in this document.

+

See upgrade guide for a complete list of breaking changes.

+

react-map-gl v5.2

+

Release date: Jan 6, 2020

+

Highlights

+
    +
  • New Components: ScaleControl
  • +
  • NavigationControl: new label prop
  • +
  • GeolocateControl: new label, onGeolocate, auto props
  • +
  • New Export: WebMercatorViewport is re-exported from the viewport-mercator-project library for ease of use. It's recommended to import it from react-map-gl instead to avoid future dependency change.
  • +
  • New Example: Clusters
  • +
+

react-map-gl v5.1

+

Release date: Oct 30, 2019

+

Highlights

+
    +
  • New Components: Layer and Source have been added to provide better React parity with the Mapbox GL JS API.
  • +
  • Viewport transition: transitionDuration can be set to 'auto' when using FlyToInterpolator.
  • +
  • New Example: Add an example with drawing library react-map-gl-draw.
  • +
+

react-map-gl v5.0

+

Release date: May 31, 2019

+

What's Changed

+

The only change between the 5.0 release and the latest 4.1 release is Mapbox GL JS v1.0. By using this version, you opt into Mapbox's new pricing model, which bills per map load instead of map views. 5.0.x and 4.1.x will continue to update in parallel with otherwise identical features until November 2019 when Mapbox moves all users of 0.xx to a new pricing scheme. For more details, see mapbox's changelog and blog post.

+

Alongside Mapbox GL JS's new milestone, we have relaxed the mapbox-gl dependency from locking minor release (~0.53.0) to major release (^1.0.0). This will allow developers to upgrade faster without waiting for a new release from react-map-gl.

+

react-map-gl v4.1

+

Release date: Mar 14, 2019

+

Highlights

+
    +
  • New Components: FullscreenControl, GeolocateControl have been added to provide better React parity with the Mapbox GL JS API.
  • +
  • New callback props InteractiveMap supports more callbacks: +
      +
    • onNativeClick
    • +
    +
  • +
+

react-map-gl v4.0

+

Release date: Nov 5, 2018

+

Highlights

+
    +
  • Relative dimensions Both InteractiveMap and StaticMap now support CSS strings supplied to map width and height props. New onResize callback is fired when the map resizes.
  • +
  • React 16 Upgrade to React 16.3 context and ref patterns
  • +
  • Babel 7 Upgrade build system to Babel 7, better support for tree-shaking
  • +
  • Style diffing Now use Mapbox's native style diffing. Immutable is no longer required.
  • +
  • Draggable Markers Marker component now supports a new prop draggable, along with callbacks onDragStart, onDrag, and onDragEnd.
  • +
  • 3d Popups Popup component now supports a new prop sortByDepth to enable proper occlusion when multiple popups are used in a tilted map.
  • +
  • Interaction states onViewportChange is now called with richer descriptors of the user interaction, including isPanning, isZooming and isRotating.
  • +
  • Interactive layers Dropped the requirement for the deprecated interactive property on the layer styles. Use the interactiveLayerIds prop to specify which layers are clickable.
  • +
  • New callback props InteractiveMap supports more callbacks: +
      +
    • onDblClick
    • +
    • onMouseDown
    • +
    • onMouseMove
    • +
    • onMouseUp
    • +
    • onTouchStart
    • +
    • onTouchMove
    • +
    • onTouchEnd
    • +
    • onMouseEnter
    • +
    • onMouseLeave
    • +
    • onWheel
    • +
    • onMouseOut
    • +
    +
  • +
+

See upgrade guide for breaking changes.

+

react-map-gl v3.3

+

Release date: July, 2018

+

Highlights

+
    +
  • New viewState Property: Makes it possible to specify all map state properties (longitude, latitude, zoom, bearing and pitch) as a single property.
  • +
  • New onViewStateChange callback: An alternative callback that matches the new viewState prop.
  • +
+

react-map-gl v3.2

+

Realease date: January, 2018

+

Highlights

+
    +
  • Viewport transition: feature equivalent to Mapbox's flyTo and easeTo; smooth transition when using keyboard navigation or the NavigationControl.
  • +
  • Better parity of Mapbox interaction: navigation using keyboard and the navigation control matches Mapbox behavior, including smooth transition when zooming and panning.
  • +
  • Support for Map Reuse (experimental): A new property reuseMaps is provided for applications that create and destroy maps, to help work around a mapbox-gl resource leak issue that can lead to a browser crash in certain situations.
  • +
  • mapbox-gl 0.42.2
  • +
  • New props of the InteractiveMap component: +
      +
    • Map creation: transformRequest, reuseMaps
    • +
    • Interaction: touchZoom, touchRotate
    • +
    • Transition: transitionDuration, transitionInterpolator, transitionEasing, transitionInterruption, onTransitionStart, onTransitionInterrupt, onTransitionEnd
    • +
    +
  • +
+

react-map-gl v3.1

+

Release date: October 19, 2017

+

Highlights

+
    +
  • Event handling +
      +
    • Support right mouse drag to rotate
    • +
    • Support keyboard navigation
    • +
    • Allow controls and overlays to block map interactions
    • +
    +
  • +
  • React 16 - react-map-gl is now being tested with React 16, but the React peer dependency requirement is unchanged at >=15.4.x.
  • +
  • mapbox-gl v0.40.1
  • +
  • No Token warning: react-map-gl now renders an HTML message if no mapbox token is supplied.
  • +
+

react-map-gl v3.0

+

Release date: July 27th, 2017

+

Highlights

+
    +
  • Latest Mapbox GL JS: Bumps Mapbox GL JS to 0.38.
  • +
  • Multi-Touch Support: Full support for multi-touch gestures such as pinch-to-zoom and rotate.
  • +
  • New Components: The MapGL component has been split into StaticMap and InteractiveMap (the default). Also, Popup, Marker, NavigationControl have been added to provide better React parity with the Mapbox GL JS API.
  • +
  • Improved Overlay Components: Supplying viewport props (width height zoom longitude and latitude) are no longer required if you render SVGOverlay, CanvasOverlay or HTMLOverlay as a child of the map. Perspective mode is now supported in all overlays.
  • +
  • New Props: maxPitch, minPitch, dragPan, doubleClickZoom, touchZoomRotate, +scrollZoom are now provided to allow granular control of map interactivity.
  • +
  • Documentation: Significantly expanded and linked with our other geospatial frameworks.
  • +
  • Examples: New stand-alone examples to get you started instantly with the new features.
  • +
  • Event Handling: New event handling architecture that enables full customization of event handling (experimental).
  • +
+

Components

+

InteractiveMap (New, MapGL replacement)

+

This is a wrapper on top of StaticMap. It takes all the props of StaticMap and additional ones such as onViewportChange, scrollZoom, dragRotate, etc. to control interactivity on the map. See Source Code for more information.

+

StaticMap (New)

+

This is the React wrapper around Mapbox GL JS and takes in viewport properties such as width, height, latitude, longitude. Style diffing and updating logic also live here. See Source Code for more information.

+

Overlays

+
    +
  • Three overlays (ScatterplotOverlay, DraggablePointsOverlay, ChoroplethOverlay), have been moved out of the library and are now only provided as examples.
  • +
+

Property Changes

+
    +
  • Property Names - some prop names have been modernized, the old ones will still work for now with a warning.
  • +
  • Internal Properties such as isHovering, isDragging, startDragLngLat have been removed. +These were never meant to be useful publicly and have caused confusions in the past.
  • +
+

Utilities

+
    +
  • fitBounds: fitBounds has been moved to another repository and has been rewritten to provide a more logical interface.
  • +
+

For more information, see the Upgrade Guide.

+

react-map-gl v2.0

+

Date: Jan 17, 2017

+

Highlights

+
    +
  • Latest mapbox-gl: Bump mapbox-gl to v0.31.0
  • +
  • new maxZoom prop - Add maxZoom prop and defaults to 20
  • +
  • New onLoad prop - Add onLoad event handler
  • +
  • new onClick prop - Add onClick prop handler (#140)
  • +
+

react-map-gl v1.0

+
    +
  • Perspective Mode - Now supports bearing and pitch properties, per mapbox-gl api documentation. These props default to 0 which means that maps will still be rendered in flat/ortographic mode when they are not provided
  • +
  • Support for ES6 imports - The map overlay components (HTMLOverlay, CanvasOverlay, SVGOverlay etc) previously had to be imported via their relative source paths can now be imported directly.
  • +
+

react-map-gl v0.6

+

Initial public version

\ No newline at end of file diff --git a/examples.html b/examples.html index 62ff49e0..92ac665c 100644 --- a/examples.html +++ b/examples.html @@ -1,16 +1,15 @@ - + - -React Map GL - - + +react-map-gl + + - - - - + + \ No newline at end of file diff --git a/examples/clusters.html b/examples/clusters.html deleted file mode 100644 index c8656892..00000000 --- a/examples/clusters.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -React Map GL - - - - - - - - - \ No newline at end of file diff --git a/examples/controls.html b/examples/controls.html deleted file mode 100644 index 5c447830..00000000 --- a/examples/controls.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -React Map GL - - - - - - - - - \ No newline at end of file diff --git a/examples/custom-cursor.html b/examples/custom-cursor.html deleted file mode 100644 index 11da5c78..00000000 --- a/examples/custom-cursor.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -React Map GL - - - - - - - - - \ No newline at end of file diff --git a/examples/draggable-markers.html b/examples/draggable-markers.html deleted file mode 100644 index 689eab3a..00000000 --- a/examples/draggable-markers.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -React Map GL - - - - - - - - - \ No newline at end of file diff --git a/examples/draw-polygon.html b/examples/draw-polygon.html deleted file mode 100644 index 9c94c9c5..00000000 --- a/examples/draw-polygon.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -React Map GL - - - - - - - - - \ No newline at end of file diff --git a/examples/filter.html b/examples/filter.html deleted file mode 100644 index a144e69c..00000000 --- a/examples/filter.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -React Map GL - - - - - - - - - \ No newline at end of file diff --git a/examples/geocoder.html b/examples/geocoder.html deleted file mode 100644 index 2e08a794..00000000 --- a/examples/geocoder.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -React Map GL - - - - - - - - - \ No newline at end of file diff --git a/examples/geojson-animation.html b/examples/geojson-animation.html deleted file mode 100644 index 0814665f..00000000 --- a/examples/geojson-animation.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -React Map GL - - - - - - - - - \ No newline at end of file diff --git a/examples/geojson.html b/examples/geojson.html deleted file mode 100644 index 723ef06d..00000000 --- a/examples/geojson.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -React Map GL - - - - - - - - - \ No newline at end of file diff --git a/examples/heatmap.html b/examples/heatmap.html deleted file mode 100644 index 506bafdb..00000000 --- a/examples/heatmap.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -React Map GL - - - - - - - - - \ No newline at end of file diff --git a/examples/interaction.html b/examples/interaction.html deleted file mode 100644 index d0e356e8..00000000 --- a/examples/interaction.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -React Map GL - - - - -
-

Limit Map Interaction

Limit Map Interaction

Turn interactive features off/on.



- - - - \ No newline at end of file diff --git a/examples/layers.html b/examples/layers.html deleted file mode 100644 index 29312775..00000000 --- a/examples/layers.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -React Map GL - - - - - - - - - \ No newline at end of file diff --git a/examples/mapbox/clusters.html b/examples/mapbox/clusters.html new file mode 100644 index 00000000..0e6c4b46 --- /dev/null +++ b/examples/mapbox/clusters.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/mapbox/controls.html b/examples/mapbox/controls.html new file mode 100644 index 00000000..1d5c7868 --- /dev/null +++ b/examples/mapbox/controls.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +

Markers, Popups and Controls

+ +

Marker, Popup, NavigationControl and FullscreenControl

Map showing top 20 most populated cities of the United States. Click on a marker to learn more.

Data source: Wikipedia

+ + \ No newline at end of file diff --git a/examples/mapbox/custom-cursor.html b/examples/mapbox/custom-cursor.html new file mode 100644 index 00000000..80a68209 --- /dev/null +++ b/examples/mapbox/custom-cursor.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/mapbox/draggable-markers.html b/examples/mapbox/draggable-markers.html new file mode 100644 index 00000000..8becee3b --- /dev/null +++ b/examples/mapbox/draggable-markers.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/mapbox/draw-polygon.html b/examples/mapbox/draw-polygon.html new file mode 100644 index 00000000..ab8fc44d --- /dev/null +++ b/examples/mapbox/draw-polygon.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/mapbox/filter.html b/examples/mapbox/filter.html new file mode 100644 index 00000000..42b10f2e --- /dev/null +++ b/examples/mapbox/filter.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/mapbox/geocoder.html b/examples/mapbox/geocoder.html new file mode 100644 index 00000000..acff3f9f --- /dev/null +++ b/examples/mapbox/geocoder.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/mapbox/geojson-animation.html b/examples/mapbox/geojson-animation.html new file mode 100644 index 00000000..5c966a39 --- /dev/null +++ b/examples/mapbox/geojson-animation.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/mapbox/geojson.html b/examples/mapbox/geojson.html new file mode 100644 index 00000000..2b715755 --- /dev/null +++ b/examples/mapbox/geojson.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/mapbox/heatmap.html b/examples/mapbox/heatmap.html new file mode 100644 index 00000000..2cd890a5 --- /dev/null +++ b/examples/mapbox/heatmap.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/mapbox/interaction.html b/examples/mapbox/interaction.html new file mode 100644 index 00000000..699e6483 --- /dev/null +++ b/examples/mapbox/interaction.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +

Limit Map Interaction

+ +

Limit Map Interaction

Turn interactive features off/on.



+ + \ No newline at end of file diff --git a/examples/mapbox/layers.html b/examples/mapbox/layers.html new file mode 100644 index 00000000..0f300c94 --- /dev/null +++ b/examples/mapbox/layers.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/mapbox/side-by-side.html b/examples/mapbox/side-by-side.html new file mode 100644 index 00000000..0d63437c --- /dev/null +++ b/examples/mapbox/side-by-side.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/mapbox/terrain.html b/examples/mapbox/terrain.html new file mode 100644 index 00000000..f52c2e9c --- /dev/null +++ b/examples/mapbox/terrain.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/mapbox/viewport-animation.html b/examples/mapbox/viewport-animation.html new file mode 100644 index 00000000..b95fde5c --- /dev/null +++ b/examples/mapbox/viewport-animation.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/mapbox/zoom-to-bounds.html b/examples/mapbox/zoom-to-bounds.html new file mode 100644 index 00000000..6bc1ad39 --- /dev/null +++ b/examples/mapbox/zoom-to-bounds.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/maplibre/clusters.html b/examples/maplibre/clusters.html new file mode 100644 index 00000000..85a090d0 --- /dev/null +++ b/examples/maplibre/clusters.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/maplibre/controls.html b/examples/maplibre/controls.html new file mode 100644 index 00000000..3ef1b8ec --- /dev/null +++ b/examples/maplibre/controls.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +

Markers, Popups and Controls

+ +

Marker, Popup, NavigationControl and FullscreenControl

Map showing top 20 most populated cities of the United States. Click on a marker to learn more.

Data source: Wikipedia

+ + \ No newline at end of file diff --git a/examples/maplibre/custom-cursor.html b/examples/maplibre/custom-cursor.html new file mode 100644 index 00000000..c541fd29 --- /dev/null +++ b/examples/maplibre/custom-cursor.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/maplibre/draggable-markers.html b/examples/maplibre/draggable-markers.html new file mode 100644 index 00000000..f32d1345 --- /dev/null +++ b/examples/maplibre/draggable-markers.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/maplibre/draw-polygon.html b/examples/maplibre/draw-polygon.html new file mode 100644 index 00000000..de691aa9 --- /dev/null +++ b/examples/maplibre/draw-polygon.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/maplibre/filter.html b/examples/maplibre/filter.html new file mode 100644 index 00000000..b6b997b6 --- /dev/null +++ b/examples/maplibre/filter.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/maplibre/geocoder.html b/examples/maplibre/geocoder.html new file mode 100644 index 00000000..9d45a467 --- /dev/null +++ b/examples/maplibre/geocoder.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/maplibre/geojson-animation.html b/examples/maplibre/geojson-animation.html new file mode 100644 index 00000000..8113fafc --- /dev/null +++ b/examples/maplibre/geojson-animation.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/maplibre/geojson.html b/examples/maplibre/geojson.html new file mode 100644 index 00000000..ad93405f --- /dev/null +++ b/examples/maplibre/geojson.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/maplibre/heatmap.html b/examples/maplibre/heatmap.html new file mode 100644 index 00000000..dc07f46e --- /dev/null +++ b/examples/maplibre/heatmap.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/maplibre/interaction.html b/examples/maplibre/interaction.html new file mode 100644 index 00000000..b46600fc --- /dev/null +++ b/examples/maplibre/interaction.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +

Limit Map Interaction

+ +

Limit Map Interaction

Turn interactive features off/on.



+ + \ No newline at end of file diff --git a/examples/maplibre/layers.html b/examples/maplibre/layers.html new file mode 100644 index 00000000..7ac7e49f --- /dev/null +++ b/examples/maplibre/layers.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/maplibre/side-by-side.html b/examples/maplibre/side-by-side.html new file mode 100644 index 00000000..449eb0a9 --- /dev/null +++ b/examples/maplibre/side-by-side.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/maplibre/terrain.html b/examples/maplibre/terrain.html new file mode 100644 index 00000000..134a98a1 --- /dev/null +++ b/examples/maplibre/terrain.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/maplibre/viewport-animation.html b/examples/maplibre/viewport-animation.html new file mode 100644 index 00000000..3d7bf632 --- /dev/null +++ b/examples/maplibre/viewport-animation.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/maplibre/zoom-to-bounds.html b/examples/maplibre/zoom-to-bounds.html new file mode 100644 index 00000000..b1739e83 --- /dev/null +++ b/examples/maplibre/zoom-to-bounds.html @@ -0,0 +1,15 @@ + + + + + +react-map-gl + + + + +
+ + \ No newline at end of file diff --git a/examples/side-by-side.html b/examples/side-by-side.html deleted file mode 100644 index bf34a5ea..00000000 --- a/examples/side-by-side.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -React Map GL - - - - - - - - - \ No newline at end of file diff --git a/examples/terrain.html b/examples/terrain.html deleted file mode 100644 index 815c5138..00000000 --- a/examples/terrain.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -React Map GL - - - - - - - - - \ No newline at end of file diff --git a/examples/viewport-animation.html b/examples/viewport-animation.html deleted file mode 100644 index 206d2835..00000000 --- a/examples/viewport-animation.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -React Map GL - - - - - - - - - \ No newline at end of file diff --git a/examples/zoom-to-bounds.html b/examples/zoom-to-bounds.html deleted file mode 100644 index f3bcccd4..00000000 --- a/examples/zoom-to-bounds.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -React Map GL - - - - - - - - - \ No newline at end of file diff --git a/favicon.png b/favicon.png new file mode 100644 index 00000000..ee5fee72 Binary files /dev/null and b/favicon.png differ diff --git a/index.html b/index.html index 3a9bce24..350077c9 100644 --- a/index.html +++ b/index.html @@ -1,16 +1,13 @@ - + - -Home | React Map GL - - + +Home | react-map-gl + + - -
-

React Map GL

React wrapper for Mapbox GL JS

GET STARTED

react-map-gl makes using Mapbox GL JS in React applications easy.


React Integration

Use Mapbox GL JS Map as a fully controlled reactive component.

Extensible

Comes with additional React interfaces such as context and hooks to support custom components.

Part of vis.gl's Framework Suite

Use together with e.g. deck.gl to render performant and compelling 2D and 3D WebGL visualizations on top of your Mapbox GL JS based maps.

- - + +

react-map-gl

React components for Mapbox GL JS and Maplibre GL JS

GET STARTED
\ No newline at end of file diff --git a/search-index-docs-default-current.json b/search-index-docs-default-current.json new file mode 100644 index 00000000..cc8ff0de --- /dev/null +++ b/search-index-docs-default-current.json @@ -0,0 +1 @@ +{"documents":[{"id":1,"pageTitle":"Introduction","sectionTitle":"Introduction","sectionRoute":"/react-map-gl/docs","type":"docs"},{"id":2,"pageTitle":"Introduction","sectionTitle":"Design Philosophy","sectionRoute":"/react-map-gl/docs#design-philosophy","type":"docs"},{"id":3,"pageTitle":"Introduction","sectionTitle":"Limitations","sectionRoute":"/react-map-gl/docs#limitations","type":"docs"},{"id":28,"pageTitle":"AttributionControl","sectionTitle":"AttributionControl","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/attribution-control","type":"docs"},{"id":29,"pageTitle":"AttributionControl","sectionTitle":"Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/attribution-control#properties","type":"docs"},{"id":30,"pageTitle":"AttributionControl","sectionTitle":"Reactive Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/attribution-control#reactive-properties","type":"docs"},{"id":31,"pageTitle":"AttributionControl","sectionTitle":"Other Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/attribution-control#other-properties","type":"docs"},{"id":32,"pageTitle":"AttributionControl","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/attribution-control#source","type":"docs"},{"id":4,"pageTitle":"FullscreenControl","sectionTitle":"FullscreenControl","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/fullscreen-control","type":"docs"},{"id":5,"pageTitle":"FullscreenControl","sectionTitle":"Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/fullscreen-control#properties","type":"docs"},{"id":6,"pageTitle":"FullscreenControl","sectionTitle":"Reactive Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/fullscreen-control#reactive-properties","type":"docs"},{"id":7,"pageTitle":"FullscreenControl","sectionTitle":"Other Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/fullscreen-control#other-properties","type":"docs"},{"id":8,"pageTitle":"FullscreenControl","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/fullscreen-control#source","type":"docs"},{"id":9,"pageTitle":"GeolocateControl","sectionTitle":"GeolocateControl","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/geolocate-control","type":"docs"},{"id":10,"pageTitle":"GeolocateControl","sectionTitle":"Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/geolocate-control#properties","type":"docs"},{"id":11,"pageTitle":"GeolocateControl","sectionTitle":"Reactive Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/geolocate-control#reactive-properties","type":"docs"},{"id":12,"pageTitle":"GeolocateControl","sectionTitle":"Callbacks","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/geolocate-control#callbacks","type":"docs"},{"id":13,"pageTitle":"GeolocateControl","sectionTitle":"Other Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/geolocate-control#other-properties","type":"docs"},{"id":14,"pageTitle":"GeolocateControl","sectionTitle":"Methods","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/geolocate-control#methods","type":"docs"},{"id":15,"pageTitle":"GeolocateControl","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/geolocate-control#source","type":"docs"},{"id":16,"pageTitle":"Layer","sectionTitle":"Layer","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/layer","type":"docs"},{"id":17,"pageTitle":"Layer","sectionTitle":"Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/layer#properties","type":"docs"},{"id":18,"pageTitle":"Layer","sectionTitle":"Identity Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/layer#identity-properties","type":"docs"},{"id":19,"pageTitle":"Layer","sectionTitle":"Options","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/layer#options","type":"docs"},{"id":20,"pageTitle":"Layer","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/layer#source","type":"docs"},{"id":74,"pageTitle":"default (Map)","sectionTitle":"default (Map)","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/map","type":"docs"},{"id":75,"pageTitle":"default (Map)","sectionTitle":"Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/map#properties","type":"docs"},{"id":76,"pageTitle":"default (Map)","sectionTitle":"Layout options","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/map#layout-options","type":"docs"},{"id":77,"pageTitle":"default (Map)","sectionTitle":"Styling options","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/map#styling-options","type":"docs"},{"id":78,"pageTitle":"default (Map)","sectionTitle":"Camera options","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/map#camera-options","type":"docs"},{"id":79,"pageTitle":"default (Map)","sectionTitle":"Input handler options","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/map#input-handler-options","type":"docs"},{"id":80,"pageTitle":"default (Map)","sectionTitle":"Callbacks","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/map#callbacks","type":"docs"},{"id":81,"pageTitle":"default (Map)","sectionTitle":"Other options","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/map#other-options","type":"docs"},{"id":82,"pageTitle":"default (Map)","sectionTitle":"Methods","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/map#methods","type":"docs"},{"id":83,"pageTitle":"default (Map)","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/map#source","type":"docs"},{"id":38,"pageTitle":"MapProvider","sectionTitle":"MapProvider","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/map-provider","type":"docs"},{"id":39,"pageTitle":"MapProvider","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/map-provider#source","type":"docs"},{"id":21,"pageTitle":"Marker","sectionTitle":"Marker","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/marker","type":"docs"},{"id":22,"pageTitle":"Marker","sectionTitle":"Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/marker#properties","type":"docs"},{"id":23,"pageTitle":"Marker","sectionTitle":"Reactive Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/marker#reactive-properties","type":"docs"},{"id":24,"pageTitle":"Marker","sectionTitle":"Callbacks","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/marker#callbacks","type":"docs"},{"id":25,"pageTitle":"Marker","sectionTitle":"Other Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/marker#other-properties","type":"docs"},{"id":26,"pageTitle":"Marker","sectionTitle":"Methods","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/marker#methods","type":"docs"},{"id":27,"pageTitle":"Marker","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/marker#source","type":"docs"},{"id":33,"pageTitle":"NavigationControl","sectionTitle":"NavigationControl","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/navigation-control","type":"docs"},{"id":34,"pageTitle":"NavigationControl","sectionTitle":"Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/navigation-control#properties","type":"docs"},{"id":35,"pageTitle":"NavigationControl","sectionTitle":"Reactive Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/navigation-control#reactive-properties","type":"docs"},{"id":36,"pageTitle":"NavigationControl","sectionTitle":"Other Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/navigation-control#other-properties","type":"docs"},{"id":37,"pageTitle":"NavigationControl","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/navigation-control#source","type":"docs"},{"id":40,"pageTitle":"Popup","sectionTitle":"Popup","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/popup","type":"docs"},{"id":41,"pageTitle":"Popup","sectionTitle":"Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/popup#properties","type":"docs"},{"id":42,"pageTitle":"Popup","sectionTitle":"Reactive Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/popup#reactive-properties","type":"docs"},{"id":43,"pageTitle":"Popup","sectionTitle":"Callbacks","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/popup#callbacks","type":"docs"},{"id":44,"pageTitle":"Popup","sectionTitle":"Other Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/popup#other-properties","type":"docs"},{"id":45,"pageTitle":"Popup","sectionTitle":"Methods","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/popup#methods","type":"docs"},{"id":46,"pageTitle":"Popup","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/popup#source","type":"docs"},{"id":56,"pageTitle":"ScaleControl","sectionTitle":"ScaleControl","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/scale-control","type":"docs"},{"id":57,"pageTitle":"ScaleControl","sectionTitle":"Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/scale-control#properties","type":"docs"},{"id":58,"pageTitle":"ScaleControl","sectionTitle":"Reactive Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/scale-control#reactive-properties","type":"docs"},{"id":59,"pageTitle":"ScaleControl","sectionTitle":"Other Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/scale-control#other-properties","type":"docs"},{"id":60,"pageTitle":"ScaleControl","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/scale-control#source","type":"docs"},{"id":47,"pageTitle":"Source","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/source","type":"docs"},{"id":48,"pageTitle":"Source","sectionTitle":"Properties","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/source#properties","type":"docs"},{"id":49,"pageTitle":"Source","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/source#source-1","type":"docs"},{"id":50,"pageTitle":"Types","sectionTitle":"Types","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/types","type":"docs"},{"id":51,"pageTitle":"Types","sectionTitle":"Components","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/types#components","type":"docs"},{"id":52,"pageTitle":"Types","sectionTitle":"Styling","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/types#styling","type":"docs"},{"id":53,"pageTitle":"Types","sectionTitle":"Configurations","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/types#configurations","type":"docs"},{"id":54,"pageTitle":"Types","sectionTitle":"Data Types","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/types#data-types","type":"docs"},{"id":55,"pageTitle":"Types","sectionTitle":"Events","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/types#events","type":"docs"},{"id":61,"pageTitle":"useControl","sectionTitle":"useControl","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/use-control","type":"docs"},{"id":62,"pageTitle":"useControl","sectionTitle":"Signature","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/use-control#signature","type":"docs"},{"id":63,"pageTitle":"useControl","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/use-control#source","type":"docs"},{"id":96,"pageTitle":"useMap","sectionTitle":"useMap","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/use-map","type":"docs"},{"id":97,"pageTitle":"useMap","sectionTitle":"Signature","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/use-map#signature","type":"docs"},{"id":98,"pageTitle":"useMap","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/mapbox/use-map#source","type":"docs"},{"id":69,"pageTitle":"AttributionControl","sectionTitle":"AttributionControl","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/attribution-control","type":"docs"},{"id":70,"pageTitle":"AttributionControl","sectionTitle":"Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/attribution-control#properties","type":"docs"},{"id":71,"pageTitle":"AttributionControl","sectionTitle":"Reactive Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/attribution-control#reactive-properties","type":"docs"},{"id":72,"pageTitle":"AttributionControl","sectionTitle":"Other Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/attribution-control#other-properties","type":"docs"},{"id":73,"pageTitle":"AttributionControl","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/attribution-control#source","type":"docs"},{"id":64,"pageTitle":"FullscreenControl","sectionTitle":"FullscreenControl","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/fullscreen-control","type":"docs"},{"id":65,"pageTitle":"FullscreenControl","sectionTitle":"Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/fullscreen-control#properties","type":"docs"},{"id":66,"pageTitle":"FullscreenControl","sectionTitle":"Reactive Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/fullscreen-control#reactive-properties","type":"docs"},{"id":67,"pageTitle":"FullscreenControl","sectionTitle":"Other Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/fullscreen-control#other-properties","type":"docs"},{"id":68,"pageTitle":"FullscreenControl","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/fullscreen-control#source","type":"docs"},{"id":84,"pageTitle":"GeolocateControl","sectionTitle":"GeolocateControl","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/geolocate-control","type":"docs"},{"id":85,"pageTitle":"GeolocateControl","sectionTitle":"Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/geolocate-control#properties","type":"docs"},{"id":86,"pageTitle":"GeolocateControl","sectionTitle":"Reactive Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/geolocate-control#reactive-properties","type":"docs"},{"id":87,"pageTitle":"GeolocateControl","sectionTitle":"Callbacks","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/geolocate-control#callbacks","type":"docs"},{"id":88,"pageTitle":"GeolocateControl","sectionTitle":"Other Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/geolocate-control#other-properties","type":"docs"},{"id":89,"pageTitle":"GeolocateControl","sectionTitle":"Methods","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/geolocate-control#methods","type":"docs"},{"id":90,"pageTitle":"GeolocateControl","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/geolocate-control#source","type":"docs"},{"id":91,"pageTitle":"Layer","sectionTitle":"Layer","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/layer","type":"docs"},{"id":92,"pageTitle":"Layer","sectionTitle":"Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/layer#properties","type":"docs"},{"id":93,"pageTitle":"Layer","sectionTitle":"Identity Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/layer#identity-properties","type":"docs"},{"id":94,"pageTitle":"Layer","sectionTitle":"Options","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/layer#options","type":"docs"},{"id":95,"pageTitle":"Layer","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/layer#source","type":"docs"},{"id":111,"pageTitle":"LogoControl","sectionTitle":"LogoControl","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/logo-control","type":"docs"},{"id":112,"pageTitle":"LogoControl","sectionTitle":"Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/logo-control#properties","type":"docs"},{"id":113,"pageTitle":"LogoControl","sectionTitle":"Reactive Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/logo-control#reactive-properties","type":"docs"},{"id":114,"pageTitle":"LogoControl","sectionTitle":"Other Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/logo-control#other-properties","type":"docs"},{"id":115,"pageTitle":"LogoControl","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/logo-control#source","type":"docs"},{"id":101,"pageTitle":"default (Map)","sectionTitle":"default (Map)","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/map","type":"docs"},{"id":102,"pageTitle":"default (Map)","sectionTitle":"Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/map#properties","type":"docs"},{"id":103,"pageTitle":"default (Map)","sectionTitle":"Layout options","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/map#layout-options","type":"docs"},{"id":104,"pageTitle":"default (Map)","sectionTitle":"Styling options","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/map#styling-options","type":"docs"},{"id":105,"pageTitle":"default (Map)","sectionTitle":"Camera options","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/map#camera-options","type":"docs"},{"id":106,"pageTitle":"default (Map)","sectionTitle":"Input handler options","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/map#input-handler-options","type":"docs"},{"id":107,"pageTitle":"default (Map)","sectionTitle":"Callbacks","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/map#callbacks","type":"docs"},{"id":108,"pageTitle":"default (Map)","sectionTitle":"Other options","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/map#other-options","type":"docs"},{"id":109,"pageTitle":"default (Map)","sectionTitle":"Methods","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/map#methods","type":"docs"},{"id":110,"pageTitle":"default (Map)","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/map#source","type":"docs"},{"id":99,"pageTitle":"MapProvider","sectionTitle":"MapProvider","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/map-provider","type":"docs"},{"id":100,"pageTitle":"MapProvider","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/map-provider#source","type":"docs"},{"id":141,"pageTitle":"Marker","sectionTitle":"Marker","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/marker","type":"docs"},{"id":142,"pageTitle":"Marker","sectionTitle":"Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/marker#properties","type":"docs"},{"id":143,"pageTitle":"Marker","sectionTitle":"Reactive Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/marker#reactive-properties","type":"docs"},{"id":144,"pageTitle":"Marker","sectionTitle":"Callbacks","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/marker#callbacks","type":"docs"},{"id":145,"pageTitle":"Marker","sectionTitle":"Other Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/marker#other-properties","type":"docs"},{"id":146,"pageTitle":"Marker","sectionTitle":"Methods","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/marker#methods","type":"docs"},{"id":147,"pageTitle":"Marker","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/marker#source","type":"docs"},{"id":116,"pageTitle":"NavigationControl","sectionTitle":"NavigationControl","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/navigation-control","type":"docs"},{"id":117,"pageTitle":"NavigationControl","sectionTitle":"Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/navigation-control#properties","type":"docs"},{"id":118,"pageTitle":"NavigationControl","sectionTitle":"Reactive Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/navigation-control#reactive-properties","type":"docs"},{"id":119,"pageTitle":"NavigationControl","sectionTitle":"Other Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/navigation-control#other-properties","type":"docs"},{"id":120,"pageTitle":"NavigationControl","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/navigation-control#source","type":"docs"},{"id":121,"pageTitle":"Popup","sectionTitle":"Popup","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/popup","type":"docs"},{"id":122,"pageTitle":"Popup","sectionTitle":"Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/popup#properties","type":"docs"},{"id":123,"pageTitle":"Popup","sectionTitle":"Reactive Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/popup#reactive-properties","type":"docs"},{"id":124,"pageTitle":"Popup","sectionTitle":"Callbacks","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/popup#callbacks","type":"docs"},{"id":125,"pageTitle":"Popup","sectionTitle":"Other Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/popup#other-properties","type":"docs"},{"id":126,"pageTitle":"Popup","sectionTitle":"Methods","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/popup#methods","type":"docs"},{"id":127,"pageTitle":"Popup","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/popup#source","type":"docs"},{"id":136,"pageTitle":"ScaleControl","sectionTitle":"ScaleControl","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/scale-control","type":"docs"},{"id":137,"pageTitle":"ScaleControl","sectionTitle":"Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/scale-control#properties","type":"docs"},{"id":138,"pageTitle":"ScaleControl","sectionTitle":"Reactive Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/scale-control#reactive-properties","type":"docs"},{"id":139,"pageTitle":"ScaleControl","sectionTitle":"Other Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/scale-control#other-properties","type":"docs"},{"id":140,"pageTitle":"ScaleControl","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/scale-control#source","type":"docs"},{"id":128,"pageTitle":"Source","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/source","type":"docs"},{"id":129,"pageTitle":"Source","sectionTitle":"Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/source#properties","type":"docs"},{"id":130,"pageTitle":"Source","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/source#source-1","type":"docs"},{"id":131,"pageTitle":"TerrainControl","sectionTitle":"TerrainControl","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/terrain-control","type":"docs"},{"id":132,"pageTitle":"TerrainControl","sectionTitle":"Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/terrain-control#properties","type":"docs"},{"id":133,"pageTitle":"TerrainControl","sectionTitle":"Reactive Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/terrain-control#reactive-properties","type":"docs"},{"id":134,"pageTitle":"TerrainControl","sectionTitle":"Other Properties","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/terrain-control#other-properties","type":"docs"},{"id":135,"pageTitle":"TerrainControl","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/terrain-control#source","type":"docs"},{"id":148,"pageTitle":"Types","sectionTitle":"Types","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/types","type":"docs"},{"id":149,"pageTitle":"Types","sectionTitle":"Components","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/types#components","type":"docs"},{"id":150,"pageTitle":"Types","sectionTitle":"Styling","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/types#styling","type":"docs"},{"id":151,"pageTitle":"Types","sectionTitle":"Configurations","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/types#configurations","type":"docs"},{"id":152,"pageTitle":"Types","sectionTitle":"Data Types","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/types#data-types","type":"docs"},{"id":153,"pageTitle":"Types","sectionTitle":"Events","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/types#events","type":"docs"},{"id":154,"pageTitle":"useControl","sectionTitle":"useControl","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/use-control","type":"docs"},{"id":155,"pageTitle":"useControl","sectionTitle":"Signature","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/use-control#signature","type":"docs"},{"id":156,"pageTitle":"useControl","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/use-control#source","type":"docs"},{"id":171,"pageTitle":"useMap","sectionTitle":"useMap","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/use-map","type":"docs"},{"id":172,"pageTitle":"useMap","sectionTitle":"Signature","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/use-map#signature","type":"docs"},{"id":173,"pageTitle":"useMap","sectionTitle":"Source","sectionRoute":"/react-map-gl/docs/api-reference/maplibre/use-map#source","type":"docs"},{"id":157,"pageTitle":"Contributing","sectionTitle":"Contributing","sectionRoute":"/react-map-gl/docs/contributing","type":"docs"},{"id":158,"pageTitle":"Contributing","sectionTitle":"Setting Up Dev Environment","sectionRoute":"/react-map-gl/docs/contributing#setting-up-dev-environment","type":"docs"},{"id":159,"pageTitle":"Contributing","sectionTitle":"Pull Requests","sectionRoute":"/react-map-gl/docs/contributing#pull-requests","type":"docs"},{"id":160,"pageTitle":"Contributing","sectionTitle":"PR Checklist","sectionRoute":"/react-map-gl/docs/contributing#pr-checklist","type":"docs"},{"id":161,"pageTitle":"Contributing","sectionTitle":"Release","sectionRoute":"/react-map-gl/docs/contributing#release","type":"docs"},{"id":162,"pageTitle":"Contributing","sectionTitle":"Community Governance","sectionRoute":"/react-map-gl/docs/contributing#community-governance","type":"docs"},{"id":163,"pageTitle":"Contributing","sectionTitle":"Technical Steering Committee","sectionRoute":"/react-map-gl/docs/contributing#technical-steering-committee","type":"docs"},{"id":164,"pageTitle":"Contributing","sectionTitle":"Maintainers","sectionRoute":"/react-map-gl/docs/contributing#maintainers","type":"docs"},{"id":174,"pageTitle":"Get Started","sectionTitle":"Get Started","sectionRoute":"/react-map-gl/docs/get-started","type":"docs"},{"id":175,"pageTitle":"Get Started","sectionTitle":"Installation","sectionRoute":"/react-map-gl/docs/get-started#installation","type":"docs"},{"id":176,"pageTitle":"Get Started","sectionTitle":"Example","sectionRoute":"/react-map-gl/docs/get-started#example","type":"docs"},{"id":177,"pageTitle":"Get Started","sectionTitle":"Styling","sectionRoute":"/react-map-gl/docs/get-started#styling","type":"docs"},{"id":165,"pageTitle":"Adding Custom Data","sectionTitle":"Adding Custom Data","sectionRoute":"/react-map-gl/docs/get-started/adding-custom-data","type":"docs"},{"id":166,"pageTitle":"Adding Custom Data","sectionTitle":"Native Mapbox Layers","sectionRoute":"/react-map-gl/docs/get-started/adding-custom-data#native-mapbox-layers","type":"docs"},{"id":167,"pageTitle":"Adding Custom Data","sectionTitle":"Custom Overlays","sectionRoute":"/react-map-gl/docs/get-started/adding-custom-data#custom-overlays","type":"docs"},{"id":168,"pageTitle":"Adding Custom Data","sectionTitle":"Other vis.gl Libraries","sectionRoute":"/react-map-gl/docs/get-started/adding-custom-data#other-visgl-libraries","type":"docs"},{"id":169,"pageTitle":"About Mapbox Tokens","sectionTitle":"About Mapbox Tokens","sectionRoute":"/react-map-gl/docs/get-started/mapbox-tokens","type":"docs"},{"id":170,"pageTitle":"About Mapbox Tokens","sectionTitle":"Display Maps Without A Mapbox Token","sectionRoute":"/react-map-gl/docs/get-started/mapbox-tokens#display-maps-without-a-mapbox-token","type":"docs"},{"id":204,"pageTitle":"State Management","sectionTitle":"State Management","sectionRoute":"/react-map-gl/docs/get-started/state-management","type":"docs"},{"id":205,"pageTitle":"State Management","sectionTitle":"Uncontrolled Map","sectionRoute":"/react-map-gl/docs/get-started/state-management#uncontrolled-map","type":"docs"},{"id":206,"pageTitle":"State Management","sectionTitle":"Controlled Map","sectionRoute":"/react-map-gl/docs/get-started/state-management#controlled-map","type":"docs"},{"id":207,"pageTitle":"State Management","sectionTitle":"Custom Camera Constraints","sectionRoute":"/react-map-gl/docs/get-started/state-management#custom-camera-constraints","type":"docs"},{"id":178,"pageTitle":"Tips and Tricks","sectionTitle":"Tips and Tricks","sectionRoute":"/react-map-gl/docs/get-started/tips-and-tricks","type":"docs"},{"id":179,"pageTitle":"Tips and Tricks","sectionTitle":"Securing Mapbox Token","sectionRoute":"/react-map-gl/docs/get-started/tips-and-tricks#securing-mapbox-token","type":"docs"},{"id":180,"pageTitle":"Tips and Tricks","sectionTitle":"Minimize Cost from Frequent Re-mounting","sectionRoute":"/react-map-gl/docs/get-started/tips-and-tricks#minimize-cost-from-frequent-re-mounting","type":"docs"},{"id":181,"pageTitle":"Tips and Tricks","sectionTitle":"Performance with Many Markers","sectionRoute":"/react-map-gl/docs/get-started/tips-and-tricks#performance-with-many-markers","type":"docs"},{"id":182,"pageTitle":"Tips and Tricks","sectionTitle":"Finding out if a point is within the current viewport","sectionRoute":"/react-map-gl/docs/get-started/tips-and-tricks#finding-out-if-a-point-is-within-the-current-viewport","type":"docs"},{"id":183,"pageTitle":"Upgrade Guide","sectionTitle":"Upgrade Guide","sectionRoute":"/react-map-gl/docs/upgrade-guide","type":"docs"},{"id":184,"pageTitle":"Upgrade Guide","sectionTitle":"Upgrading to v8.0","sectionRoute":"/react-map-gl/docs/upgrade-guide#upgrading-to-v80","type":"docs"},{"id":185,"pageTitle":"Upgrade Guide","sectionTitle":"MapLibre","sectionRoute":"/react-map-gl/docs/upgrade-guide#maplibre","type":"docs"},{"id":186,"pageTitle":"Upgrade Guide","sectionTitle":"Upgrading to v7.1","sectionRoute":"/react-map-gl/docs/upgrade-guide#upgrading-to-v71","type":"docs"},{"id":187,"pageTitle":"Upgrade Guide","sectionTitle":"Upgrading to v7.0","sectionRoute":"/react-map-gl/docs/upgrade-guide#upgrading-to-v70","type":"docs"},{"id":188,"pageTitle":"Upgrade Guide","sectionTitle":"Dependencies","sectionRoute":"/react-map-gl/docs/upgrade-guide#dependencies","type":"docs"},{"id":189,"pageTitle":"Upgrade Guide","sectionTitle":"Module exports","sectionRoute":"/react-map-gl/docs/upgrade-guide#module-exports","type":"docs"},{"id":190,"pageTitle":"Upgrade Guide","sectionTitle":"Map","sectionRoute":"/react-map-gl/docs/upgrade-guide#map","type":"docs"},{"id":191,"pageTitle":"Upgrade Guide","sectionTitle":"Other components","sectionRoute":"/react-map-gl/docs/upgrade-guide#other-components","type":"docs"},{"id":192,"pageTitle":"Upgrade Guide","sectionTitle":"Upgrading to v5.3/v6.1","sectionRoute":"/react-map-gl/docs/upgrade-guide#upgrading-to-v53v61","type":"docs"},{"id":193,"pageTitle":"Upgrade Guide","sectionTitle":"Upgrading to v6","sectionRoute":"/react-map-gl/docs/upgrade-guide#upgrading-to-v6","type":"docs"},{"id":194,"pageTitle":"Upgrade Guide","sectionTitle":"Upgrading to v4","sectionRoute":"/react-map-gl/docs/upgrade-guide#upgrading-to-v4","type":"docs"},{"id":195,"pageTitle":"Upgrade Guide","sectionTitle":"Upgrading to v3.2","sectionRoute":"/react-map-gl/docs/upgrade-guide#upgrading-to-v32","type":"docs"},{"id":196,"pageTitle":"Upgrade Guide","sectionTitle":"Upgrading to v3","sectionRoute":"/react-map-gl/docs/upgrade-guide#upgrading-to-v3","type":"docs"},{"id":197,"pageTitle":"Upgrade Guide","sectionTitle":"Version Requirements","sectionRoute":"/react-map-gl/docs/upgrade-guide#version-requirements","type":"docs"},{"id":198,"pageTitle":"Upgrade Guide","sectionTitle":"MapGL Component","sectionRoute":"/react-map-gl/docs/upgrade-guide#mapgl-component","type":"docs"},{"id":199,"pageTitle":"Upgrade Guide","sectionTitle":"Overlays","sectionRoute":"/react-map-gl/docs/upgrade-guide#overlays","type":"docs"},{"id":200,"pageTitle":"Upgrade Guide","sectionTitle":"fitBounds utility function","sectionRoute":"/react-map-gl/docs/upgrade-guide#fitbounds-utility-function","type":"docs"},{"id":201,"pageTitle":"Upgrade Guide","sectionTitle":"Deprecations","sectionRoute":"/react-map-gl/docs/upgrade-guide#deprecations","type":"docs"},{"id":202,"pageTitle":"Upgrade Guide","sectionTitle":"Upgrading to v2","sectionRoute":"/react-map-gl/docs/upgrade-guide#upgrading-to-v2","type":"docs"},{"id":203,"pageTitle":"Upgrade Guide","sectionTitle":"Upgrading to v1","sectionRoute":"/react-map-gl/docs/upgrade-guide#upgrading-to-v1","type":"docs"},{"id":208,"pageTitle":"What's new","sectionTitle":"What's new","sectionRoute":"/react-map-gl/docs/whats-new","type":"docs"},{"id":209,"pageTitle":"What's new","sectionTitle":"react-map-gl v8.0","sectionRoute":"/react-map-gl/docs/whats-new#react-map-gl-v80","type":"docs"},{"id":210,"pageTitle":"What's new","sectionTitle":"react-map-gl v7.1","sectionRoute":"/react-map-gl/docs/whats-new#react-map-gl-v71","type":"docs"},{"id":211,"pageTitle":"What's new","sectionTitle":"react-map-gl v7.0","sectionRoute":"/react-map-gl/docs/whats-new#react-map-gl-v70","type":"docs"},{"id":212,"pageTitle":"What's new","sectionTitle":"react-map-gl v5.3/v6.1","sectionRoute":"/react-map-gl/docs/whats-new#react-map-gl-v53v61","type":"docs"},{"id":213,"pageTitle":"What's new","sectionTitle":"Highlights","sectionRoute":"/react-map-gl/docs/whats-new#highlights","type":"docs"},{"id":214,"pageTitle":"What's new","sectionTitle":"react-map-gl v6.0","sectionRoute":"/react-map-gl/docs/whats-new#react-map-gl-v60","type":"docs"},{"id":215,"pageTitle":"What's new","sectionTitle":"What's Changed","sectionRoute":"/react-map-gl/docs/whats-new#whats-changed","type":"docs"},{"id":216,"pageTitle":"What's new","sectionTitle":"react-map-gl v5.2","sectionRoute":"/react-map-gl/docs/whats-new#react-map-gl-v52","type":"docs"},{"id":217,"pageTitle":"What's new","sectionTitle":"Highlights","sectionRoute":"/react-map-gl/docs/whats-new#highlights-1","type":"docs"},{"id":218,"pageTitle":"What's new","sectionTitle":"react-map-gl v5.1","sectionRoute":"/react-map-gl/docs/whats-new#react-map-gl-v51","type":"docs"},{"id":219,"pageTitle":"What's new","sectionTitle":"Highlights","sectionRoute":"/react-map-gl/docs/whats-new#highlights-2","type":"docs"},{"id":220,"pageTitle":"What's new","sectionTitle":"react-map-gl v5.0","sectionRoute":"/react-map-gl/docs/whats-new#react-map-gl-v50","type":"docs"},{"id":221,"pageTitle":"What's new","sectionTitle":"What's Changed","sectionRoute":"/react-map-gl/docs/whats-new#whats-changed-1","type":"docs"},{"id":222,"pageTitle":"What's new","sectionTitle":"react-map-gl v4.1","sectionRoute":"/react-map-gl/docs/whats-new#react-map-gl-v41","type":"docs"},{"id":223,"pageTitle":"What's new","sectionTitle":"Highlights","sectionRoute":"/react-map-gl/docs/whats-new#highlights-3","type":"docs"},{"id":224,"pageTitle":"What's new","sectionTitle":"react-map-gl v4.0","sectionRoute":"/react-map-gl/docs/whats-new#react-map-gl-v40","type":"docs"},{"id":225,"pageTitle":"What's new","sectionTitle":"Highlights","sectionRoute":"/react-map-gl/docs/whats-new#highlights-4","type":"docs"},{"id":226,"pageTitle":"What's new","sectionTitle":"react-map-gl v3.3","sectionRoute":"/react-map-gl/docs/whats-new#react-map-gl-v33","type":"docs"},{"id":227,"pageTitle":"What's new","sectionTitle":"Highlights","sectionRoute":"/react-map-gl/docs/whats-new#highlights-5","type":"docs"},{"id":228,"pageTitle":"What's new","sectionTitle":"react-map-gl v3.2","sectionRoute":"/react-map-gl/docs/whats-new#react-map-gl-v32","type":"docs"},{"id":229,"pageTitle":"What's new","sectionTitle":"Highlights","sectionRoute":"/react-map-gl/docs/whats-new#highlights-6","type":"docs"},{"id":230,"pageTitle":"What's new","sectionTitle":"react-map-gl v3.1","sectionRoute":"/react-map-gl/docs/whats-new#react-map-gl-v31","type":"docs"},{"id":231,"pageTitle":"What's new","sectionTitle":"Highlights","sectionRoute":"/react-map-gl/docs/whats-new#highlights-7","type":"docs"},{"id":232,"pageTitle":"What's new","sectionTitle":"react-map-gl v3.0","sectionRoute":"/react-map-gl/docs/whats-new#react-map-gl-v30","type":"docs"},{"id":233,"pageTitle":"What's new","sectionTitle":"Highlights","sectionRoute":"/react-map-gl/docs/whats-new#highlights-8","type":"docs"},{"id":234,"pageTitle":"What's new","sectionTitle":"Components","sectionRoute":"/react-map-gl/docs/whats-new#components","type":"docs"},{"id":235,"pageTitle":"What's new","sectionTitle":"Property Changes","sectionRoute":"/react-map-gl/docs/whats-new#property-changes","type":"docs"},{"id":236,"pageTitle":"What's new","sectionTitle":"Utilities","sectionRoute":"/react-map-gl/docs/whats-new#utilities","type":"docs"},{"id":237,"pageTitle":"What's new","sectionTitle":"react-map-gl v2.0","sectionRoute":"/react-map-gl/docs/whats-new#react-map-gl-v20","type":"docs"},{"id":238,"pageTitle":"What's new","sectionTitle":"Highlights","sectionRoute":"/react-map-gl/docs/whats-new#highlights-9","type":"docs"},{"id":239,"pageTitle":"What's new","sectionTitle":"react-map-gl v1.0","sectionRoute":"/react-map-gl/docs/whats-new#react-map-gl-v10","type":"docs"},{"id":240,"pageTitle":"What's new","sectionTitle":"react-map-gl v0.6","sectionRoute":"/react-map-gl/docs/whats-new#react-map-gl-v06","type":"docs"}],"index":{"version":"2.3.9","fields":["title","content","tags"],"fieldVectors":[["title/1",[0,5.99]],["content/1",[1,2.912,2,2.427,3,2.283,4,1.692,5,1.653,6,1.126,7,0.701,8,2.12,9,2.62,10,0.525,11,2.082,12,2.403,13,3.043,14,3.298,15,2.62,16,3.916,17,3.924,18,1.508,19,1.99,20,2.283,21,3.157,22,2.427,23,1.472,24,2.62,25,3.439,26,2.072,27,2.427,28,3.85,29,2.287,30,1.503,31,1.854,32,2.287,33,3.439,34,2.912,35,5.166,36,1.918,37,1.131,38,1.851,39,1.854,40,2.62,41,2.283,42,1.697,43,2.427,44,2.335,45,2.167,46,2.912,47,1.504,48,1.311,49,2.62,50,3.451,51,2.072,52,1.918,53,2.912,54,2.072,55,2.283,56,2.283,57,1.538,58,1.311,59,2.912,60,2.912,61,2.427,62,0.969,63,1.612,64,1.745,65,2.912,66,2.167,67,1.413,68,1.918,69,2.62,70,2.912,71,2.62,72,2.427,73,2.62,74,1.082,75,1.697,76,1.573,77,2.072,78,2.167,79,1.311,80,2.283,81,2.167,82,1.131,83,1.697,84,2.283,85,2.427,86,1.99,87,1.918]],["tags/1",[]],["title/2",[51,3.27,88,4.597]],["content/2",[6,1.248,7,0.709,8,1.675,10,1.387,11,1.594,18,0.791,21,2.059,23,1.523,30,0.865,37,1.171,39,1.919,44,1.523,50,2.506,51,2.144,63,2.627,66,2.243,74,1.12,76,1.628,89,1.381,90,3.014,91,3.721,92,3.014,93,1.919,94,2.511,95,1.407,96,2.511,97,3.014,98,2.362,99,3.014,100,4.111,101,2.711,102,1.523,103,4.603,104,3.014,105,2.183,106,4.748,107,3.014,108,1.523,109,1.805,110,3.014,111,2.362,112,2.511,113,3.014,114,2.711,115,3.014,116,2.059,117,2.362,118,4.748,119,3.014,120,2.216,121,2.511,122,4.27,123,1.492,124,1.71,125,1.407,126,2.511,127,3.333,128,2.243,129,2.362,130,1.919,131,1.153,132,1.919,133,2.511,134,3.014,135,1.756,136,1.434,137,2.711,138,2.362,139,2.362,140,3.014,141,3.014,142,2.999,143,3.956,144,3.014,145,2.511,146,2.362,147,1.556,148,3.014,149,4.748,150,2.711,151,2.511,152,3.014,153,3.014,154,3.014,155,2.511,156,2.511,157,2.511,158,2.711,159,3.014,160,1.756,161,2.711,162,2.144,163,1.073,164,1.805,165,2.511,166,2.711,167,1.002,168,1.985,169,2.243,170,2.711,171,1.556,172,3.014,173,1.71]],["tags/2",[]],["title/3",[174,4.991]],["content/3",[6,1.106,7,0.617,8,1.485,11,1.078,14,1.959,16,2.699,36,2.968,67,2.187,74,1.675,103,3.532,105,1.675,108,3.246,142,2.028,164,3.847,166,4.053,167,2.489,173,2.557,175,3.532,176,3.755,177,2.869,178,3.079,179,2.699,180,4.053,181,4.507,182,3.755,183,4.507,184,4.507,185,3.631,186,4.053,187,3.864,188,4.507,189,3.309,190,3.962,191,2.231,192,4.507,193,2.278,194,3.755,195,4.507,196,3.206,197,4.507,198,3.532,199,3.532,200,3.755,201,2.494,202,3.354,203,3.354,204,4.053,205,4.507,206,2.968,207,4.507,208,4.507,209,4.053,210,3.206,211,3.532,212,3.532,213,2.968,214,3.532,215,3.755]],["tags/3",[]],["title/28",[216,4.092]],["content/28",[6,1.502,7,0.72,10,0.948,11,1.711,32,2.604,51,3.742,216,5.553,217,2.368,218,2.503,219,1.797,220,2.266,221,1.715,222,2.456,223,3.151,224,2.368,225,1.598,226,1.704,227,1.559,228,3.245,229,2.368,230,2.075,231,1.661,232,2.411,233,1.75,234,2.552,235,1.75,236,2.604,237,2.777,238,2.659,239,4.383,240,1.521,241,3.915,242,4.732,243,4.732]],["tags/28",[]],["title/29",[244,1.155]],["content/29",[]],["tags/29",[]],["title/30",[105,1.708,244,0.886]],["content/30",[131,2.992,245,2.795,246,3.951,247,3.65,248,3.87,249,4.127,250,4.555]],["tags/30",[]],["title/31",[244,1.155]],["content/31",[7,0.482,10,1.052,11,1.397,12,1.968,30,1.064,38,2.339,48,3.855,62,1.942,89,2.676,95,2.726,105,2.17,136,3.649,163,2.079,216,3.988,219,1.995,221,1.621,240,1.688,244,1.126,251,2.778,252,2.339,253,4.864,254,5.251,255,3.845,256,2.376,257,2.454,258,3.452,259,4.329,260,3.401,261,2.676]],["tags/31",[]],["title/32",[18,1.573]],["content/32",[241,6.242,262,4.641]],["tags/32",[]],["title/4",[263,4.458]],["content/4",[6,1.536,7,0.736,10,1.001,11,1.776,32,2.751,217,2.501,218,2.644,219,1.898,220,2.33,221,1.704,222,2.594,223,3.328,224,2.501,225,1.688,226,1.8,227,1.647,228,3.428,229,2.501,230,2.192,231,1.754,232,2.547,233,1.848,234,2.696,235,1.848,236,2.751,237,2.934,238,2.808,263,6.22]],["tags/4",[]],["title/5",[244,1.155]],["content/5",[]],["tags/5",[]],["title/6",[105,1.708,244,0.886]],["content/6",[131,2.992,245,2.795,246,3.951,247,3.65,248,3.87,249,4.127,250,4.555]],["tags/6",[]],["title/7",[244,1.155]],["content/7",[7,0.622,10,1.026,30,1.038,48,3.808,89,2.61,105,2.116,131,2.179,136,4.025,163,2.027,221,1.507,240,2.181,244,1.098,251,2.709,252,2.281,257,2.393,258,3.395,259,3.813,260,3.317,261,2.61,264,5.121,265,2.433,266,2.819,267,4.463,268,4.968,269,6.785,270,4.281,271,5.366]],["tags/7",[]],["title/8",[18,1.573]],["content/8",[262,4.641,272,7.544]],["tags/8",[]],["title/9",[273,3.162]],["content/9",[6,1.536,7,0.736,10,1.001,11,1.776,32,2.751,217,2.501,218,2.644,219,1.898,220,2.33,221,1.704,222,2.594,223,3.328,224,2.501,225,1.688,226,1.8,227,1.647,228,3.428,229,2.501,230,2.192,231,1.754,232,2.547,233,1.848,234,2.696,235,1.848,236,2.751,237,2.934,238,2.808,273,4.412]],["tags/9",[]],["title/10",[244,1.155]],["content/10",[]],["tags/10",[]],["title/11",[105,1.708,244,0.886]],["content/11",[131,2.992,245,2.795,246,3.951,247,3.65,248,3.87,249,4.127,250,4.555]],["tags/11",[]],["title/12",[274,3.162]],["content/12",[7,0.392,76,4.163,108,3.895,123,2.354,125,3.598,142,3.002,160,2.77,189,3.891,221,1.568,227,2.283,257,3.511,273,3.522,275,3.961,276,5.794,277,5.228,278,5.126,279,6.039,280,4.964,281,3.726,282,3.726,283,3.027,284,4.276,285,3.538,286,4.276,287,5.228,288,2.409,289,3.382,290,3.961,291,4.276,292,3.538]],["tags/12",[]],["title/13",[244,1.155]],["content/13",[7,0.47,10,1.026,11,1.362,12,1.919,30,1.038,38,2.281,48,3.808,62,1.894,89,2.61,95,2.658,105,2.116,136,3.589,163,2.027,219,1.945,221,1.605,240,1.646,244,1.098,251,2.709,252,2.281,255,3.75,256,2.317,257,2.393,258,3.395,259,4.276,260,3.317,261,2.61,273,3.006,293,5.121,294,4.463,295,5.121,296,4.744,297,5.121]],["tags/13",[]],["title/14",[185,2.906]],["content/14",[6,1.547,7,0.706,8,1.163,11,1.204,30,0.917,109,3.014,147,2.598,163,1.791,179,3.014,185,2.441,187,2.598,189,2.225,191,2.491,193,2.543,220,2.386,221,1.753,222,2.349,225,1.529,226,1.63,227,1.491,229,2.265,273,4.193,289,3.579,298,2.855,299,3.313,300,5.438,301,1.87,302,3.744,303,2.187,304,4.525,305,5.031,306,4.192,307,3.203,308,4.525,309,4.525,310,4.525]],["tags/14",[]],["title/15",[18,1.573]],["content/15",[262,4.641,279,6.573]],["tags/15",[]],["title/16",[311,2.363]],["content/16",[6,1.47,7,0.733,10,0.791,11,1.509,18,1.656,30,0.8,32,2.174,63,2.43,219,1.501,220,2.247,221,1.764,222,2.944,223,2.631,224,1.977,225,1.334,226,2.043,227,1.302,228,2.71,229,1.977,230,1.733,231,1.386,233,1.461,235,1.461,237,2.319,238,2.22,266,2.174,301,2.343,303,1.909,311,3.18,312,2.43,313,5.672,314,5.672,315,3.95,316,4.942,317,3.95,318,3.95,319,3.95,320,3.269,321,3,322,3.95,323,2.319,324,2.559,325,2.631]],["tags/16",[]],["title/17",[244,1.155]],["content/17",[10,1.507,11,1.599,45,4.975,58,3.009,125,3.121,167,2.782,245,2.031,288,2.414,311,3.3,326,4.402,327,3.378,328,5.239,329,5.715,330,4.755,331,4.402,332,4.004,333,5.239,334,5.239,335,4.975]],["tags/17",[]],["title/18",[244,0.886,336,3.027]],["content/18",[30,1.082,58,2.673,76,3.208,78,4.419,167,2.579,169,4.419,240,1.717,252,2.379,256,2.417,265,3.314,266,3.839,268,3.911,288,2.144,301,2.882,311,3.612,336,3.911,337,4.224,338,4.654,339,4.057,340,4.224,341,3.557,342,3.557,343,4.224,344,4.654,345,3.663,346,4.654,347,4.654,348,4.419,349,2.673]],["tags/18",[]],["title/19",[62,1.992]],["content/19",[7,0.351,10,1.52,11,1.018,18,2.381,30,1.321,44,2.151,58,1.916,80,3.336,139,3.336,145,3.547,167,2.05,173,2.416,206,2.803,217,1.916,244,0.821,245,1.873,252,1.705,257,1.789,261,1.951,265,2.635,266,3.588,288,1.537,301,1.582,311,3.792,327,2.151,340,3.028,341,3.693,349,1.916,350,5.545,351,3.829,352,3.336,353,3.829,354,3.829,355,3.028,356,3.336,357,2.626,358,2.71,359,2.55,360,5.545,361,3.829,362,2.908,363,3.336,364,3.829,365,3.547,366,5.545,367,2.803,368,3.829,369,3.829,370,2.908,371,2.908,372,3.829,373,3.829]],["tags/19",[]],["title/20",[18,1.573]],["content/20",[374,7.636]],["tags/20",[]],["title/74",[7,0.379,240,1.329]],["content/74",[6,1.567,7,0.751,8,1.207,10,0.941,11,1.703,32,2.585,217,2.35,218,2.484,219,1.784,220,2.257,221,1.712,222,2.438,223,3.127,224,2.35,225,1.586,226,1.691,227,1.547,228,3.221,229,2.35,230,2.06,231,1.648,233,1.736,235,1.736,237,2.756,238,2.639,240,1.509,323,2.756,324,3.042,325,3.127,375,3.324,376,4.092,377,4.35,378,4.092,379,3.127,380,4.092]],["tags/74",[]],["title/75",[244,1.155]],["content/75",[7,0.763,10,1.098,11,1.458,12,2.055,14,2.649,38,2.442,47,4.073,62,2.027,75,3.551,77,4.336,167,2.624,200,6.572,201,3.373,219,2.082,221,1.086,240,1.762,381,5.483,382,4.595,383,4.336,384,4.777,385,5.483,386,5.483,387,5.483,388,5.483,389,4.014,390,5.483]],["tags/75",[]],["title/76",[62,1.529,391,3.603]],["content/76",[7,0.701,30,1.382,39,3.655,131,2.903,220,1.6,232,3.476,240,2.193,245,1.744,246,2.902,247,2.68,257,2.413,261,2.631,265,3.242,266,3.755,283,3.655,301,2.133,342,3.439,343,4.084,349,2.584,379,3.439,389,3.781,392,3.655,393,3.345,394,5.164,395,3.781,396,5.741,397,4.084,398,3.655,399,5.645,400,3.922,401,3.177]],["tags/76",[]],["title/77",[62,1.529,245,1.397]],["content/77",[4,1.144,7,0.496,11,1.168,42,1.819,47,1.612,58,2.197,74,1.16,86,2.133,93,1.988,95,2.279,120,2.279,124,1.772,125,2.279,160,1.819,164,1.871,221,1.071,235,1.039,240,1.964,244,1.31,245,2.699,265,2.086,270,1.772,288,1.128,312,1.728,326,4.474,327,3.434,330,2.221,332,1.871,339,2.133,357,1.926,401,1.728,402,6.143,403,3.633,404,2.975,405,5.057,406,3.957,407,2.447,408,2.602,409,3.826,410,1.291,411,2.809,412,2.602,413,4.435,414,4.472,415,2.602,416,6.01,417,3.123,418,4.882,419,3.123,420,3.123,421,3.123,422,3.123,423,4.882,424,3.123,425,3.123,426,3.123,427,3.123,428,3.123,429,3.123,430,3.123,431,2.133,432,1.926,433,2.447,434,3.123,435,2.447,436,3.123,437,2.809,438,3.011,439,3.103,440,2.447,441,2.324,442,2.602,443,2.056,444,2.809,445,2.447,446,2.056,447,2.324,448,2.809,449,5.037]],["tags/77",[]],["title/78",[62,1.529,127,2.608]],["content/78",[4,0.944,7,0.778,10,0.464,30,0.763,57,4.881,62,1.393,67,2.031,74,0.957,100,1.589,142,1.885,167,0.857,202,1.917,230,1.652,231,2.266,233,2.388,235,2.622,240,2.571,248,1.275,271,1.832,285,1.917,294,2.019,410,1.731,432,3.758,445,2.019,450,5.569,451,1.64,452,2.731,453,1.501,454,2.317,455,2.019,456,1.832,457,1.917,458,4.333,459,3.281,460,3.549,461,2.317,462,1.696,463,2.317,464,2.317,465,2.317,466,3.281,467,5.973,468,4.161,469,4.183,470,2.86,471,3.649,472,2.376,473,3.766,474,2.978,475,2.317,476,2.019,477,4.407,478,2.317,479,2.019,480,2.317,481,3.489,482,1.589,483,2.019,484,1.426,485,2.146,486,3.281,487,3.766,488,2.317,489,2.665,490,2.146,491,1.917,492,2.146,493,2.146]],["tags/78",[]],["title/79",[62,1.24,494,2.653,495,2.923]],["content/79",[4,2.488,7,0.218,11,1.83,12,2.684,23,3.866,42,4.64,43,5.155,62,2.649,79,2.785,131,1.012,201,3.424,221,1.569,235,2.058,240,2.378,244,0.825,245,0.804,251,1.259,265,1.13,274,1.396,311,1.043,356,2.073,410,3.293,438,4.913,439,4.802,452,2.209,453,1.541,460,1.541,469,1.541,472,2.427,496,2.379,497,1.968,498,2.379,499,2.204,500,2.204,501,2.723,502,2.379,503,1.968,504,3.322,505,2.379,506,2.073,507,1.968,508,2.645,509,3.183,510,2.379,511,2.379,512,2.073,513,2.204,514,2.645,515,2.379,516,2.645,517,2.204,518,2.204,519,2.645,520,1.882,521,2.379,522,2.073,523,3.847,524,3.926,525,2.379,526,3.847,527,3.352,528,1.584,529,1.807,530,1.807,531,1.807,532,2.379,533,2.379,534,2.379,535,2.073]],["tags/79",[]],["title/80",[274,3.162]],["content/80",[4,0.925,7,0.668,10,0.455,18,0.374,21,0.519,23,2.383,27,0.634,30,0.46,48,0.342,50,0.401,64,0.853,74,0.283,76,0.411,79,2.985,81,3.884,83,0.83,89,0.348,91,0.596,95,1.179,100,0.469,102,1.277,120,0.665,123,1.479,124,3.088,125,1.179,127,2.514,130,1.278,131,2.588,132,2.167,142,1.137,163,0.899,164,1.203,167,0.84,171,1.037,185,1.226,189,3.726,196,1.797,206,0.938,221,1.518,231,0.24,233,0.253,235,1.655,240,0.22,245,0.231,257,0.32,268,0.501,271,0.541,276,0.501,278,4.909,280,0.566,281,0.596,283,0.484,288,1.884,307,1.903,311,2.059,345,0.469,352,2.342,355,1.013,367,0.501,371,0.519,399,4.204,401,0.421,404,0.376,451,1.903,452,3.556,453,0.443,458,0.541,468,1.372,469,1.472,470,1.372,471,1.513,472,1.139,486,0.596,497,1.88,501,0.484,504,1.239,507,1.494,520,3.712,522,1.116,524,4.884,529,3.222,530,0.973,536,0.634,537,2.126,538,0.634,539,0.634,540,0.596,541,0.541,542,0.684,543,2.422,544,3.4,545,0.684,546,0.566,547,0.634,548,0.684,549,0.634,550,1.806,551,0.684,552,3.583,553,0.684,554,0.541,555,0.684,556,2.342,557,0.596,558,0.596,559,0.684,560,0.634,561,3.696,562,2.689,563,3.986,564,3.986,565,3.929,566,2.272,567,3.696,568,2.747,569,3.696,570,0.634,571,0.873,572,0.684,573,0.541,574,1.186,575,0.853,576,0.596,577,1.281,578,1.574,579,0.596,580,0.634,581,1.281,582,0.634,583,0.519,584,0.634,585,0.684,586,0.684,587,0.684,588,0.501,589,0.634,590,0.684,591,0.634,592,0.596,593,0.634,594,0.634,595,1.98,596,0.684,597,0.634,598,0.684,599,0.634,600,0.684,601,0.684,602,0.684,603,0.684,604,4.578,605,2.272,606,0.566,607,2.688,608,2.224,609,0.684,610,2.272,611,2.272,612,1.98,613,2.272,614,1.98,615,0.684,616,0.566,617,0.566,618,0.566,619,0.684,620,0.684,621,0.684,622,0.684,623,0.684,624,0.684,625,0.684,626,0.684,627,0.684,628,0.684,629,0.684,630,0.684,631,0.684,632,1.116,633,0.684,634,0.684,635,0.684,636,0.684,637,0.634,638,0.541,639,0.684,640,0.684,641,1.116,642,1.116,643,1.574,644,1.322,645,0.684,646,0.684,647,0.484,648,0.684]],["tags/80",[]],["title/81",[62,1.992]],["content/81",[4,0.595,6,1.254,7,0.757,8,1.627,10,0.926,11,1.351,12,0.548,14,1.642,21,1.11,22,1.354,29,0.805,30,0.688,32,1.405,33,1.21,37,0.631,38,0.651,42,0.947,44,0.822,47,0.839,48,0.732,50,0.858,54,1.156,55,1.274,56,1.274,57,2.39,58,1.7,62,1.256,64,1.7,67,2.196,74,0.604,82,1.103,95,0.759,98,1.274,102,0.822,105,1.055,108,0.822,129,1.274,164,1.7,167,1.505,173,1.61,179,2.711,189,0.719,191,2.795,201,0.899,210,2.019,213,1.869,218,1.35,219,0.97,220,2.03,221,1.402,222,1.764,225,1.148,226,1.224,227,1.119,229,0.732,230,0.641,239,1.354,240,1.955,245,0.494,251,0.773,252,1.137,256,0.662,258,0.732,265,1.934,302,1.21,307,3.271,312,0.899,331,1.07,337,1.156,341,0.974,357,2.33,358,1.807,363,1.274,376,1.274,382,0.947,410,0.672,433,1.274,438,1.003,439,1.465,443,2.487,450,1.939,452,1.465,455,2.96,460,0.947,489,1.035,524,0.878,527,1.274,540,1.274,541,1.156,554,1.156,571,0.706,573,1.156,575,1.7,649,1.354,650,1.274,651,1.21,652,1.626,653,1.354,654,1.354,655,2.365,656,1.462,657,1.462,658,3.772,659,1.626,660,1.462,661,1.274,662,1.354,663,1.462,664,1.354,665,1.462,666,1.626,667,1.626,668,1.626,669,1.626,670,1.354,671,1.462,672,2.553,673,1.626,674,1.462,675,1.21,676,1.156,677,1.21,678,1.354,679,2.224,680,2.112,681,1.354,682,1.274,683,2.553,684,1.354,685,1.462,686,1.462,687,1.11,688,1.354,689,2.365,690,1.274,691,1.462,692,1.462,693,1.354,694,1.354,695,1.462,696,1.462,697,1.274,698,1.626,699,1.462,700,3.772,701,1.462,702,1.462,703,2.224,704,1.462,705,1.462,706,1.462,707,1.354,708,1.274,709,1.626,710,1.462,711,1.626,712,1.354,713,1.354,714,1.462,715,1.462,716,1.354,717,2.553,718,1.21,719,1.462,720,1.21,721,1.626,722,1.462,723,2.553,724,1.462,725,1.462,726,1.462,727,1.462,728,1.354,729,1.274,730,1.354,731,1.462,732,1.156,733,1.274,734,1.462,735,1.21,736,1.462,737,0.878,738,1.462]],["tags/81",[]],["title/82",[185,2.906]],["content/82",[6,1.53,7,0.686,10,0.658,11,1.316,12,1.855,31,2.324,74,1.356,109,2.187,111,2.861,125,1.704,142,1.643,147,1.885,167,1.83,173,2.071,179,2.187,185,3.214,187,1.885,189,2.433,190,2.252,191,1.807,193,2.781,194,4.585,198,2.861,214,2.861,215,3.041,220,2.055,221,1.786,222,2.569,225,1.109,226,1.182,227,1.631,229,2.477,245,1.109,288,1.318,298,3.123,299,2.404,301,1.356,303,2.392,393,2.127,406,2.404,410,2.276,682,2.861,739,4.313,740,4.217,741,3.65,742,3.283,743,3.283,744,3.041,745,3.283,746,2.597,747,3.283,748,2.324,749,3.041,750,3.283,751,4.95,752,3.283,753,3.283,754,2.404,755,3.283]],["tags/82",[]],["title/83",[18,1.573]],["content/83",[756,6.039]],["tags/83",[]],["title/38",[392,3.813]],["content/38",[4,2.019,6,0.949,7,0.765,10,1.33,84,4.32,102,2.786,120,3.447,124,3.128,130,3.509,171,3.812,190,3.401,217,2.481,220,1.537,221,1.764,222,2.574,225,1.675,227,1.633,229,2.481,362,3.766,392,5.299,393,3.211,644,3.63,729,4.32,757,4.958,758,4.958,759,3.921,760,4.32,761,4.958,762,4.958]],["tags/38",[]],["title/39",[18,1.573]],["content/39",[30,1.529,756,5.966]],["tags/39",[]],["title/21",[763,2.85]],["content/21",[6,1.439,7,0.689,10,1.202,11,1.596,30,0.866,32,2.354,120,2.22,217,2.14,218,2.262,219,1.624,220,2.148,221,1.669,222,2.22,223,2.848,224,2.14,225,1.445,226,1.54,227,1.409,228,2.933,229,2.14,230,1.875,231,2.106,232,3.057,233,1.581,234,2.307,235,1.581,236,2.354,237,2.51,238,2.403,240,1.375,252,2.672,367,3.131,452,2.455,528,2.848,732,4.745,763,4.34,764,3.726,765,3.726,766,4.276,767,4.276]],["tags/21",[]],["title/22",[244,1.155]],["content/22",[]],["tags/22",[]],["title/23",[105,1.708,244,0.886]],["content/23",[7,0.724,11,0.771,12,1.087,57,3.238,67,2.428,68,2.124,82,1.253,131,1.234,178,4.723,191,2.478,201,2.77,219,1.102,221,1.411,231,1.58,233,1.665,240,2.164,245,1.521,246,1.63,247,1.506,248,1.596,249,2.642,257,2.104,258,1.451,261,3.168,349,2.253,400,5.411,403,2.4,410,1.334,432,1.989,438,1.989,439,1.665,443,2.124,460,3.574,462,3.296,467,2.203,471,1.932,472,4.689,474,2.294,476,3.923,479,2.527,482,1.989,484,4.573,504,1.989,528,2.998,531,2.203,708,2.527,763,3.932,768,2.4,769,3.56,770,3.725,771,2.9,772,2.527,773,2.527,774,2.9,775,2.4,776,5.517,777,3.168,778,2.687,779,2.527,780,2.9,781,5.517,782,2.4,783,2.9]],["tags/23",[]],["title/24",[274,3.162]],["content/24",[83,3.43,189,4.036,221,1.626,276,6.01,278,5.317,355,4.188,439,4.441,501,3.748,504,5.306,537,4.188,583,4.022,616,4.382,617,4.382,618,4.382,763,2.802,768,6.401,784,6.74]],["tags/24",[]],["title/25",[244,1.155]],["content/25",[10,1.253,11,1.663,12,2.344,30,1.267,38,2.786,62,2.313,89,3.187,95,3.246,105,2.584,116,4.75,219,2.376,221,1.239,244,1.341,251,3.309,252,2.786,321,4.75,763,3.309,769,4.946,785,6.254]],["tags/25",[]],["title/26",[185,2.906]],["content/26",[6,1.474,7,0.667,8,1.022,11,1.057,30,0.806,109,2.648,147,2.282,179,2.648,185,2.145,187,2.282,189,1.955,191,2.188,193,2.234,220,2.254,221,1.827,222,2.064,225,1.343,226,1.432,227,1.877,229,1.99,231,1.395,298,2.508,299,2.911,302,3.29,303,3.218,323,2.334,441,3.29,588,2.911,739,4.965,763,3.523,777,2.026,786,5.278,787,3.976,788,4.42,789,4.42,790,3.976,791,3.976,792,3.464,793,3.976,794,3.976,795,3.976,796,3.976,797,3.976]],["tags/26",[]],["title/27",[18,1.573]],["content/27",[798,7.636]],["tags/27",[]],["title/33",[799,3.695]],["content/33",[6,1.536,7,0.736,10,1.001,11,1.776,32,2.751,217,2.501,218,2.644,219,1.898,220,2.33,221,1.704,222,2.594,223,3.328,224,2.501,225,1.688,226,1.8,227,1.647,228,3.428,229,2.501,230,2.192,231,1.754,232,2.547,233,1.848,234,2.696,235,1.848,236,2.751,237,2.934,238,2.808,799,5.156]],["tags/33",[]],["title/34",[244,1.155]],["content/34",[]],["tags/34",[]],["title/35",[105,1.708,244,0.886]],["content/35",[131,2.992,245,2.795,246,3.951,247,3.65,248,3.87,249,4.127,250,4.555]],["tags/35",[]],["title/36",[244,1.155]],["content/36",[7,0.478,10,1.043,11,1.385,12,1.951,30,1.055,38,2.319,48,3.839,62,1.925,89,2.653,95,2.703,105,2.151,136,4.058,163,2.061,219,1.978,221,1.615,240,1.674,244,1.116,251,2.755,252,2.319,255,3.812,256,2.356,257,2.433,258,3.433,259,3.855,260,3.373,261,2.653,799,3.571,800,5.207,801,5.207,802,5.207]],["tags/36",[]],["title/37",[18,1.573]],["content/37",[262,4.641,803,5.73]],["tags/37",[]],["title/40",[777,2.745]],["content/40",[5,2.735,6,1.523,7,0.693,10,0.869,11,1.611,32,2.386,217,2.17,218,2.294,219,1.647,220,2.343,221,1.737,222,2.251,223,2.888,224,2.17,225,1.465,226,1.562,227,1.429,228,2.974,229,2.17,230,1.902,231,2.126,232,3.087,233,1.603,234,2.339,235,1.603,236,2.386,237,2.545,238,2.436,303,2.095,764,3.778,765,3.778,777,3.852,804,4.336,805,6.058,806,4.336,807,4.336,808,3.778,809,4.336]],["tags/40",[]],["title/41",[244,1.155]],["content/41",[]],["tags/41",[]],["title/42",[105,1.708,244,0.886]],["content/42",[7,0.295,48,2.944,57,2.86,67,3.173,68,2.354,76,1.931,131,2.503,136,3.112,193,1.807,219,1.221,221,1.668,231,1.128,233,1.189,240,1.566,244,0.689,245,1.646,246,1.807,247,3.053,248,1.77,249,2.86,257,2.277,258,3.284,259,3.688,265,3.118,327,1.807,333,2.802,341,2.141,395,2.354,398,2.276,403,2.66,410,1.478,432,2.205,452,3.377,460,2.083,462,4.307,482,2.205,489,2.276,528,3.245,529,2.442,562,1.931,718,2.66,769,4.652,770,5.835,772,2.802,773,4.245,777,2.997,779,2.802,810,2.276,811,2.802,812,2.442,813,3.215,814,3.215,815,3.215,816,3.215,817,3.215,818,2.205,819,3.215,820,6.563,821,2.802,822,2.802,823,2.802,824,3.215]],["tags/42",[]],["title/43",[274,3.162]],["content/43",[17,4.567,123,3.309,130,4.256,189,3.699,221,1.49,276,5.509,278,4.873,439,3.452,501,4.256,588,4.402,777,3.834,808,5.239,825,6.013,826,6.556,827,7.524,828,5.239]],["tags/43",[]],["title/44",[244,1.155]],["content/44",[10,1.253,11,1.663,12,2.344,30,1.267,38,2.786,62,2.313,89,3.187,95,3.246,105,2.584,219,2.376,221,1.239,244,1.341,251,3.309,252,2.786,777,3.187,828,5.45,829,6.254,830,6.254,831,6.254]],["tags/44",[]],["title/45",[185,2.906]],["content/45",[6,1.551,7,0.708,8,1.171,11,1.212,30,0.924,109,3.036,147,2.617,179,3.036,185,2.459,187,2.617,189,2.241,191,2.509,193,2.561,220,2.394,221,1.73,222,2.366,225,1.54,226,1.642,227,1.502,229,2.281,231,1.6,298,2.876,299,3.337,300,5.465,302,3.772,303,2.203,323,2.676,777,3.936,792,3.972,832,4.558,833,5.068,834,4.558,835,4.558,836,4.558,837,4.558]],["tags/45",[]],["title/46",[18,1.573]],["content/46",[838,7.636]],["tags/46",[]],["title/56",[839,4.458]],["content/56",[6,1.536,7,0.736,10,1.001,11,1.776,32,2.751,217,2.501,218,2.644,219,1.898,220,2.33,221,1.704,222,2.594,223,3.328,224,2.501,225,1.688,226,1.8,227,1.647,228,3.428,229,2.501,230,2.192,231,1.754,232,2.547,233,1.848,234,2.696,235,1.848,236,2.751,237,2.934,238,2.808,839,6.22]],["tags/56",[]],["title/57",[244,1.155]],["content/57",[]],["tags/57",[]],["title/58",[105,1.708,244,0.886]],["content/58",[116,4.397,131,2.463,163,2.292,221,1.455,232,2.95,240,2.361,245,2.482,246,3.253,247,3.005,248,3.186,249,3.398,250,3.749,265,2.75,482,3.97,489,4.097,822,5.044,823,5.044,840,5.789,841,6.401,842,5.789,843,7.346,844,5.789]],["tags/58",[]],["title/59",[244,1.155]],["content/59",[7,0.536,10,1.171,30,1.184,48,4.056,89,2.977,105,2.414,136,4.288,163,2.313,221,1.606,240,1.878,244,1.253,251,3.091,252,2.603,257,2.731,258,3.698,259,4.152,260,3.785,261,2.977]],["tags/59",[]],["title/60",[18,1.573]],["content/60",[116,5.73,262,4.641]],["tags/60",[]],["title/47",[18,1.573]],["content/47",[6,1.375,7,0.692,8,0.862,10,1.008,11,0.892,18,1.957,30,0.68,50,1.969,63,2.063,79,2.517,131,1.427,220,2.226,221,1.782,222,2.611,223,2.234,224,1.678,225,1.133,226,1.811,227,1.105,230,1.471,231,1.177,233,1.24,235,1.24,237,1.969,238,1.885,266,1.846,301,3.116,303,2.43,311,2.647,312,2.063,320,2.775,321,2.547,323,2.952,324,3.258,325,2.234,562,3.021,662,3.107,812,2.547,845,2.923,846,4.659,847,5.258,848,3.56,849,2.923,850,4.659,851,4.772,852,2.923,853,3.107,854,3.107,855,3.107,856,2.923,857,3.107]],["tags/47",[]],["title/48",[244,1.155]],["content/48",[10,1.25,11,1.204,18,2.438,30,0.917,58,3.123,76,2.718,78,3.744,125,2.349,167,2.847,169,3.744,240,1.455,252,2.016,256,2.048,265,2.965,266,3.435,268,3.313,288,2.505,301,2.578,326,3.313,327,2.543,328,3.943,331,3.313,332,3.014,334,3.943,335,3.744,336,3.313,337,3.579,338,3.943,339,3.437,340,3.579,341,3.014,342,3.014,343,3.579,344,3.943,345,3.104,346,3.943,347,3.943,348,3.744,349,2.265,447,3.744,858,4.525,859,4.525,860,4.525]],["tags/48",[]],["title/49",[18,1.573]],["content/49",[861,7.636]],["tags/49",[]],["title/50",[301,2.226]],["content/50",[6,1.346,7,0.645,19,5.341,30,1.425,220,2.179,222,3.65,256,3.182,301,2.905]],["tags/50",[]],["title/51",[10,1.079]],["content/51",[4,2.599,7,0.716,10,1.279,75,4.134,163,2.527,191,3.513,298,4.027,311,2.799,740,4.518,862,5.561,863,4.803,864,6.46,865,6.383,866,4.673]],["tags/51",[]],["title/52",[245,1.82]],["content/52",[4,0.9,11,2.212,18,1.947,25,1.829,245,2.904,292,1.829,301,0.913,311,3.254,316,3.157,326,4.304,327,4.831,332,5.538,402,2.047,405,1.829,409,7.246,410,3.979,413,1.394,449,1.679,578,1.926,676,1.748,677,3.81,848,1.564,851,1.748,858,2.21,867,2.047,868,2.21,869,2.047,870,2.047,871,2.047,872,2.21,873,8.227,874,2.21,875,2.21,876,2.21,877,2.21,878,2.21,879,2.21,880,2.21,881,2.21,882,2.21,883,2.047,884,2.21,885,2.21,886,2.047,887,2.457,888,1.926,889,2.21,890,2.21,891,2.21,892,2.21,893,2.21,894,2.21,895,2.21,896,2.047,897,2.047]],["tags/52",[]],["title/53",[431,4.092]],["content/53",[48,4.056,57,4.999,124,3.686,136,4.288,256,2.644,258,4.056,259,4.554,410,2.686,466,5.091,482,5.842,568,3.785,898,5.091]],["tags/53",[]],["title/54",[50,2.427,301,1.708]],["content/54",[7,0.673,11,2.144,14,1.959,18,1.183,57,4.552,79,2.028,131,1.725,142,2.028,221,1.144,231,2.027,233,2.136,235,2.136,256,2.614,265,3.198,311,2.534,327,2.278,345,2.78,410,3.815,432,3.962,459,5.034,462,4.23,468,3.079,469,3.742,470,3.079,471,3.847,472,2.557,474,4.569,562,3.47,568,3.742,848,2.869,899,5.034,900,5.777,901,5.034,902,3.532,903,4.053,904,2.968]],["tags/54",[]],["title/55",[524,3.236]],["content/55",[4,1.325,7,0.65,18,0.95,30,0.393,47,1.114,57,1.139,64,1.293,79,1.628,82,0.838,123,1.791,127,1.225,142,0.971,190,1.331,210,1.535,221,1.36,245,0.656,256,3.557,265,3.833,273,2.466,277,1.691,278,2.721,282,1.691,283,3.479,287,1.691,288,0.779,301,3.333,327,1.091,358,1.374,401,1.194,410,3.614,438,3.372,451,1.374,494,1.535,524,2.523,528,2.797,537,1.535,552,1.421,558,1.691,561,1.691,562,3.559,568,5.092,575,1.293,592,1.691,595,1.691,604,1.691,632,1.691,641,1.691,642,1.691,643,1.691,687,1.474,732,1.535,737,1.166,763,2.222,777,0.989,784,1.691,812,1.474,826,1.691,866,1.421,899,5.753,901,1.691,902,2.835,904,2.382,905,7.97,906,5.475,907,3.254,908,4.201,909,4.201,910,1.941,911,1.941,912,1.941,913,3.254,914,1.941,915,1.941,916,1.941,917,1.941,918,3.254,919,1.941,920,1.941,921,1.941,922,1.941,923,1.941,924,1.941,925,1.941,926,1.691,927,1.941,928,1.691,929,1.798,930,1.941,931,1.941]],["tags/55",[]],["title/61",[932,4.458]],["content/61",[4,1.662,5,2.574,6,1.111,7,0.713,8,1.491,30,0.827,63,2.51,74,1.686,82,1.762,128,3.376,147,2.342,162,3.227,163,2.298,220,1.799,221,1.789,222,2.118,225,1.961,226,1.469,227,1.912,230,1.789,231,1.432,233,1.509,235,1.509,238,2.293,257,1.907,258,2.042,270,2.574,323,2.395,324,2.643,325,2.717,439,3.332,460,2.643,662,3.78,863,2.51,932,5.59,933,4.08,934,4.08,935,4.08,936,4.08,937,4.08,938,4.08,939,4.536,940,4.08,941,4.08,942,4.08,943,4.08,944,4.08]],["tags/61",[]],["title/62",[945,4.695]],["content/62",[7,0.77,48,2.205,62,2.265,63,2.711,136,2.331,147,1.62,163,2.631,168,2.066,189,2.665,191,2.984,221,1.774,227,0.93,257,3.105,258,2.205,259,2.476,261,1.438,278,4.304,302,6.473,359,1.879,384,2.459,404,2.425,410,1.297,415,2.614,557,4.724,651,6.473,680,2.335,740,5.537,818,1.935,862,6.817,898,4.724,946,5.421,947,5.421,948,6.645,949,5.421,950,4.406,951,2.822]],["tags/62",[]],["title/63",[18,1.573]],["content/63",[30,1.529,262,4.641]],["tags/63",[]],["title/96",[393,3.49]],["content/96",[4,1.119,5,1.733,6,0.826,7,0.765,10,0.55,30,1.08,52,2.011,74,1.135,120,3.134,126,2.544,130,3.054,131,1.169,147,3.059,157,2.544,220,1.337,221,1.854,222,2.239,225,2.039,227,1.989,270,1.733,303,2.917,312,1.69,323,2.532,324,2.795,358,1.944,362,4.047,389,3.901,392,5.155,393,4.718,401,3.714,583,3.277,588,3.159,760,4.643,810,1.944,845,2.393,952,3.997,953,3.997,954,2.747,955,5.328,956,2.747,957,4.314,958,2.747,959,2.747,960,2.747,961,2.747,962,2.747,963,2.747,964,2.747,965,2.747]],["tags/96",[]],["title/97",[945,4.695]],["content/97",[7,0.712,10,1.07,30,1.082,76,3.208,131,3.305,147,4.004,164,3.557,201,3.286,227,2.298,252,2.379,265,2.538,266,3.839,345,3.663,371,4.057,389,3.911,392,3.78,393,3.46,401,4.292,410,3.207,568,3.46,569,4.654,740,5.498,811,4.654,966,5.341,967,5.939]],["tags/97",[]],["title/98",[18,1.573]],["content/98",[30,1.529,756,5.966]],["tags/98",[]],["title/69",[216,4.092]],["content/69",[6,1.521,7,0.729,10,0.978,12,2.462,37,2.108,51,3.86,216,5.642,217,2.442,218,2.582,219,1.854,220,2.302,221,1.729,224,2.442,225,1.649,226,1.758,227,1.608,230,2.14,231,1.713,232,2.487,233,1.805,234,2.633,235,1.805,236,2.686,239,4.521,240,1.569,241,4.038,242,4.88,243,4.88,968,3.079,969,3.161]],["tags/69",[]],["title/70",[244,1.155]],["content/70",[]],["tags/70",[]],["title/71",[105,1.708,244,0.886]],["content/71",[131,2.992,245,2.795,246,3.951,247,3.65,248,3.87,249,4.127,250,4.555]],["tags/71",[]],["title/72",[244,1.155]],["content/72",[7,0.494,10,1.079,30,1.092,38,2.4,48,3.903,62,1.992,89,2.745,95,2.796,105,2.226,136,3.711,163,2.133,216,4.092,219,2.046,221,1.545,240,1.732,244,1.155,251,2.85,252,2.4,253,4.991,254,5.388,255,3.944,256,2.438,257,2.518,258,3.51,259,4.383,260,3.49,261,2.745]],["tags/72",[]],["title/73",[18,1.573]],["content/73",[241,6.242,262,4.641]],["tags/73",[]],["title/64",[263,4.458]],["content/64",[6,1.556,7,0.746,10,1.035,12,2.557,37,2.23,217,2.584,218,2.732,219,1.961,220,2.368,221,1.72,224,2.584,225,1.744,226,1.86,227,1.701,230,2.265,231,1.812,232,2.631,233,1.909,234,2.786,235,1.909,236,2.842,263,6.322,968,3.258,969,3.345]],["tags/64",[]],["title/65",[244,1.155]],["content/65",[]],["tags/65",[]],["title/66",[105,1.708,244,0.886]],["content/66",[131,2.992,245,2.795,246,3.951,247,3.65,248,3.87,249,4.127,250,4.555]],["tags/66",[]],["title/67",[244,1.155]],["content/67",[7,0.622,10,1.026,30,1.038,48,3.808,89,2.61,105,2.116,131,2.179,136,4.025,163,2.027,221,1.507,240,2.181,244,1.098,251,2.709,252,2.281,257,2.393,258,3.395,259,3.813,260,3.317,261,2.61,264,5.121,265,2.433,266,2.819,267,4.463,268,4.968,269,6.785,270,4.281,271,5.366]],["tags/67",[]],["title/68",[18,1.573]],["content/68",[262,4.641,272,7.544]],["tags/68",[]],["title/84",[273,3.162]],["content/84",[6,1.556,7,0.746,10,1.035,12,2.557,37,2.23,217,2.584,218,2.732,219,1.961,220,2.368,221,1.72,224,2.584,225,1.744,226,1.86,227,1.701,230,2.265,231,1.812,232,2.631,233,1.909,234,2.786,235,1.909,236,2.842,273,4.485,968,3.258,969,3.345]],["tags/84",[]],["title/85",[244,1.155]],["content/85",[]],["tags/85",[]],["title/86",[105,1.708,244,0.886]],["content/86",[131,2.992,245,2.795,246,3.951,247,3.65,248,3.87,249,4.127,250,4.555]],["tags/86",[]],["title/87",[274,3.162]],["content/87",[7,0.392,76,4.163,108,3.895,123,2.354,125,3.598,142,3.002,160,2.77,189,3.891,221,1.568,227,2.283,257,3.511,273,3.522,275,3.961,276,5.794,277,5.228,278,5.126,279,6.039,280,4.964,281,3.726,282,3.726,283,3.027,284,4.276,285,3.538,286,4.276,287,5.228,288,2.409,289,3.382,290,3.961,291,4.276,292,3.538]],["tags/87",[]],["title/88",[244,1.155]],["content/88",[7,0.482,10,1.052,30,1.064,38,2.339,48,3.855,62,1.942,89,2.676,95,2.726,105,2.17,136,3.649,163,2.079,219,1.995,221,1.526,240,1.688,244,1.126,251,2.778,252,2.339,255,3.845,256,2.376,257,2.454,258,3.452,259,4.329,260,3.401,261,2.676,273,3.082,293,5.251,294,4.576,295,5.251,296,4.864,297,5.251]],["tags/88",[]],["title/89",[185,2.906]],["content/89",[6,1.547,7,0.706,8,1.163,12,1.696,30,0.917,37,1.955,109,3.014,147,2.598,163,1.791,179,3.014,185,2.441,187,2.598,189,2.225,191,2.491,193,2.543,220,2.386,221,1.753,225,1.529,226,1.63,227,1.491,229,2.265,273,4.193,289,3.579,298,2.855,299,3.313,300,5.438,301,1.87,303,2.187,304,4.525,306,4.192,307,3.203,308,4.525,309,4.525,310,4.525,970,3.579,971,5.031]],["tags/89",[]],["title/90",[18,1.573]],["content/90",[262,4.641,279,6.573]],["tags/90",[]],["title/91",[311,2.363]],["content/91",[6,1.485,7,0.74,10,0.812,12,1.519,18,1.687,25,3.354,30,0.821,37,2.495,63,2.494,219,1.54,220,2.274,221,1.772,224,2.028,225,1.369,226,2.081,227,1.335,230,1.778,231,1.422,233,1.499,235,1.499,266,2.231,301,2.387,303,1.959,311,3.218,312,2.494,313,5.777,314,5.777,315,4.053,316,5.034,317,4.053,318,4.053,319,4.053,320,3.354,321,3.079,322,4.053,323,2.379,324,2.625,325,2.699,968,2.557,969,2.625]],["tags/91",[]],["title/92",[244,1.155]],["content/92",[10,1.507,12,2.253,45,4.975,58,3.009,125,3.121,167,2.782,245,2.031,288,2.414,311,3.3,326,4.402,327,3.378,328,5.239,329,5.715,330,4.755,331,4.402,332,4.004,333,5.239,334,5.239,335,4.975]],["tags/92",[]],["title/93",[244,0.886,336,3.027]],["content/93",[30,1.082,58,2.673,76,3.208,78,4.419,167,2.579,169,4.419,240,1.717,252,2.379,256,2.417,265,3.314,266,3.839,268,3.911,288,2.144,301,2.882,311,3.612,336,3.911,337,4.224,338,4.654,339,4.057,340,4.224,341,3.557,342,3.557,343,4.224,344,4.654,345,3.663,346,4.654,347,4.654,348,4.419,349,2.673]],["tags/93",[]],["title/94",[62,1.992]],["content/94",[7,0.351,10,1.52,11,1.018,18,2.381,30,1.321,44,2.151,58,1.916,80,3.336,139,3.336,145,3.547,167,2.05,173,2.416,206,2.803,217,1.916,244,0.821,245,1.873,252,1.705,257,1.789,261,1.951,265,2.635,266,3.588,288,1.537,301,1.582,311,3.792,327,2.151,340,3.028,341,3.693,349,1.916,350,5.545,351,3.829,352,3.336,353,3.829,354,3.829,355,3.028,356,3.336,357,2.626,358,2.71,359,2.55,360,5.545,361,3.829,362,2.908,363,3.336,364,3.829,365,3.547,366,5.545,367,2.803,368,3.829,369,3.829,370,2.908,371,2.908,372,3.829,373,3.829]],["tags/94",[]],["title/95",[18,1.573]],["content/95",[374,7.636]],["tags/95",[]],["title/111",[972,4.991]],["content/111",[6,1.556,7,0.746,10,1.035,12,2.557,37,2.23,217,2.584,218,2.732,219,1.961,220,2.368,221,1.72,224,2.584,225,1.744,226,1.86,227,1.701,230,2.265,231,1.812,232,2.631,233,1.909,234,2.786,235,1.909,236,2.842,968,3.258,969,3.345,972,7.078]],["tags/111",[]],["title/112",[244,1.155]],["content/112",[]],["tags/112",[]],["title/113",[105,1.708,244,0.886]],["content/113",[131,2.992,245,2.795,246,3.951,247,3.65,248,3.87,249,4.127,250,4.555]],["tags/113",[]],["title/114",[244,1.155]],["content/114",[7,0.498,10,1.089,30,1.101,38,2.421,48,3.92,62,2.01,89,2.769,95,2.821,105,2.245,136,4.144,163,2.151,219,2.064,221,1.552,240,1.747,244,1.165,251,2.875,252,2.421,253,5.034,255,3.979,256,2.459,257,2.54,258,3.53,259,3.964,260,3.52,261,2.769,972,5.034]],["tags/114",[]],["title/115",[18,1.573]],["content/115",[262,4.641,973,8.387]],["tags/115",[]],["title/101",[7,0.379,240,1.329]],["content/101",[6,1.588,7,0.761,10,0.978,12,2.462,37,2.838,217,2.442,218,2.582,219,1.854,220,2.302,221,1.729,224,2.442,225,1.649,226,1.758,227,1.608,230,2.14,231,1.713,233,1.805,235,1.805,240,1.569,323,2.864,324,3.161,325,3.25,375,3.454,377,4.521,378,4.252,379,3.25,380,4.252,968,3.079,969,3.161]],["tags/101",[]],["title/102",[244,1.155]],["content/102",[7,0.771,10,1.128,14,2.721,38,2.508,47,4.144,62,2.669,75,3.648,77,4.454,167,2.669,200,6.687,201,3.465,219,2.139,240,1.81,381,5.631,382,4.675,383,4.454,385,5.631,386,5.631,387,5.631,388,5.631,389,4.123,390,5.631]],["tags/102",[]],["title/103",[62,1.529,391,3.603]],["content/103",[7,0.686,131,3.182,232,3.811,240,2.404,245,2.012,246,3.346,247,3.091,257,2.783,261,3.034,265,3.553,266,4.116,301,2.46,379,3.966,398,4.215,399,6.188,400,4.523,401,3.664]],["tags/103",[]],["title/104",[62,1.529,245,1.397]],["content/104",[4,1.396,7,0.469,12,1.916,42,2.22,47,1.968,58,1.715,93,2.426,95,1.779,120,2.654,124,2.163,125,2.654,160,2.22,164,2.283,221,1.211,235,1.268,240,2.178,244,1.311,245,2.845,265,2.429,270,2.163,288,1.376,326,4.962,327,4.073,330,2.711,339,2.604,357,2.351,401,2.109,404,2.814,405,5.608,406,4.476,407,2.987,408,3.176,409,4.455,410,1.576,411,3.428,412,3.176,413,4.276,414,2.836,437,3.428,438,3.506,439,3.51,440,2.987,441,2.836,442,3.176,443,2.51,444,3.428,445,2.987,446,2.51,447,2.836,448,3.428,449,5.148,460,2.22,888,5.905,974,3.811]],["tags/104",[]],["title/105",[62,1.529,127,2.608]],["content/105",[4,0.944,7,0.778,10,0.464,30,0.763,57,4.881,62,1.393,67,2.031,74,0.957,100,1.589,142,1.885,167,0.857,202,1.917,230,1.652,231,2.266,233,2.388,235,2.622,240,2.571,248,1.275,271,1.832,285,1.917,294,2.019,410,1.731,432,3.758,445,2.019,450,5.569,451,1.64,452,2.731,453,1.501,454,2.317,455,2.019,456,1.832,457,1.917,458,4.333,459,3.281,460,3.549,461,2.317,462,1.696,463,2.317,464,2.317,465,2.317,466,3.281,467,5.973,468,4.161,469,4.183,470,2.86,471,3.649,472,2.376,473,3.766,474,2.978,475,2.317,476,2.019,477,4.407,478,2.317,479,2.019,480,2.317,481,3.489,482,1.589,483,2.019,484,1.426,485,2.146,486,3.281,487,3.766,488,2.317,489,2.665,490,2.146,491,1.917,492,2.146,493,2.146]],["tags/105",[]],["title/106",[62,1.24,494,2.653,495,2.923]],["content/106",[4,2.606,7,0.239,23,4.012,42,4.799,43,5.434,62,2.74,79,2.936,131,1.11,201,3.609,221,1.162,235,2.169,240,2.453,244,0.888,245,0.881,251,1.38,265,1.239,274,1.531,311,1.144,356,2.273,410,3.406,438,5.081,439,4.897,452,2.378,453,1.69,460,1.69,469,1.69,472,2.613,496,2.609,497,2.158,498,2.609,499,2.416,500,2.416,501,2.932,502,2.609,503,2.158,504,3.533,505,2.609,506,2.273,507,2.158,509,3.427,510,2.609,511,2.609,512,2.273,513,2.416,515,2.609,517,2.416,518,2.416,520,2.063,521,2.609,522,2.273,523,4.142,524,4.091,525,2.609,526,4.142,527,3.609,528,1.737,529,1.981,530,1.981,531,1.981,532,2.609,533,2.609,534,2.609,535,2.273,975,2.9,976,2.9,977,2.9,978,2.9]],["tags/106",[]],["title/107",[274,3.162]],["content/107",[4,0.925,7,0.668,10,0.455,18,0.374,21,0.519,23,2.383,27,0.634,30,0.46,48,0.342,50,0.401,64,0.853,74,0.283,76,0.411,79,2.985,81,3.884,83,0.83,89,0.348,91,0.596,95,1.179,100,0.469,102,1.277,120,0.665,123,1.479,124,3.088,125,1.179,127,2.514,130,1.278,131,2.588,132,2.167,142,1.137,163,0.899,164,1.203,167,0.84,171,1.037,185,1.226,189,3.726,196,1.797,206,0.938,221,1.518,231,0.24,233,0.253,235,1.655,240,0.22,245,0.231,257,0.32,268,0.501,271,0.541,276,0.501,278,4.909,280,0.566,281,0.596,283,0.484,288,1.884,307,1.903,311,2.059,345,0.469,352,2.342,355,1.013,367,0.501,371,0.519,399,4.204,401,0.421,404,0.376,451,1.903,452,3.556,453,0.443,458,0.541,468,1.372,469,1.472,470,1.372,471,1.513,472,1.139,486,0.596,497,1.88,501,0.484,504,1.239,507,1.494,520,3.712,522,1.116,524,4.884,529,3.222,530,0.973,536,0.634,537,2.126,538,0.634,539,0.634,540,0.596,541,0.541,542,0.684,543,2.422,544,3.4,545,0.684,546,0.566,547,0.634,548,0.684,549,0.634,550,1.806,551,0.684,552,3.583,553,0.684,554,0.541,555,0.684,556,2.342,557,0.596,558,0.596,559,0.684,560,0.634,561,3.696,562,2.689,563,3.986,564,3.986,565,3.929,566,2.272,567,3.696,568,2.747,569,3.696,570,0.634,571,0.873,572,0.684,573,0.541,574,1.186,575,0.853,576,0.596,577,1.281,578,1.574,579,0.596,580,0.634,581,1.281,582,0.634,583,0.519,584,0.634,585,0.684,586,0.684,587,0.684,588,0.501,589,0.634,590,0.684,591,0.634,592,0.596,593,0.634,594,0.634,595,1.98,596,0.684,597,0.634,598,0.684,599,0.634,600,0.684,601,0.684,602,0.684,603,0.684,604,4.578,605,2.272,606,0.566,607,2.688,608,2.224,609,0.684,610,2.272,611,2.272,612,1.98,613,2.272,614,1.98,615,0.684,616,0.566,617,0.566,618,0.566,619,0.684,620,0.684,621,0.684,622,0.684,623,0.684,624,0.684,625,0.684,626,0.684,627,0.684,628,0.684,629,0.684,630,0.684,631,0.684,632,1.116,633,0.684,634,0.684,635,0.684,636,0.684,637,0.634,638,0.541,639,0.684,640,0.684,641,1.116,642,1.116,643,1.574,644,1.322,645,0.684,646,0.684,647,0.484,648,0.684]],["tags/107",[]],["title/108",[62,1.992]],["content/108",[6,1.24,7,0.774,8,1.295,10,1.01,11,0.448,12,1.418,14,1.394,16,1.121,21,1.279,22,1.56,29,0.927,30,0.767,33,1.393,37,1.634,38,0.75,42,1.091,44,0.946,47,0.967,48,0.843,50,0.988,57,2.631,58,1.443,62,1.399,64,1.121,67,1.556,74,0.696,82,1.246,89,0.858,98,1.467,102,0.946,105,1.192,129,1.467,164,1.121,167,1.399,173,1.819,179,2.985,191,3.026,193,0.946,201,1.036,210,1.331,213,2.77,218,0.891,219,0.64,220,2.007,221,1.44,225,1.278,226,1.363,227,1.246,230,0.738,240,1.889,251,0.891,252,1.285,256,0.762,258,0.843,265,1.798,307,3.568,312,1.036,331,1.233,337,1.331,341,1.121,357,2.595,358,2.041,363,1.467,376,1.467,382,1.091,410,0.774,433,1.467,438,1.978,439,2.172,443,1.233,450,2.191,452,1.656,455,3.297,489,1.192,527,1.467,540,1.467,541,1.331,571,0.814,573,1.331,575,1.921,649,1.56,650,1.467,651,1.393,653,1.56,654,1.56,655,1.56,656,1.684,657,1.684,658,4.152,660,1.684,661,1.467,663,1.684,664,1.56,665,2.884,672,1.684,674,1.684,675,1.393,676,1.331,677,1.393,678,1.56,679,2.513,680,2.386,681,1.56,682,1.467,683,2.884,684,1.56,685,1.684,686,1.684,687,1.279,688,1.56,689,2.672,690,1.467,691,1.684,692,1.684,693,1.56,694,1.56,695,1.684,696,1.684,697,1.467,700,2.672,703,3.297,704,2.884,705,2.884,706,1.684,707,1.56,710,1.684,717,1.684,723,1.684,724,1.684,725,1.684,726,1.684,727,1.684,728,1.56,729,1.467,730,1.56,731,1.684,732,1.331,733,1.467,734,1.684,735,1.393,736,1.684,737,1.011,738,1.684,970,1.331,979,1.684,980,1.872,981,1.872,982,1.872,983,1.872,984,1.872,985,1.872,986,1.872,987,1.684,988,1.467,989,1.872,990,1.684]],["tags/108",[]],["title/109",[185,2.906]],["content/109",[6,1.545,7,0.695,10,0.679,31,2.4,37,2.19,74,1.401,109,2.258,111,2.954,125,1.76,142,1.697,147,1.946,167,1.875,173,2.139,179,2.258,185,3.276,187,1.946,189,2.493,190,2.326,191,1.866,193,2.849,194,4.697,198,2.954,214,2.954,215,3.141,220,2.089,221,1.773,225,1.145,226,1.221,227,1.671,229,2.537,245,1.145,288,1.361,298,3.199,299,2.482,301,1.401,303,2.45,393,2.196,406,2.482,410,2.331,682,2.954,739,4.418,740,4.299,742,3.391,743,3.391,744,3.141,745,3.391,746,2.681,747,3.391,748,2.4,749,3.141,750,3.391,751,5.071,752,3.391,753,3.391,754,2.482,755,3.391,991,3.391]],["tags/109",[]],["title/110",[18,1.573]],["content/110",[756,6.039]],["tags/110",[]],["title/99",[392,3.813]],["content/99",[4,2.019,6,0.949,7,0.765,10,1.33,37,2.142,84,4.32,102,2.786,120,3.447,124,3.128,130,3.509,171,3.812,190,3.401,217,2.481,220,1.537,221,1.764,225,1.675,227,1.633,229,2.481,362,3.766,392,5.299,393,3.211,644,3.63,729,4.32,757,4.958,758,4.958,759,3.921,760,4.32,761,4.958,762,4.958]],["tags/99",[]],["title/100",[18,1.573]],["content/100",[30,1.529,756,5.966]],["tags/100",[]],["title/141",[763,2.85]],["content/141",[6,1.456,7,0.698,10,1.226,12,2.293,30,0.891,37,1.899,120,2.282,217,2.2,218,2.326,219,1.67,220,2.18,221,1.682,224,2.2,225,1.485,226,1.584,227,1.449,230,1.928,231,2.147,232,3.117,233,1.626,234,2.372,235,1.626,236,2.42,240,1.413,252,2.725,367,3.219,452,2.524,528,2.928,732,4.838,763,4.379,764,3.832,765,3.832,766,4.397,767,4.397,968,2.774,969,2.848]],["tags/141",[]],["title/142",[244,1.155]],["content/142",[]],["tags/142",[]],["title/143",[105,1.708,244,0.886]],["content/143",[7,0.727,57,3.267,67,2.455,68,2.154,82,1.271,131,1.252,178,4.759,191,2.505,201,2.8,219,1.117,221,1.342,231,1.597,233,1.683,240,2.178,245,1.537,246,1.653,247,1.527,248,1.619,249,2.671,257,2.127,258,1.472,261,3.192,349,2.277,400,5.442,403,2.434,410,1.352,432,2.018,438,2.018,439,1.689,443,2.154,460,3.605,462,3.332,467,2.234,471,1.959,472,4.713,474,2.326,476,3.966,479,2.563,482,2.018,484,4.597,504,2.018,528,3.031,531,2.234,708,2.563,763,3.952,768,2.434,769,3.599,770,3.766,771,2.942,772,2.563,773,2.563,774,2.942,775,2.434,776,5.567,777,3.192,778,2.725,779,2.563,780,2.942,781,5.567,782,2.434,783,2.942]],["tags/143",[]],["title/144",[274,3.162]],["content/144",[83,3.43,189,4.036,221,1.626,276,6.01,278,5.317,355,4.188,439,4.441,501,3.748,504,5.306,537,4.188,583,4.022,616,4.382,617,4.382,618,4.382,763,2.802,768,6.401,784,6.74]],["tags/144",[]],["title/145",[244,1.155]],["content/145",[10,1.292,30,1.307,38,2.872,62,2.385,89,3.286,95,3.347,105,2.664,116,4.898,219,2.45,244,1.383,251,3.411,252,2.872,321,4.898,763,3.411,769,5.1,785,6.449]],["tags/145",[]],["title/146",[185,2.906]],["content/146",[6,1.474,7,0.667,8,1.022,12,1.49,30,0.806,37,1.717,109,2.648,147,2.282,179,2.648,185,2.145,187,2.282,189,1.955,191,2.188,193,2.234,220,2.254,221,1.827,225,1.343,226,1.432,227,1.877,229,1.99,231,1.395,298,2.508,299,2.911,303,3.218,323,2.334,441,3.29,588,2.911,739,4.965,763,3.523,777,2.026,786,5.278,787,3.976,790,3.976,791,3.976,792,3.464,793,3.976,794,3.976,795,3.976,796,3.976,797,3.976,970,3.144,992,4.42,993,4.42]],["tags/146",[]],["title/147",[18,1.573]],["content/147",[798,7.636]],["tags/147",[]],["title/116",[799,3.695]],["content/116",[6,1.556,7,0.746,10,1.035,12,2.557,37,2.23,217,2.584,218,2.732,219,1.961,220,2.368,221,1.72,224,2.584,225,1.744,226,1.86,227,1.701,230,2.265,231,1.812,232,2.631,233,1.909,234,2.786,235,1.909,236,2.842,799,5.24,968,3.258,969,3.345]],["tags/116",[]],["title/117",[244,1.155]],["content/117",[]],["tags/117",[]],["title/118",[105,1.708,244,0.886]],["content/118",[131,2.992,245,2.795,246,3.951,247,3.65,248,3.87,249,4.127,250,4.555]],["tags/118",[]],["title/119",[244,1.155]],["content/119",[7,0.49,10,1.07,30,1.082,38,2.379,48,3.887,62,1.975,89,2.722,95,2.772,105,2.207,136,4.109,163,2.114,219,2.029,221,1.539,240,1.717,244,1.145,251,2.826,252,2.379,255,3.911,256,2.417,257,2.496,258,3.491,259,3.92,260,3.46,261,2.722,799,3.663,800,5.341,801,5.341,802,5.341]],["tags/119",[]],["title/120",[18,1.573]],["content/120",[262,4.641,803,5.73]],["tags/120",[]],["title/121",[777,2.745]],["content/121",[5,2.814,6,1.539,7,0.702,10,0.894,12,2.315,37,1.927,217,2.232,218,2.36,219,1.694,220,2.372,221,1.748,224,2.232,225,1.507,226,1.606,227,1.469,230,1.956,231,2.168,232,3.148,233,1.649,234,2.406,235,1.649,236,2.455,303,2.155,764,3.887,765,3.887,777,3.899,804,4.46,805,6.179,806,4.46,807,4.46,808,3.887,809,4.46,968,2.814,969,2.889]],["tags/121",[]],["title/122",[244,1.155]],["content/122",[]],["tags/122",[]],["title/123",[105,1.708,244,0.886]],["content/123",[7,0.295,48,2.944,57,2.86,67,3.173,68,2.354,76,1.931,131,2.503,136,3.112,193,1.807,219,1.221,221,1.668,231,1.128,233,1.189,240,1.566,244,0.689,245,1.646,246,1.807,247,3.053,248,1.77,249,2.86,257,2.277,258,3.284,259,3.688,265,3.118,327,1.807,333,2.802,341,2.141,395,2.354,398,2.276,403,2.66,410,1.478,432,2.205,452,3.377,460,2.083,462,4.307,482,2.205,489,2.276,528,3.245,529,2.442,562,1.931,718,2.66,769,4.652,770,5.835,772,2.802,773,4.245,777,2.997,779,2.802,810,2.276,811,2.802,812,2.442,813,3.215,814,3.215,815,3.215,816,3.215,817,3.215,818,2.205,819,3.215,820,6.563,821,2.802,822,2.802,823,2.802,824,3.215]],["tags/123",[]],["title/124",[274,3.162]],["content/124",[17,4.567,123,3.309,130,4.256,189,3.699,221,1.49,276,5.509,278,4.873,439,3.452,501,4.256,588,4.402,777,3.834,808,5.239,825,6.013,826,6.556,827,7.524,828,5.239]],["tags/124",[]],["title/125",[244,1.155]],["content/125",[10,1.292,30,1.307,38,2.872,62,2.385,89,3.286,95,3.347,105,2.664,219,2.45,244,1.383,251,3.411,252,2.872,777,3.286,828,5.619,829,6.449,830,6.449,831,6.449]],["tags/125",[]],["title/126",[185,2.906]],["content/126",[6,1.551,7,0.708,8,1.171,12,1.708,30,0.924,37,1.969,109,3.036,147,2.617,179,3.036,185,2.459,187,2.617,189,2.241,191,2.509,193,2.561,220,2.394,221,1.73,225,1.54,226,1.642,227,1.502,229,2.281,231,1.6,298,2.876,299,3.337,300,5.465,303,2.203,323,2.676,777,3.936,792,3.972,832,4.558,834,4.558,835,4.558,836,4.558,837,4.558,970,3.605,994,5.068]],["tags/126",[]],["title/127",[18,1.573]],["content/127",[838,7.636]],["tags/127",[]],["title/136",[839,4.458]],["content/136",[6,1.556,7,0.746,10,1.035,12,2.557,37,2.23,217,2.584,218,2.732,219,1.961,220,2.368,221,1.72,224,2.584,225,1.744,226,1.86,227,1.701,230,2.265,231,1.812,232,2.631,233,1.909,234,2.786,235,1.909,236,2.842,839,6.322,968,3.258,969,3.345]],["tags/136",[]],["title/137",[244,1.155]],["content/137",[]],["tags/137",[]],["title/138",[105,1.708,244,0.886]],["content/138",[116,4.397,131,2.463,163,2.292,221,1.455,232,2.95,240,2.361,245,2.482,246,3.253,247,3.005,248,3.186,249,3.398,250,3.749,265,2.75,482,3.97,489,4.097,822,5.044,823,5.044,840,5.789,841,6.401,842,5.789,843,7.346,844,5.789]],["tags/138",[]],["title/139",[244,1.155]],["content/139",[7,0.536,10,1.171,30,1.184,48,4.056,89,2.977,105,2.414,136,4.288,163,2.313,221,1.606,240,1.878,244,1.253,251,3.091,252,2.603,257,2.731,258,3.698,259,4.152,260,3.785,261,2.977]],["tags/139",[]],["title/140",[18,1.573]],["content/140",[116,5.73,262,4.641]],["tags/140",[]],["title/128",[18,1.573]],["content/128",[6,1.385,7,0.696,10,1.02,12,1.278,18,1.973,30,0.691,37,2.199,50,2.001,63,2.097,79,2.548,131,1.451,220,2.241,221,1.786,224,1.706,225,1.152,226,1.834,227,1.123,230,1.495,231,1.196,233,1.261,235,1.261,266,1.876,301,3.135,303,2.46,311,2.672,312,2.097,320,2.821,321,2.589,323,2.988,324,3.298,325,2.27,562,3.058,812,2.589,845,2.971,846,4.716,847,5.31,848,3.604,849,2.971,850,4.716,851,4.819,852,2.971,853,3.158,854,3.158,855,3.158,856,2.971,857,3.158,968,2.151,969,2.208]],["tags/128",[]],["title/129",[244,1.155]],["content/129",[10,1.25,11,1.204,18,2.438,30,0.917,58,3.123,76,2.718,78,3.744,125,2.349,167,2.847,169,3.744,240,1.455,252,2.016,256,2.048,265,2.965,266,3.435,268,3.313,288,2.505,301,2.578,326,3.313,327,2.543,328,3.943,331,3.313,332,3.014,334,3.943,335,3.744,336,3.313,337,3.579,338,3.943,339,3.437,340,3.579,341,3.014,342,3.014,343,3.579,344,3.943,345,3.104,346,3.943,347,3.943,348,3.744,349,2.265,447,3.744,859,4.525,860,4.525,897,4.192]],["tags/129",[]],["title/130",[18,1.573]],["content/130",[861,7.636]],["tags/130",[]],["title/131",[995,4.991]],["content/131",[6,1.29,7,0.618,8,0.871,10,0.679,12,1.9,18,1.773,29,1.866,37,1.464,64,2.258,202,2.805,217,1.697,218,1.794,219,1.288,220,1.882,221,1.834,224,1.697,225,1.145,226,1.221,227,1.117,230,1.487,231,1.19,232,1.728,233,1.254,234,1.829,235,1.254,236,1.866,241,2.805,266,1.866,301,2.509,303,1.638,311,1.487,357,2.326,406,3.712,440,2.954,449,3.851,677,5.026,888,2.954,896,3.141,968,2.139,995,5.626,996,3.77,997,3.77,998,3.77,999,3.391,1000,6.753,1001,3.77,1002,5.638,1003,5.638,1004,3.77,1005,3.77,1006,3.391,1007,5.638,1008,3.77,1009,3.77,1010,3.77,1011,3.391,1012,3.77]],["tags/131",[]],["title/132",[244,1.155]],["content/132",[]],["tags/132",[]],["title/133",[105,1.708,244,0.886]],["content/133",[131,2.992,245,2.795,246,3.951,247,3.65,248,3.87,249,4.127,250,4.555]],["tags/133",[]],["title/134",[244,1.155]],["content/134",[7,0.494,10,1.079,18,1.573,30,1.092,38,2.4,48,3.903,62,1.992,89,2.745,95,2.796,105,2.226,136,4.126,163,2.133,219,2.046,221,1.545,240,1.732,244,1.155,251,2.85,252,2.4,255,3.944,256,2.438,257,2.518,258,3.51,259,3.942,260,3.49,261,2.745,995,4.991,1013,5.99]],["tags/134",[]],["title/135",[18,1.573]],["content/135",[262,4.641,449,5.73]],["tags/135",[]],["title/148",[301,2.226]],["content/148",[6,1.346,7,0.645,19,5.341,30,1.425,37,3.037,220,2.179,256,3.182,301,2.905]],["tags/148",[]],["title/149",[10,1.079]],["content/149",[4,2.599,7,0.716,10,1.279,75,4.134,163,2.527,191,3.513,298,4.027,311,2.799,740,4.518,862,5.561,863,4.803,864,6.46,865,6.383,866,4.673]],["tags/149",[]],["title/150",[245,1.82]],["content/150",[4,0.933,12,3.109,18,1.978,25,1.896,245,2.903,292,1.896,301,0.947,311,3.203,316,3.252,326,4.387,327,4.83,332,5.524,405,1.896,409,7.228,410,3.979,413,1.446,449,1.74,578,1.997,676,1.812,677,3.907,848,1.622,851,1.812,867,2.123,869,2.123,870,2.123,871,2.123,872,2.291,873,8.2,874,2.291,875,2.291,876,2.291,877,2.291,878,2.291,879,2.291,880,2.291,881,2.291,882,2.291,883,2.123,884,2.291,885,2.291,886,2.123,888,1.997,889,2.291,890,2.291,891,2.291,892,2.291,893,2.291,894,2.291,895,2.291,896,2.123,897,3.457,1014,2.548]],["tags/150",[]],["title/151",[431,4.092]],["content/151",[48,4.056,57,4.999,124,3.686,136,4.288,256,2.644,258,4.056,259,4.554,410,2.686,466,5.091,482,5.842,568,3.785,898,5.091]],["tags/151",[]],["title/152",[50,2.427,301,1.708]],["content/152",[7,0.673,12,3.021,14,1.959,18,1.183,57,4.552,79,2.028,131,1.725,142,2.028,221,1.144,231,2.027,233,2.136,235,2.136,256,2.614,265,3.198,311,2.534,327,2.278,345,2.78,410,3.815,432,3.962,459,5.034,462,4.23,468,3.079,469,3.742,470,3.079,471,3.847,472,2.557,474,4.569,562,3.47,568,3.742,848,2.869,899,5.034,900,5.777,901,5.034,902,3.532,903,4.053,904,2.968]],["tags/152",[]],["title/153",[524,3.236]],["content/153",[4,1.332,7,0.631,18,0.955,30,0.396,47,1.121,57,1.146,64,1.301,79,1.637,82,0.844,123,1.8,127,1.232,142,0.977,190,1.34,210,1.545,221,1.363,245,0.66,256,3.563,265,3.839,273,2.477,277,1.702,278,2.733,282,1.702,283,3.493,287,1.702,288,0.784,301,3.338,327,1.098,358,1.382,401,1.202,410,3.62,438,3.385,451,1.382,494,1.545,524,2.534,528,2.81,537,1.545,552,1.43,558,1.702,561,1.702,562,3.57,568,5.1,575,1.301,592,1.702,595,1.702,604,1.702,632,1.702,641,1.702,642,1.702,643,1.702,687,1.484,732,1.545,737,1.173,763,2.232,777,0.995,784,1.702,812,1.484,826,1.702,866,1.43,899,5.768,901,1.702,902,2.85,904,2.395,905,7.874,906,5.495,907,3.271,908,4.22,909,4.22,910,1.953,911,1.953,912,1.953,913,3.271,914,1.953,915,1.953,916,1.953,917,1.953,918,3.271,919,1.953,920,1.953,921,1.953,922,1.953,923,1.953,924,1.953,925,1.953,926,1.702,927,1.953,928,1.702,929,1.809,930,1.953,931,1.953]],["tags/153",[]],["title/154",[932,4.458]],["content/154",[4,1.695,5,2.626,6,1.127,7,0.719,8,1.07,30,0.843,37,1.798,63,2.561,74,1.72,82,1.798,128,3.444,147,2.389,162,3.291,163,2.33,220,1.824,221,1.795,225,1.988,226,1.499,227,1.939,230,1.825,231,1.461,233,1.539,235,1.539,257,1.945,258,2.083,270,2.626,323,2.443,324,2.696,325,2.772,439,3.379,460,2.696,863,2.561,932,5.651,933,4.162,934,4.162,935,4.162,936,4.162,937,4.162,938,4.162,940,4.162,941,4.162,942,4.162,943,4.162,944,4.162,969,2.696]],["tags/154",[]],["title/155",[945,4.695]],["content/155",[7,0.77,48,2.205,62,2.265,63,2.711,136,2.331,147,1.62,163,2.631,168,2.066,189,2.665,191,2.984,221,1.774,227,0.93,257,3.105,258,2.205,259,2.476,261,1.438,278,4.304,359,1.879,384,2.459,404,2.425,410,1.297,415,2.614,557,4.724,651,6.473,680,2.335,740,5.537,818,1.935,862,6.817,898,4.724,946,5.421,947,5.421,948,6.645,949,5.421,950,4.406,951,2.822,970,6.187]],["tags/155",[]],["title/156",[18,1.573]],["content/156",[30,1.529,262,4.641]],["tags/156",[]],["title/171",[393,3.49]],["content/171",[4,1.27,5,1.967,6,0.911,7,0.767,10,0.625,30,0.632,37,2.056,74,1.288,120,2.471,130,2.207,131,1.327,147,2.733,220,1.475,221,1.872,225,2.182,227,2.128,270,1.967,303,3.122,312,1.919,323,2.794,324,3.083,362,2.369,389,3.485,392,4.573,393,4.507,401,2.929,583,3.615,588,3.485,760,4.148,863,1.919,952,2.889,953,2.889,954,3.119,955,5.773,956,3.119,957,4.76,958,3.119,959,3.119,960,3.119,961,3.119,962,3.119,963,3.119,964,3.119,965,3.119]],["tags/171",[]],["title/172",[945,4.695]],["content/172",[7,0.715,10,1.079,30,1.092,76,3.236,131,3.319,147,4.027,164,3.588,201,3.315,227,2.311,252,2.4,265,2.56,266,3.861,345,3.695,371,4.092,389,3.944,392,3.813,393,3.49,401,4.316,410,3.225,568,3.49,569,4.694,740,5.521,811,4.694,966,5.388]],["tags/172",[]],["title/173",[18,1.573]],["content/173",[30,1.529,756,5.966]],["tags/173",[]],["title/157",[85,4.991]],["content/157",[41,5.862,82,2.906,85,6.232,289,5.321,575,4.48,720,5.567,782,5.567,1015,7.48,1016,7.48,1017,6.728,1018,7.48,1019,7.48]],["tags/157",[]],["title/158",[67,1.522,68,2.066,735,2.335,1020,2.614]],["content/158",[6,0.942,7,0.451,8,1.264,18,1.436,30,1.338,66,4.07,86,3.736,93,3.482,100,3.374,221,1.477,289,3.89,349,2.461,759,5.224,929,4.557,999,4.919,1020,4.557,1021,6.605,1022,6.605,1023,4.557,1024,5.469,1025,7.931,1026,2.954,1027,5.469,1028,5.469,1029,5.469,1030,8.103,1031,6.605,1032,5.469]],["tags/158",[]],["title/159",[554,3.27,1033,4.135]],["content/159",[17,5.749,41,5.29,47,3.485,79,3.038,80,5.29,203,5.023,204,6.071,288,2.437,456,4.801,535,5.29,554,4.801,737,3.647,928,5.29,1021,7.57,1022,6.071,1033,6.071,1034,6.75,1035,6.75,1036,6.071,1037,3.83]],["tags/159",[]],["title/160",[41,3.603,1038,4.597]],["content/160",[10,0.934,15,4.661,36,3.412,75,4.125,79,2.332,82,2.751,108,3.578,125,2.419,173,2.94,280,3.857,288,1.871,359,4.241,389,3.412,412,4.318,535,4.061,546,3.857,571,2.252,737,2.799,748,3.299,778,4.318,841,4.061,928,4.061,1025,4.318,1030,6.72,1039,5.182,1040,5.899,1041,7.081,1042,5.182,1043,3.686,1044,5.182,1045,5.182,1046,5.182,1047,5.182,1048,5.182,1049,4.318,1050,4.318,1051,5.182,1052,4.318,1053,4.318,1054,4.318,1055,3.54,1056,5.182,1057,5.182,1058,3.857,1059,5.182]],["tags/160",[]],["title/161",[571,2.604]],["content/161",[5,4.244,6,1.288,7,0.617,8,1.729,20,5.862,29,3.703,256,3.044,571,3.251,1060,7.48,1061,6.728,1062,7.48,1063,7.48]],["tags/161",[]],["title/162",[1064,4.597,1065,3.83]],["content/162",[4,2.864,810,4.977,1066,5.818,1067,7.818,1068,7.818,1069,7.818,1070,6.514,1071,7.818]],["tags/162",[]],["title/163",[1070,3.107,1072,3.354,1073,3.354]],["content/163",[6,1.317,7,0.631,8,1.767,86,5.223,1065,6.37,1066,5.69,1070,6.37,1072,6.877,1073,6.877,1074,6.877]],["tags/163",[]],["title/164",[782,4.458]],["content/164",[6,0.997,7,0.478,8,1.338,20,4.537,160,3.373,170,5.207,193,2.926,229,2.606,342,3.468,358,3.686,382,4.443,637,6.355,720,4.309,782,5.676,810,3.686,1049,4.824,1061,5.207,1065,4.824,1066,4.309,1074,6.86,1075,5.789,1076,5.789,1077,5.789,1078,5.789,1079,5.207,1080,5.207,1081,5.207,1082,5.789,1083,5.789,1084,5.207,1085,5.789,1086,7.627,1087,4.118,1088,5.789]],["tags/164",[]],["title/174",[83,3.49]],["content/174",[74,2.973,83,4.66,413,4.539,543,5.69,1089,6.269,1090,7.195]],["tags/174",[]],["title/175",[1091,4.261]],["content/175",[6,1.614,7,0.734,8,2.29,11,1.931,12,2.721,30,1.151,221,1.438,349,2.844,759,4.494,1091,5.742,1092,6.318,1093,5.683,1094,6.326,1095,5.264]],["tags/175",[]],["title/176",[74,2.226]],["content/176",[4,1.427,6,1.519,7,0.747,8,0.901,11,1.946,12,1.948,26,2.772,30,0.71,32,3.409,37,1.514,58,1.754,220,2.459,221,1.783,222,2.698,223,2.334,224,2.601,225,1.756,226,1.872,227,1.712,228,2.404,229,1.754,230,2.28,231,1.824,233,1.922,235,1.922,237,2.057,238,1.97,323,3.051,324,3.367,325,3.462,376,4.529,377,4.815,378,4.529,379,3.462,380,4.529,968,2.211,1096,3.054,1097,2.9,1098,3.897]],["tags/176",[]],["title/177",[245,1.82]],["content/177",[6,0.738,7,0.511,8,2.037,10,0.772,11,1.906,12,2.686,14,1.862,29,3.066,38,1.716,44,2.165,47,2.212,52,2.821,74,1.592,160,4.238,190,2.642,213,2.821,220,1.194,221,1.103,224,2.787,226,1.388,247,2,349,1.928,382,3.608,497,3.188,573,3.047,575,2.566,647,2.727,650,3.357,664,5.16,713,3.569,737,2.314,763,2.038,777,1.963,803,2.926,818,2.642,988,3.357,1025,5.16,1050,5.16,1089,4.853,1094,4.853,1097,3.188,1099,6.542,1100,4.283,1101,4.283,1102,3.188,1103,3.853,1104,4.283,1105,4.283,1106,6.193,1107,6.193,1108,6.193,1109,4.283,1110,4.283]],["tags/177",[]],["title/165",[50,1.969,359,2.234,863,2.064]],["content/165",[]],["tags/165",[]],["title/166",[11,0.892,187,1.926,311,1.471]],["content/166",[6,1.209,7,0.626,10,0.598,11,1.224,18,2.104,30,0.605,37,1.988,50,3.705,74,1.233,79,2.303,125,1.549,160,2.981,187,1.713,220,1.956,221,1.797,225,1.008,226,1.075,227,0.983,230,1.309,231,1.047,233,1.103,235,1.103,244,0.64,245,1.008,266,1.642,301,2.977,303,2.224,311,3.16,320,2.469,321,2.266,323,1.751,324,1.933,325,1.987,327,1.677,341,1.987,397,3.639,431,2.266,556,2.6,562,2.764,812,2.266,846,4.263,847,4.894,848,4.468,849,2.6,850,4.263,851,4.442,852,2.6,853,2.764,854,2.764,855,2.764,856,2.6,857,2.764,866,2.185,1111,3.318,1112,3.318,1113,3.318,1114,3.318,1115,3.318,1116,3.318,1117,3.318,1118,3.318,1119,3.318,1120,3.318]],["tags/166",[]],["title/167",[135,2.678,863,2.544]],["content/167",[4,2.357,5,3.652,7,0.674,74,2.392,79,2.897,127,3.652,135,3.749,136,3.062,155,5.362,178,4.397,189,2.846,244,1.241,247,3.005,267,5.044,270,3.652,288,2.324,546,4.79,547,5.362,863,3.561,864,4.79,1121,5.789,1122,5.789,1123,6.436,1124,6.436,1125,6.436,1126,6.436]],["tags/167",[]],["title/168",[14,1.998,1066,3.421]],["content/168",[6,1.177,7,0.406,8,1.138,9,4.429,14,2.14,21,3.364,30,1.246,39,3.135,42,2.868,47,2.542,50,4.478,66,3.664,69,4.429,79,2.216,91,6.984,94,4.102,96,4.102,133,4.102,135,2.868,138,5.357,150,4.429,171,2.542,329,4.67,562,2.66,647,3.135,676,3.502,810,3.135,848,3.135,849,3.859,988,3.859,1058,3.664,1066,3.664,1127,4.924,1128,4.924,1129,4.429,1130,4.429,1131,4.924,1132,4.924,1133,4.924,1134,4.924,1135,6.836,1136,4.924,1137,4.924,1138,6.148,1139,4.924,1140,4.924,1141,4.924]],["tags/168",[]],["title/169",[11,1.1,32,2.276]],["content/169",[4,1.867,6,1.072,7,0.71,8,1.439,10,0.595,11,2.197,12,1.113,13,2.174,14,1.435,17,2.256,18,0.867,28,4.247,30,1.457,31,2.102,32,4.373,44,3.147,47,1.705,50,1.743,54,2.349,55,3.995,56,2.588,58,3.151,63,1.827,64,3.729,67,2.473,68,2.174,73,2.97,74,1.894,83,1.924,120,1.541,139,2.588,158,2.97,162,2.349,167,1.098,203,2.457,226,1.651,229,2.802,245,1.003,251,1.571,307,2.102,348,2.457,349,2.294,357,2.037,370,2.256,383,2.349,413,1.873,435,2.588,468,2.256,524,1.784,614,2.588,654,2.751,670,4.247,733,2.588,735,3.794,1026,1.784,1142,3.302,1143,3.302,1144,3.302,1145,3.302,1146,4.585,1147,2.97,1148,2.97,1149,3.302,1150,3.302,1151,2.97,1152,3.302,1153,3.302,1154,2.751,1155,3.302,1156,3.302,1157,4.585,1158,3.302,1159,3.302,1160,2.256,1161,2.97]],["tags/169",[]],["title/170",[7,0.223,11,0.648,31,1.724,32,1.34,1146,2.435]],["content/170",[4,1.149,6,0.54,7,0.734,8,1.393,10,0.565,11,1.768,12,1.057,17,2.143,18,1.583,25,2.335,29,1.553,30,1.585,31,1.997,33,2.335,36,2.066,38,1.257,44,1.585,47,1.62,50,1.656,55,5.79,58,1.412,62,1.043,63,1.736,64,4.9,66,2.335,74,1.82,79,1.412,81,2.335,83,1.828,120,1.465,125,1.465,167,1.629,211,2.459,212,2.459,221,1.683,225,1.488,227,0.93,245,0.953,303,1.363,312,1.736,332,1.879,349,1.412,357,3.718,358,1.997,382,1.828,406,2.066,413,1.78,431,2.143,528,1.879,541,2.231,562,1.695,571,1.363,647,3.119,650,2.459,863,1.736,1037,1.78,1055,2.143,1097,2.335,1147,2.822,1162,2.459,1163,3.137,1164,3.137,1165,2.614,1166,3.137,1167,3.646,1168,3.646,1169,3.137,1170,3.137,1171,3.137,1172,2.822,1173,3.137,1174,3.137,1175,3.137,1176,4.899,1177,3.137,1178,4.406,1179,4.899,1180,3.137,1181,3.137,1182,3.137,1183,3.137]],["tags/170",[]],["title/204",[100,2.836,142,2.069]],["content/204",[7,0.756,8,1.114,10,1.214,11,1.153,23,3.404,30,0.879,44,2.436,49,4.336,50,2.545,52,3.175,62,1.603,67,2.339,82,1.873,94,4.017,100,2.974,102,4.248,121,4.017,123,3.334,127,2.735,142,3.783,163,1.716,167,1.603,193,2.436,219,1.647,252,1.931,274,2.545,288,1.741,342,2.888,450,3.293,451,5.351,457,3.588,494,3.429,552,3.175,608,3.588,775,3.588,864,3.588,1154,4.017,1168,3.588,1184,4.821,1185,5.279,1186,4.336,1187,4.821,1188,4.821,1189,3.778,1190,3.778]],["tags/204",[]],["title/205",[7,0.379,457,3.421]],["content/205",[5,3.49,6,1.512,7,0.725,37,2.389,74,2.285,220,2.211,221,1.711,225,1.868,226,2.57,227,1.822,230,2.426,231,1.941,232,2.818,233,2.045,234,2.984,235,2.045,236,3.044,237,3.247,238,3.108,270,3.49,431,4.201,1191,5.531]],["tags/205",[]],["title/206",[7,0.379,163,1.637]],["content/206",[5,2.814,6,1.357,7,0.737,30,1.436,37,1.927,74,2.929,102,2.506,142,3.092,143,4.132,146,3.887,156,4.132,171,2.561,220,1.915,221,1.689,225,1.507,226,2.225,227,1.469,231,1.565,232,2.273,233,1.649,234,2.406,235,1.649,236,2.455,237,2.618,238,2.506,270,2.814,303,2.155,431,3.388,441,3.691,904,4.524,1191,4.46,1192,4.132,1193,4.46,1194,4.959,1195,4.959,1196,4.959,1197,4.132,1198,4.959,1199,4.959]],["tags/206",[]],["title/207",[127,2.116,199,2.923,863,2.064]],["content/207",[6,1.137,7,0.651,10,0.654,30,0.662,37,1.411,44,1.835,67,1.762,74,1.349,77,2.583,93,2.312,125,1.695,127,3.11,142,2.467,163,1.293,167,1.208,171,1.875,199,2.846,220,1.84,221,1.795,225,1.103,226,1.176,227,1.076,231,1.146,232,1.664,233,1.208,234,1.762,235,1.208,236,1.798,237,1.917,238,1.835,256,1.478,285,2.702,303,3.197,370,2.481,371,3.744,432,3.381,451,2.312,485,3.025,491,2.702,493,3.025,606,2.702,841,2.846,848,2.312,851,2.583,852,2.846,904,3.609,1091,2.583,1094,2.846,1190,2.846,1192,3.025,1193,3.266,1197,3.025,1200,3.631,1201,3.266,1202,7.355,1203,5.481,1204,3.631,1205,4.93,1206,5.481,1207,3.631,1208,3.631,1209,3.631,1210,3.631,1211,3.631,1212,3.631,1213,3.631,1214,3.631,1215,3.631,1216,3.631,1217,3.266]],["tags/207",[]],["title/178",[1218,4.597,1219,4.597]],["content/178",[]],["tags/178",[]],["title/179",[11,0.892,32,1.846,733,2.923]],["content/179",[6,0.475,7,0.228,8,0.638,11,1.059,18,0.725,30,1.01,32,4.006,36,1.818,45,2.055,63,1.528,67,1.34,68,1.818,75,1.609,82,1.073,86,1.886,102,1.396,111,2.164,114,2.484,163,0.983,165,3.69,168,1.818,213,2.916,221,1.767,226,1.434,256,1.802,303,1.925,312,1.528,332,2.652,342,1.654,349,1.243,357,1.703,370,3.025,383,1.964,394,2.484,395,1.818,453,1.609,456,1.964,472,1.567,554,1.964,575,1.654,703,2.164,713,2.301,714,2.484,715,2.484,718,2.055,719,2.484,728,2.301,730,2.301,735,4.126,737,1.492,775,2.055,818,2.732,883,2.301,988,2.164,1020,2.301,1023,2.301,1040,3.69,1049,2.301,1079,2.484,1097,2.055,1157,4.986,1165,2.301,1168,2.055,1172,2.484,1201,2.484,1220,2.761,1221,2.761,1222,2.761,1223,2.761,1224,2.761,1225,2.761,1226,2.761,1227,2.761,1228,2.761,1229,2.761,1230,4.428,1231,2.761,1232,2.761,1233,4.428,1234,2.761,1235,2.484,1236,4.428,1237,2.761,1238,2.761,1239,2.761,1240,2.761,1241,2.761,1242,2.761,1243,5.705,1244,2.761,1245,2.761,1246,2.761,1247,2.761,1248,2.761,1249,2.761,1250,4.428,1251,2.761,1252,4.428,1253,5.544,1254,4.428,1255,4.428,1256,4.428,1257,2.761,1258,3.296,1259,2.761,1260,2.761,1261,2.761,1262,2.761,1263,2.761,1264,2.761]],["tags/179",[]],["title/180",[252,1.085,435,2.122,690,2.122,1265,2.708,1266,2.435]],["content/180",[7,0.765,8,0.848,10,0.661,11,0.878,30,0.669,39,2.336,56,2.876,67,1.78,74,1.364,101,3.301,117,2.876,123,2.735,129,5.208,167,1.22,203,2.731,209,3.301,221,1.413,226,1.189,237,2.917,238,2.792,252,2.213,256,1.493,359,2.198,391,2.876,404,1.817,410,1.518,439,1.895,450,3.774,501,3.517,524,1.982,573,2.61,575,3.98,608,2.731,679,4.33,680,4.112,684,4.603,693,6.608,694,3.058,803,2.507,810,2.336,821,2.876,1058,2.731,1160,2.507,1162,2.876,1267,3.67,1268,3.67,1269,3.67,1270,5.525,1271,3.67,1272,5.525,1273,3.67,1274,3.67,1275,6.645,1276,3.67,1277,5.525,1278,8.334,1279,5.525,1280,6.645,1281,3.67,1282,3.67,1283,3.67,1284,3.301,1285,3.301,1286,3.67,1287,3.301]],["tags/180",[]],["title/181",[117,2.923,329,2.548,763,1.774]],["content/181",[6,0.988,7,0.669,10,0.42,18,1.014,23,1.179,30,0.425,31,1.485,37,0.906,57,1.232,79,1.05,100,1.439,102,1.951,120,1.802,123,1.911,124,1.324,127,1.324,133,1.944,142,1.05,146,3.025,168,1.536,171,1.205,220,1.076,221,1.833,225,0.709,227,1.7,237,2.606,238,2.495,245,0.709,247,1.089,256,0.949,266,1.155,267,1.828,288,0.842,301,0.867,303,2.977,311,1.947,329,3.373,391,1.828,410,0.965,504,1.439,530,1.594,549,1.944,556,1.828,568,1.359,606,1.736,638,1.659,676,1.659,678,5.296,703,1.828,712,1.944,763,3.856,786,4.114,847,1.828,856,1.828,886,1.944,904,3.778,1011,2.098,1036,2.098,1058,2.873,1084,2.098,1090,2.098,1122,5.161,1129,2.098,1154,1.944,1186,2.098,1192,1.944,1197,1.944,1217,4.441,1288,4.937,1289,2.333,1290,3.86,1291,2.333,1292,3.86,1293,3.86,1294,2.333,1295,7.249,1296,2.333,1297,2.333,1298,2.333,1299,2.333,1300,2.333,1301,2.333,1302,4.937,1303,3.86,1304,3.86,1305,3.86,1306,1.828,1307,2.333,1308,2.333,1309,2.333,1310,2.098,1311,2.333,1312,1.944,1313,2.333,1314,2.333,1315,2.333,1316,2.333,1317,2.333,1318,2.333]],["tags/181",[]],["title/182",[160,1.387,401,1.318,484,1.318,529,1.627,562,1.286,1089,1.866]],["content/182",[7,0.647,84,4.735,221,1.8,227,2.324,303,3.785,397,4.298,401,3.344,458,4.298,530,4.128,562,3.264,740,3.847,744,5.034,991,5.435,1319,5.435,1320,6.042,1321,6.042,1322,6.042,1323,6.042,1324,7.844,1325,6.042,1326,6.042,1327,6.042]],["tags/182",[]],["title/183",[87,3.027,1328,2.107]],["content/183",[]],["tags/183",[]],["title/184",[2,3.83,1328,2.107]],["content/184",[6,1.383,7,0.713,8,1.189,11,1.685,12,1.734,14,2.236,19,3.514,30,1.284,38,2.061,47,2.656,82,1.998,124,2.919,178,3.514,220,2.239,222,3.289,256,2.093,301,2.618,311,2.029,395,4.639,402,4.286,405,3.828,406,3.387,413,2.919,449,3.514,867,4.286,868,4.626,869,4.286,870,4.286,871,4.286,1037,2.919,1096,4.031,1102,3.828,1258,3.828,1329,4.031,1330,5.144,1331,5.144,1332,5.144,1333,4.286,1334,3.828,1335,5.144,1336,5.144,1337,5.144]],["tags/184",[]],["title/185",[12,2.019]],["content/185",[7,0.503,8,2.021,12,2.055,18,1.601,30,1.111,173,4.476,178,4.164,213,4.014,221,1.086,240,2.528,307,3.88,404,3.905,452,3.147,697,6.182,699,5.483,700,6.572,701,5.483,702,5.483,987,5.483,1338,6.096,1339,5.483,1340,5.079,1341,4.777,1342,4.777,1343,6.096]],["tags/185",[]],["title/186",[1328,2.107,1344,4.135]],["content/186",[5,1.718,6,1.014,7,0.741,8,2.075,10,1.061,11,1.845,12,1.985,14,1.316,19,2.068,26,2.153,29,2.358,30,1.073,37,1.851,44,1.53,47,1.563,62,1.584,67,1.469,75,1.764,82,1.176,95,1.413,123,1.499,125,1.413,138,3.733,151,2.522,167,1.007,168,3.137,199,2.372,203,2.253,220,2.15,221,1.569,225,1.447,226,1.543,227,1.412,240,0.875,283,1.927,288,1.093,301,1.125,332,2.853,349,2.144,367,1.993,382,1.764,404,1.499,531,2.068,571,1.316,651,3.545,653,2.522,716,3.969,737,1.635,970,2.153,979,2.723,1026,3.182,1037,2.703,1091,3.389,1094,2.372,1095,3.969,1148,2.723,1160,2.068,1167,2.253,1328,1.387,1329,2.372,1340,2.522,1345,4.285,1346,3.027,1347,4.764,1348,4.764,1349,3.027,1350,3.027,1351,3.027,1352,3.027,1353,3.027,1354,3.027,1355,4.285,1356,2.723,1357,2.522,1358,2.153,1359,2.522,1360,3.027,1361,3.027,1362,3.027,1363,3.027]],["tags/186",[]],["title/187",[175,3.603,1328,2.107]],["content/187",[3,5.253,6,1.154,7,0.638,8,1.549,11,1.145,13,3.153,14,2.913,29,2.37,30,1.222,38,1.918,39,3.048,44,2.42,52,3.153,58,2.155,79,2.155,82,2.604,103,3.752,108,2.42,132,3.048,163,1.705,206,4.414,211,3.752,212,3.752,213,3.153,217,2.155,288,1.729,301,1.779,342,2.868,413,2.717,453,2.789,489,3.048,543,3.405,720,3.563,737,2.586,746,3.405,763,2.278,777,2.194,799,2.953,1026,3.621,1037,2.717,1328,2.194,1334,3.563,1341,3.752,1364,4.306,1365,4.306,1366,4.306,1367,4.306,1368,3.752,1369,4.787,1370,3.989,1371,3.989,1372,4.787,1373,4.787,1374,4.787]],["tags/187",[]],["title/188",[1026,3.236]],["content/188",[6,0.989,7,0.626,8,1.753,11,1.815,12,1.935,13,3.781,14,2.495,26,4.084,28,4.784,30,1.046,35,5.164,120,2.68,122,5.164,168,3.781,327,2.902,349,2.584,382,3.345,413,3.258,414,5.645,484,4.197,754,3.781,818,3.542,1026,4.098,1037,4.82,1087,4.084,1091,4.084,1355,5.164,1358,4.084,1375,5.741,1376,5.741,1377,5.741,1378,5.741]],["tags/188",[]],["title/189",[375,2.926,655,3.83]],["content/189",[4,1.695,7,0.54,10,0.834,30,1.384,42,2.696,44,2.339,62,1.539,74,2.432,77,3.291,82,1.798,102,2.339,108,2.339,112,3.855,123,2.291,135,2.696,160,3.813,163,1.648,167,1.539,175,3.626,187,3.379,220,1.29,240,1.338,393,2.696,397,5.401,404,4.602,446,4.31,494,3.291,495,5.129,697,3.626,863,2.561,864,5.651,932,3.444,952,3.855,990,4.162,1189,3.626,1379,3.161,1380,3.444,1381,5.886,1382,4.627,1383,4.162,1384,4.162,1385,3.855,1386,4.627,1387,3.626,1388,3.626,1389,3.626,1390,4.627,1391,4.627,1392,4.162,1393,4.162]],["tags/189",[]],["title/190",[7,0.494]],["content/190",[4,2.329,7,0.525,10,0.943,14,1.485,23,1.726,30,1.477,44,1.726,62,1.136,67,1.657,74,2.363,75,3.048,82,1.327,100,3.228,112,2.846,127,1.938,142,2.355,146,2.677,160,1.99,167,2.806,177,2.175,187,2.702,201,1.89,206,2.249,217,1.537,219,1.167,226,1.107,230,1.347,238,1.726,240,1.839,245,1.59,256,2.129,274,2.762,288,2.296,365,2.846,370,2.334,379,2.046,397,2.43,398,2.175,399,4.733,404,4.177,406,2.249,408,2.846,439,1.764,442,2.846,443,2.249,446,4.188,452,1.764,457,2.542,524,1.845,530,2.334,552,2.249,576,2.677,579,2.677,606,2.542,670,2.846,671,3.072,712,2.846,746,2.43,810,2.175,866,2.249,1258,2.542,1333,2.846,1357,2.846,1368,2.677,1393,3.072,1394,3.416,1395,2.644,1396,3.416,1397,3.416,1398,3.416,1399,2.542,1400,3.072,1401,3.416,1402,3.416,1403,3.416,1404,3.416,1405,3.416,1406,3.416,1407,3.416,1408,3.416,1409,3.072,1410,3.416]],["tags/190",[]],["title/191",[10,1.079]],["content/191",[7,0.444,8,1.244,10,0.97,11,1.288,14,2.34,17,3.678,30,0.981,38,2.157,39,4.626,79,2.423,86,3.678,102,2.721,163,1.917,164,3.225,167,2.929,171,2.78,178,3.678,187,2.78,404,4.072,737,2.908,863,2.979,953,4.486,1023,4.486,1037,3.055,1053,4.486,1103,4.842,1312,4.486,1334,4.007,1368,4.219,1395,2.721,1411,5.384,1412,5.384,1413,4.842,1414,5.384,1415,5.384,1416,4.842,1417,4.842,1418,4.486,1419,5.384,1420,4.842,1421,5.384,1422,5.384]],["tags/191",[]],["title/192",[1328,2.107,1423,4.135]],["content/192",[6,1.101,7,0.369,10,1.152,18,1.176,23,2.263,29,2.216,30,1.165,42,2.608,62,1.489,67,2.172,108,2.263,109,2.682,163,1.594,173,2.541,182,3.731,185,2.172,189,2.827,193,2.263,221,1.532,225,1.36,240,1.294,298,2.541,303,1.946,311,1.766,375,2.85,400,3.059,404,2.216,467,5.094,503,3.332,506,3.509,571,1.946,746,3.185,810,2.85,1026,2.419,1037,3.628,1055,3.059,1102,3.332,1160,3.059,1167,3.332,1258,4.758,1340,3.731,1385,3.731,1395,2.263,1424,3.731,1425,4.478,1426,4.478,1427,4.478,1428,7.315,1429,4.478,1430,6.393,1431,4.027,1432,3.332,1433,4.478,1434,4.478,1435,4.478,1436,4.478,1437,4.478,1438,4.478]],["tags/192",[]],["title/193",[1328,2.107,1371,3.83]],["content/193",[8,1.409,11,1.887,32,3.017,93,5.022,155,5.079,167,2.027,196,4.336,201,3.373,229,2.744,240,1.762,288,2.848,332,3.651,349,2.744,477,5.079,491,4.536,492,5.079,748,3.88,926,4.777,1089,4.777,1243,5.483,1358,4.336,1439,6.096,1440,5.483,1441,5.079,1442,5.483,1443,6.096,1444,5.483,1445,6.096,1446,6.096,1447,6.096]],["tags/193",[]],["title/194",[1328,2.107,1448,4.135]],["content/194",[23,3.108,30,1.601,38,2.464,163,2.19,167,2.639,244,1.186,245,1.868,311,3.129,375,3.915,404,4.348,446,5.224,452,3.175,520,4.374,1026,3.322,1037,3.49,1043,4.374,1333,5.124,1381,7.136,1399,4.577,1440,5.531,1449,5.531,1450,5.531,1451,6.15,1452,5.531]],["tags/194",[]],["title/195",[1328,2.107,1453,4.135]],["content/195",[4,2.336,8,1.474,11,1.525,83,3.715,102,3.223,220,1.777,245,1.937,349,2.87,382,3.715,404,3.157,407,4.997,571,3.529,575,3.82,644,4.199,647,4.059,687,4.356,1026,4.386,1037,3.618,1055,4.356,1099,5.735,1160,4.356,1357,5.313,1384,5.735,1450,5.735,1454,5.735,1455,4.745]],["tags/195",[]],["title/196",[1328,2.107,1456,3.83]],["content/196",[6,1.235,7,0.592,8,1.657,79,3.227,288,3.154,331,4.721,404,3.549,748,4.564,1043,5.1,1306,5.619,1328,3.286,1455,5.336,1456,5.974,1457,7.17,1458,5.974]],["tags/196",[]],["title/197",[29,2.276,349,2.069]],["content/197",[6,1.467,7,0.703,8,2.139,11,1.647,16,4.124,29,3.408,30,1.255,93,4.383,174,5.736,349,3.099,759,4.897,1395,3.479,1441,5.736,1459,6.884,1460,6.884,1461,6.884]],["tags/197",[]],["title/198",[10,0.828,1432,3.421]],["content/198",[6,0.752,7,0.518,10,1.449,13,2.874,36,2.874,51,3.105,102,2.206,120,2.038,121,5.23,125,2.038,173,2.476,201,2.415,221,1.432,240,1.815,248,2.161,274,3.314,375,2.778,379,5.101,383,4.465,384,3.42,397,3.105,398,5.422,410,1.805,484,4.907,500,3.636,647,3.996,661,3.42,737,3.391,1168,3.248,1358,3.105,1379,4.288,1380,3.248,1395,3.715,1417,3.926,1418,3.636,1449,5.646,1456,3.636,1462,4.364,1463,4.364,1464,4.364,1465,3.42,1466,6.277,1467,6.277,1468,6.277,1469,4.364]],["tags/198",[]],["title/199",[135,3.49]],["content/199",[6,1.207,7,0.711,8,1.62,10,0.92,11,1.221,14,2.219,18,1.341,30,1.459,44,2.58,74,2.604,102,2.58,120,2.384,123,3.47,132,4.462,135,5.433,138,4.001,161,4.592,245,1.551,311,2.014,404,2.527,440,4.001,484,2.825,638,3.632,690,4.001,754,3.362,775,3.8,845,5.493,1395,3.542,1455,3.8,1470,5.106,1471,4.592,1472,4.592,1473,4.592,1474,4.592,1475,5.106,1476,4.592,1477,5.106,1478,5.106]],["tags/199",[]],["title/200",[225,1.133,1087,2.653,1479,2.923]],["content/200",[14,2.304,82,2.059,132,3.375,189,2.344,191,2.624,220,1.478,221,1.749,225,1.611,231,1.673,233,1.763,234,2.572,235,1.763,256,2.157,303,3.125,378,4.155,379,3.175,380,4.155,413,3.008,414,3.945,458,5.115,467,3.622,481,4.417,484,3.979,770,3.945,1087,3.771,1395,2.679,1479,4.155,1480,5.301,1481,6.468,1482,5.301,1483,5.301,1484,5.301,1485,5.301,1486,5.301,1487,5.301,1488,4.768,1489,5.301,1490,5.301,1491,5.301]],["tags/200",[]],["title/201",[1043,4.261]],["content/201",[6,1.285,7,0.462,8,1.295,29,2.773,30,1.021,36,3.689,39,3.566,52,3.689,82,2.899,83,4.348,167,3.1,240,2.157,306,4.667,383,3.985,404,2.773,439,2.892,443,3.689,503,4.169,687,3.827,754,3.689,1043,3.985,1334,5.554,1455,4.169,1458,4.667,1492,5.602,1493,4.667,1494,5.602,1495,5.602,1496,5.602,1497,5.602,1498,5.602,1499,5.602,1500,5.602,1501,5.602]],["tags/201",[]],["title/202",[1328,2.107,1358,3.27]],["content/202",[6,1.366,7,0.507,8,1.834,11,1.471,13,4.05,26,5.643,29,3.927,30,1.121,89,2.818,108,3.108,221,1.096,292,4.577,342,3.684,343,4.374,754,4.05,759,5.643,1026,3.322,1328,2.818,1358,4.374,1441,5.124,1448,7.136,1454,5.531,1502,7.933,1503,6.15,1504,6.15]],["tags/202",[]],["title/203",[26,3.27,1328,2.107]],["content/203",[6,1.308,7,0.726,8,1.587,10,1.237,18,1.018,44,1.959,102,1.959,120,1.809,123,1.918,131,1.483,135,3.999,142,3.09,143,3.229,193,1.959,220,2.262,221,1.025,226,1.255,231,1.223,233,1.289,235,1.289,261,1.776,288,2.078,375,2.467,395,2.552,413,2.199,453,2.258,456,2.757,469,2.258,471,2.321,546,2.884,567,3.037,568,3.353,644,3.79,687,2.647,688,3.229,1017,3.486,1160,2.647,1167,2.884,1168,4.283,1185,3.037,1235,5.176,1287,5.176,1306,3.037,1328,1.776,1339,3.486,1341,3.037,1359,3.229,1387,3.037,1388,3.037,1389,5.38,1395,2.908,1399,2.884,1432,4.283,1476,3.486,1505,3.875,1506,3.229,1507,3.486,1508,3.875,1509,3.875,1510,3.229,1511,3.875,1512,3.875,1513,3.875,1514,3.486,1515,3.875,1516,3.875]],["tags/203",[]],["title/208",[82,1.786,1465,3.603]],["content/208",[]],["tags/208",[]],["title/209",[2,2.614,6,0.54,7,0.259,8,0.725]],["content/209",[3,3.378,6,1.376,7,0.659,8,1.847,11,1.746,12,2.46,13,2.838,14,1.873,16,3.726,29,3.079,30,1.457,37,1.674,38,2.492,39,2.744,72,3.591,76,3.361,87,2.838,89,1.975,103,3.378,108,2.178,162,3.066,171,2.225,177,2.744,196,3.066,222,2.904,225,1.31,270,2.446,288,1.556,301,2.312,329,2.944,382,2.511,571,1.873,638,3.066,658,3.591,718,3.208,737,2.328,748,2.744,1087,3.066,1095,3.591,1096,3.378,1102,3.208,1328,1.975,1329,3.378,1370,3.591,1395,2.178,1418,3.591,1517,2.328,1518,3.378,1519,4.31,1520,4.31,1521,4.31,1522,4.31,1523,4.31,1524,4.31,1525,4.31,1526,4.31,1527,4.31,1528,4.31]],["tags/209",[]],["title/210",[6,0.54,7,0.259,8,0.725,1344,2.822]],["content/210",[4,1.816,6,1.357,7,0.567,8,1.967,10,1.238,11,1.643,12,2.657,29,2.455,37,1.927,44,2.506,74,1.843,82,3.062,87,3.266,108,2.506,123,2.455,177,3.157,187,2.561,191,2.455,193,2.506,273,2.618,298,2.814,301,1.843,336,3.266,375,3.157,446,3.266,571,2.155,716,4.132,746,3.527,763,2.36,777,2.273,818,3.059,1026,2.679,1037,2.814,1091,3.527,1312,4.132,1328,2.273,1329,6.177,1345,4.46,1395,2.506,1517,2.679,1529,4.959,1530,4.959,1531,4.959,1532,4.959,1533,4.46]],["tags/210",[]],["title/211",[6,0.54,7,0.259,8,0.725,175,2.459]],["content/211",[3,3.037,6,0.991,7,0.32,8,1.33,10,0.698,11,1.642,13,2.552,14,2.501,19,3.931,23,1.959,30,0.706,31,2.467,47,2.001,62,1.289,72,3.229,77,2.757,87,2.552,89,1.776,93,2.467,108,1.959,109,2.321,117,3.037,128,2.884,137,3.486,157,3.229,167,1.289,174,3.229,180,3.486,186,3.486,187,2.971,189,1.714,190,3.55,196,2.757,206,3.79,211,3.037,212,3.037,213,2.552,220,1.08,301,1.44,329,2.647,395,2.552,435,3.037,453,2.258,543,2.757,571,1.684,612,3.037,638,2.757,707,3.229,737,2.094,748,2.467,749,3.229,1052,3.229,1081,3.486,1096,3.037,1306,3.037,1328,2.637,1364,3.486,1365,3.486,1366,3.486,1367,3.486,1368,3.037,1370,4.795,1371,4.795,1383,3.486,1395,2.908,1413,3.486,1416,3.486,1458,3.229,1474,3.486,1479,3.037,1514,3.486,1517,2.094,1534,3.875,1535,3.875,1536,3.875,1537,3.486,1538,3.486,1539,3.875,1540,3.229,1541,3.875,1542,3.875,1543,3.875,1544,3.875,1545,3.875,1546,3.875]],["tags/211",[]],["title/212",[6,0.54,7,0.259,8,0.725,1423,2.822]],["content/212",[571,3.517,1517,4.372,1518,6.342,1547,8.093,1548,6.743]],["tags/212",[]],["title/213",[1549,3.695]],["content/213",[4,1.695,6,0.797,10,1.368,14,2.011,19,3.161,20,3.626,23,3.308,24,4.162,38,2.622,62,1.539,74,1.72,82,2.542,108,2.339,120,2.16,125,3.055,142,2.083,156,3.855,163,2.33,167,2.177,171,2.389,176,3.855,216,3.161,225,1.406,245,1.988,273,2.443,283,2.946,288,1.671,296,3.855,301,1.72,335,3.444,359,3.92,447,3.444,469,2.696,509,3.444,513,3.855,593,3.855,608,3.444,722,4.162,803,3.161,863,2.561,866,3.047,1102,3.444,1385,3.855,1395,3.308,1409,4.162,1428,4.162,1540,3.855,1550,4.162,1551,4.162,1552,4.627,1553,4.162,1554,4.627,1555,4.627,1556,4.627,1557,4.627,1558,4.627,1559,4.627,1560,4.627]],["tags/213",[]],["title/214",[6,0.54,7,0.259,8,0.725,1561,3.137]],["content/214",[571,3.517,675,6.023,1517,4.372,1548,6.743,1562,8.093]],["tags/214",[]],["title/215",[288,1.66,1465,3.603]],["content/215",[4,2.157,7,0.486,8,1.361,11,2.057,16,3.527,29,2.915,30,1.073,33,4.382,61,4.906,62,1.958,64,3.527,71,5.296,75,3.43,87,3.877,98,4.614,218,2.802,220,1.641,288,2.785,370,4.022,382,3.43,543,4.188,571,2.559,748,3.748,1026,3.181,1054,4.906,1058,4.382,1162,4.614,1328,3.942,1420,5.296,1563,5.888,1564,5.888,1565,5.296]],["tags/215",[]],["title/216",[6,0.54,7,0.259,8,0.725,1566,3.137]],["content/216",[571,3.517,1517,4.372,1518,6.342,1548,6.743,1567,8.093]],["tags/216",[]],["title/217",[1549,3.695]],["content/217",[6,1.005,7,0.482,8,1.349,10,1.052,14,2.538,30,1.064,74,2.17,82,3.67,167,2.551,168,3.845,220,1.627,273,3.082,275,4.864,288,2.108,331,3.845,375,4.882,400,3.988,413,3.313,414,4.345,446,3.845,484,3.231,799,3.602,839,4.345,1026,3.154,1053,6.39,1160,3.988,1167,4.345,1266,5.251,1481,5.251,1550,5.251,1568,5.838]],["tags/217",[]],["title/218",[6,0.54,7,0.259,8,0.725,1569,3.137]],["content/218",[571,3.517,1517,4.372,1570,8.093,1571,8.093,1572,6.342]],["tags/218",[]],["title/219",[1549,3.695]],["content/219",[6,1.382,7,0.517,8,1.855,10,1.128,11,1.498,14,2.721,16,3.75,18,1.644,30,1.141,58,2.818,67,3.038,74,2.982,82,3.118,108,3.164,128,5.973,177,3.986,311,2.47,359,3.75,400,4.277,484,3.465,552,4.123,818,3.862,1392,5.631,1573,4.907,1574,5.631]],["tags/219",[]],["title/220",[6,0.54,7,0.259,8,0.725,1575,3.137]],["content/220",[571,3.559,1517,4.424,1572,6.418,1576,8.189]],["tags/220",[]],["title/221",[288,1.66,1465,3.603]],["content/221",[4,1.599,6,0.752,7,0.606,8,1.858,11,1.923,16,2.614,29,2.161,30,0.795,31,2.778,40,3.926,54,4.465,61,5.23,79,1.964,82,3.123,86,2.982,123,2.161,125,2.038,132,2.778,171,2.254,288,1.576,290,3.636,307,2.778,312,2.415,336,2.874,433,3.42,446,2.874,451,2.778,571,3.702,614,3.42,866,2.874,1026,2.358,1054,3.636,1055,2.982,1165,3.636,1284,3.926,1328,2,1356,3.926,1455,3.248,1506,3.636,1533,3.926,1565,3.926,1572,3.42,1577,4.364,1578,4.364,1579,4.364,1580,3.926,1581,4.364,1582,4.364,1583,4.364,1584,4.364,1585,4.364,1586,4.364,1587,4.364,1588,4.364,1589,4.364,1590,4.364,1591,4.364,1592,4.364,1593,4.364,1594,4.364,1595,4.364]],["tags/221",[]],["title/222",[6,0.54,7,0.259,8,0.725,1596,3.137]],["content/222",[325,4.848,571,3.517,1517,4.372,1572,6.342,1597,8.093]],["tags/222",[]],["title/223",[1549,3.695]],["content/223",[6,1.174,8,1.576,10,1.228,11,1.631,16,4.083,38,2.731,58,3.068,82,3.29,108,3.445,167,2.267,171,3.52,177,4.339,263,5.073,273,3.599,274,4.47,359,4.083,1379,4.657,1573,5.342,1598,6.817]],["tags/223",[]],["title/224",[6,0.54,7,0.259,8,0.725,1599,3.137]],["content/224",[571,3.517,1205,7.279,1517,4.372,1600,8.093,1601,6.743]],["tags/224",[]],["title/225",[1549,3.695]],["content/225",[4,1.192,6,0.868,7,0.509,10,0.908,23,3.512,30,1.125,38,3.011,42,1.896,54,2.315,82,2.699,87,2.144,93,2.072,123,1.611,126,2.712,142,1.465,167,2.5,171,1.681,177,2.072,182,2.712,187,1.681,189,1.439,244,0.628,245,1.875,247,1.52,261,1.492,265,1.391,274,3.668,288,1.175,298,1.847,311,2.434,330,3.586,339,2.224,349,2.269,362,2.224,379,1.95,398,2.072,407,2.551,452,1.681,470,2.224,520,2.315,536,2.712,538,2.712,560,2.712,570,2.712,574,2.712,576,2.551,579,2.551,580,2.712,582,2.712,584,2.712,589,2.712,591,2.712,594,2.712,597,2.712,599,2.712,616,2.423,617,2.423,618,2.423,647,2.072,649,2.712,675,2.423,748,2.072,763,2.399,768,3.752,777,2.828,1037,1.847,1043,2.315,1093,2.928,1138,2.928,1328,2.828,1342,2.551,1379,3.444,1380,2.423,1395,3.799,1399,2.423,1442,2.928,1452,2.928,1602,3.255,1603,5.042,1604,5.042,1605,3.255,1606,3.255,1607,3.255,1608,3.255,1609,3.255,1610,3.255,1611,3.255,1612,3.255,1613,3.255,1614,3.255]],["tags/225",[]],["title/226",[6,0.54,7,0.259,8,0.725,1615,3.137]],["content/226",[571,3.559,1517,4.424,1601,6.823,1616,7.365]],["tags/226",[]],["title/227",[1549,3.695]],["content/227",[7,0.541,36,4.318,82,3.516,142,2.952,167,2.181,231,2.07,233,2.181,235,2.181,244,1.745,274,4.363,342,3.928,452,3.386,469,3.821,471,3.928,531,4.48,821,5.14,904,5.443,1097,4.88,1400,5.898]],["tags/227",[]],["title/228",[6,0.54,7,0.259,8,0.725,1453,2.822]],["content/228",[1517,4.424,1601,6.823,1617,8.189,1618,8.189]],["tags/228",[]],["title/229",[1549,3.695]],["content/229",[7,0.609,8,1.457,10,0.791,11,1.929,23,3.187,30,1.149,38,1.76,45,3.269,52,2.892,54,3.124,58,1.977,63,2.43,79,1.977,82,2.45,102,2.22,163,1.564,167,1.461,173,2.492,177,2.796,214,3.442,235,1.461,244,0.847,483,3.442,484,2.43,507,3.269,509,4.693,531,3,541,3.124,552,5.309,612,3.442,647,2.796,679,4.942,689,3.66,708,3.442,799,2.71,803,5.04,1031,3.95,1052,3.66,1151,3.95,1161,3.95,1178,3.95,1319,3.95,1379,3,1424,3.66,1431,3.95,1444,3.95,1540,5.254,1573,3.442,1574,3.95,1619,4.392,1620,4.392,1621,4.392,1622,4.392,1623,4.392,1624,4.392,1625,4.392,1626,4.392,1627,4.392,1628,4.392,1629,4.392]],["tags/229",[]],["title/230",[6,0.54,7,0.259,8,0.725,1630,3.137]],["content/230",[571,3.517,1006,7.279,1517,4.372,1631,8.093,1632,6.743]],["tags/230",[]],["title/231",[1549,3.695]],["content/231",[6,1.588,7,0.681,8,1.909,11,1.748,23,2.742,32,3.616,38,2.926,48,2.442,120,2.533,135,3.161,151,4.521,163,1.932,312,3.003,349,2.442,456,3.86,472,3.079,504,3.347,509,4.038,524,2.931,565,4.521,675,5.436,803,3.707,926,4.252,1026,2.931,1030,4.521,1121,4.88,1189,4.252,1342,4.252,1395,3.692,1493,4.521,1633,5.426,1634,5.426,1635,5.426,1636,5.426]],["tags/231",[]],["title/232",[6,0.54,7,0.259,8,0.725,1637,3.137]],["content/232",[571,3.517,1517,4.372,1616,7.279,1632,6.743,1638,8.093]],["tags/232",[]],["title/233",[1549,3.695]],["content/233",[6,0.635,7,0.458,8,1.541,10,1.201,11,1.595,16,3.993,23,1.865,38,2.671,42,2.149,58,2.497,74,2.061,75,2.149,79,1.66,82,3.088,83,2.149,95,1.722,96,3.074,108,1.865,120,1.722,135,3.232,163,1.314,167,1.845,177,2.349,231,1.164,233,1.227,235,1.845,240,1.067,270,3.148,312,2.041,349,1.66,359,2.21,367,2.429,379,2.21,398,2.349,472,2.093,484,2.041,490,3.074,491,2.746,499,3.074,506,2.891,512,2.891,517,3.074,518,3.074,524,3.601,661,2.891,763,1.755,777,1.691,799,2.276,863,2.041,1037,2.093,1050,3.074,1055,2.52,1130,3.318,1185,2.891,1189,5.224,1285,3.318,1310,3.318,1342,2.891,1379,2.52,1380,2.746,1387,2.891,1388,2.891,1389,2.891,1395,2.803,1424,3.074,1432,2.746,1510,3.074,1537,3.318,1538,3.318,1553,3.318,1573,2.891,1639,3.318,1640,3.689,1641,5.547,1642,5.547,1643,3.689,1644,3.689,1645,3.689,1646,3.689]],["tags/233",[]],["title/234",[10,1.079]],["content/234",[4,2.455,5,2.717,6,0.824,7,0.395,8,1.107,11,1.145,14,2.081,16,2.868,18,1.76,23,2.42,58,2.155,74,1.779,82,2.604,95,3.129,124,2.717,125,2.235,132,3.048,135,3.905,136,2.278,160,2.789,162,4.768,163,1.705,167,1.592,171,3.461,231,1.511,233,1.592,244,0.923,245,1.455,330,3.405,379,2.868,398,3.048,453,2.789,483,3.752,484,2.649,503,3.563,512,3.752,567,3.752,644,4.414,720,4.989,737,3.621,1190,3.752,1258,3.563,1379,3.271,1380,5.756,1395,2.42,1399,3.563,1432,3.563,1471,4.306,1472,4.306,1473,4.306,1551,4.306,1647,4.787]],["tags/234",[]],["title/235",[244,0.886,288,1.66]],["content/235",[30,1.195,52,4.318,95,3.062,124,3.721,165,5.464,167,2.181,198,5.14,244,1.594,395,5.443,404,3.246,681,5.464,754,4.318,1334,4.88,1395,3.314,1493,5.464,1648,6.558,1649,6.558,1650,6.558,1651,6.558,1652,6.558,1653,6.558,1654,6.558,1655,6.558]],["tags/235",[]],["title/236",[1087,4.261]],["content/236",[4,2.654,58,3.261,81,5.392,87,4.771,132,4.612,171,4.539,176,6.036,210,5.153,644,4.771,1080,6.516,1190,5.678,1328,3.32,1479,6.889]],["tags/236",[]],["title/237",[6,0.54,7,0.259,8,0.725,1162,2.459]],["content/237",[1517,4.424,1518,6.418,1632,6.823,1656,8.189]],["tags/237",[]],["title/238",[1549,3.695]],["content/238",[8,1.855,11,1.92,82,3.441,167,3.212,202,5.973,240,1.81,495,6.29,524,3.382,539,6.687,583,5.483,818,5.464,1055,4.277,1488,5.631,1639,5.631,1657,6.261,1658,6.261]],["tags/238",[]],["title/239",[6,0.54,7,0.259,8,0.725,1506,2.614]],["content/239",[7,0.622,8,1.316,10,1.026,11,1.362,18,1.495,38,3.022,58,2.563,75,3.317,108,2.878,120,2.658,135,3.317,167,1.894,190,3.513,193,2.878,220,2.358,240,1.646,244,1.098,261,2.61,453,3.317,467,3.89,469,3.317,471,3.411,754,3.75,1185,5.912,1341,4.463,1359,4.744,1387,4.463,1388,4.463,1389,4.463,1395,3.813,1510,4.744,1580,5.121,1659,5.694,1660,5.694,1661,5.694]],["tags/239",[]],["title/240",[6,0.54,7,0.259,8,0.725,1507,2.822]],["content/240",[29,4.102,450,5.661,1040,6.904]],["tags/240",[]]],"invertedIndex":[["",{"_index":221,"title":{},"content":{"4":{},"7":{},"9":{},"12":{},"13":{},"14":{},"16":{},"21":{},"23":{},"24":{},"25":{},"26":{},"28":{},"31":{},"33":{},"36":{},"38":{},"40":{},"42":{},"43":{},"44":{},"45":{},"47":{},"54":{},"55":{},"56":{},"58":{},"59":{},"61":{},"62":{},"64":{},"67":{},"69":{},"72":{},"74":{},"75":{},"77":{},"79":{},"80":{},"81":{},"82":{},"84":{},"87":{},"88":{},"89":{},"91":{},"96":{},"99":{},"101":{},"104":{},"106":{},"107":{},"108":{},"109":{},"111":{},"114":{},"116":{},"119":{},"121":{},"123":{},"124":{},"126":{},"128":{},"131":{},"134":{},"136":{},"138":{},"139":{},"141":{},"143":{},"144":{},"146":{},"152":{},"153":{},"154":{},"155":{},"158":{},"166":{},"170":{},"171":{},"175":{},"176":{},"177":{},"179":{},"180":{},"181":{},"182":{},"185":{},"186":{},"192":{},"198":{},"200":{},"202":{},"203":{},"205":{},"206":{},"207":{}},"tags":{}}],["0",{"_index":467,"title":{},"content":{"23":{},"78":{},"105":{},"143":{},"192":{},"200":{},"239":{}},"tags":{}}],["0.31.0",{"_index":1504,"title":{},"content":{"202":{}},"tags":{}}],["0.38",{"_index":1640,"title":{},"content":{"233":{}},"tags":{}}],["0.42.2",{"_index":1621,"title":{},"content":{"229":{}},"tags":{}}],["0.53.0",{"_index":1592,"title":{},"content":{"221":{}},"tags":{}}],["0.6.x",{"_index":1505,"title":{},"content":{"203":{}},"tags":{}}],["0.xx",{"_index":1585,"title":{},"content":{"221":{}},"tags":{}}],["007cbf",{"_index":854,"title":{},"content":{"47":{},"128":{},"166":{}},"tags":{}}],["1",{"_index":1011,"title":{},"content":{"131":{},"181":{}},"tags":{}}],["1.0.0",{"_index":1593,"title":{},"content":{"221":{}},"tags":{}}],["10",{"_index":853,"title":{},"content":{"47":{},"128":{},"166":{}},"tags":{}}],["100",{"_index":232,"title":{},"content":{"4":{},"9":{},"21":{},"28":{},"33":{},"40":{},"56":{},"58":{},"64":{},"69":{},"76":{},"84":{},"103":{},"111":{},"116":{},"121":{},"131":{},"136":{},"138":{},"141":{},"205":{},"206":{},"207":{}},"tags":{}}],["12",{"_index":1092,"title":{},"content":{"175":{}},"tags":{}}],["122.4",{"_index":323,"title":{},"content":{"16":{},"26":{},"45":{},"47":{},"61":{},"74":{},"91":{},"96":{},"101":{},"126":{},"128":{},"146":{},"154":{},"166":{},"171":{},"176":{}},"tags":{}}],["122.45",{"_index":1119,"title":{},"content":{"166":{}},"tags":{}}],["14",{"_index":325,"title":{},"content":{"16":{},"47":{},"61":{},"74":{},"91":{},"101":{},"128":{},"154":{},"166":{},"176":{},"222":{}},"tags":{}}],["140",{"_index":1658,"title":{},"content":{"238":{}},"tags":{}}],["15.4",{"_index":1503,"title":{},"content":{"202":{}},"tags":{}}],["15.4.x",{"_index":1635,"title":{},"content":{"231":{}},"tags":{}}],["16",{"_index":675,"title":{},"content":{"81":{},"108":{},"214":{},"225":{},"231":{}},"tags":{}}],["16.3",{"_index":1093,"title":{},"content":{"175":{},"225":{}},"tags":{}}],["17",{"_index":1656,"title":{},"content":{"237":{}},"tags":{}}],["19",{"_index":1006,"title":{},"content":{"131":{},"230":{}},"tags":{}}],["1:1",{"_index":186,"title":{},"content":{"3":{},"211":{}},"tags":{}}],["2",{"_index":725,"title":{},"content":{"81":{},"108":{}},"tags":{}}],["20",{"_index":1488,"title":{},"content":{"200":{},"238":{}},"tags":{}}],["2017",{"_index":1632,"title":{},"content":{"230":{},"232":{},"237":{}},"tags":{}}],["2018",{"_index":1601,"title":{},"content":{"224":{},"226":{},"228":{}},"tags":{}}],["2019",{"_index":1572,"title":{},"content":{"218":{},"220":{},"221":{},"222":{}},"tags":{}}],["2020",{"_index":1548,"title":{},"content":{"212":{},"214":{},"216":{}},"tags":{}}],["2022",{"_index":1536,"title":{},"content":{"211":{}},"tags":{}}],["2023",{"_index":1530,"title":{},"content":{"210":{}},"tags":{}}],["2025",{"_index":1519,"title":{},"content":{"209":{}},"tags":{}}],["219k",{"_index":1542,"title":{},"content":{"211":{}},"tags":{}}],["22",{"_index":488,"title":{},"content":{"78":{},"105":{}},"tags":{}}],["24",{"_index":487,"title":{},"content":{"78":{},"105":{}},"tags":{}}],["240px",{"_index":824,"title":{},"content":{"42":{},"123":{}},"tags":{}}],["256",{"_index":1003,"title":{},"content":{"131":{}},"tags":{}}],["27",{"_index":1547,"title":{},"content":{"212":{}},"tags":{}}],["27th",{"_index":1638,"title":{},"content":{"232":{}},"tags":{}}],["3.5",{"_index":236,"title":{},"content":{"4":{},"9":{},"21":{},"28":{},"33":{},"40":{},"56":{},"64":{},"69":{},"84":{},"111":{},"116":{},"121":{},"131":{},"136":{},"141":{},"205":{},"206":{},"207":{}},"tags":{}}],["30",{"_index":1571,"title":{},"content":{"218":{}},"tags":{}}],["31",{"_index":1576,"title":{},"content":{"220":{}},"tags":{}}],["37.78",{"_index":1120,"title":{},"content":{"166":{}},"tags":{}}],["37.8",{"_index":324,"title":{},"content":{"16":{},"47":{},"61":{},"74":{},"91":{},"96":{},"101":{},"128":{},"154":{},"166":{},"171":{},"176":{}},"tags":{}}],["3d",{"_index":1138,"title":{},"content":{"168":{},"225":{}},"tags":{}}],["4",{"_index":1535,"title":{},"content":{"211":{}},"tags":{}}],["4.1",{"_index":1578,"title":{},"content":{"221":{}},"tags":{}}],["4.1.x",{"_index":1582,"title":{},"content":{"221":{}},"tags":{}}],["40",{"_index":234,"title":{},"content":{"4":{},"9":{},"21":{},"28":{},"33":{},"40":{},"56":{},"64":{},"69":{},"84":{},"111":{},"116":{},"121":{},"131":{},"136":{},"141":{},"200":{},"205":{},"206":{},"207":{}},"tags":{}}],["40.7",{"_index":965,"title":{},"content":{"96":{},"171":{}},"tags":{}}],["40.7467898",{"_index":1210,"title":{},"content":{"207":{}},"tags":{}}],["40.7661",{"_index":1485,"title":{},"content":{"200":{}},"tags":{}}],["400",{"_index":380,"title":{},"content":{"74":{},"101":{},"176":{},"200":{}},"tags":{}}],["41.268014439447484",{"_index":1490,"title":{},"content":{"200":{}},"tags":{}}],["41.7661",{"_index":1487,"title":{},"content":{"200":{}},"tags":{}}],["4e3fc8",{"_index":322,"title":{},"content":{"16":{},"91":{}},"tags":{}}],["5",{"_index":1205,"title":{},"content":{"207":{},"224":{}},"tags":{}}],["5.0",{"_index":1577,"title":{},"content":{"221":{}},"tags":{}}],["5.0.x",{"_index":1581,"title":{},"content":{"221":{}},"tags":{}}],["57k",{"_index":1543,"title":{},"content":{"211":{}},"tags":{}}],["6",{"_index":1567,"title":{},"content":{"216":{}},"tags":{}}],["6.0",{"_index":1563,"title":{},"content":{"215":{}},"tags":{}}],["60",{"_index":492,"title":{},"content":{"78":{},"105":{},"193":{}},"tags":{}}],["600",{"_index":378,"title":{},"content":{"74":{},"101":{},"176":{},"200":{}},"tags":{}}],["7",{"_index":1604,"title":{},"content":{"225":{}},"tags":{}}],["7.209231188444142",{"_index":1491,"title":{},"content":{"200":{}},"tags":{}}],["72.9876",{"_index":1486,"title":{},"content":{"200":{}},"tags":{}}],["73.48760000000007",{"_index":1489,"title":{},"content":{"200":{}},"tags":{}}],["73.9876",{"_index":1484,"title":{},"content":{"200":{}},"tags":{}}],["74",{"_index":964,"title":{},"content":{"96":{},"171":{}},"tags":{}}],["74.0122106",{"_index":1209,"title":{},"content":{"207":{}},"tags":{}}],["8",{"_index":999,"title":{},"content":{"131":{},"158":{}},"tags":{}}],["8.9.18",{"_index":1363,"title":{},"content":{"186":{}},"tags":{}}],["85",{"_index":477,"title":{},"content":{"78":{},"105":{},"193":{}},"tags":{}}],["915",{"_index":1113,"title":{},"content":{"166":{}},"tags":{}}],["__super_secret_token__",{"_index":1262,"title":{},"content":{"179":{}},"tags":{}}],["_mapcontext",{"_index":1425,"title":{},"content":{"192":{}},"tags":{}}],["abov",{"_index":650,"title":{},"content":{"81":{},"108":{},"170":{},"177":{}},"tags":{}}],["abus",{"_index":1228,"title":{},"content":{"179":{}},"tags":{}}],["accept",{"_index":43,"title":{},"content":{"1":{},"79":{},"106":{}},"tags":{}}],["access",{"_index":229,"title":{},"content":{"4":{},"9":{},"14":{},"16":{},"21":{},"26":{},"28":{},"33":{},"38":{},"40":{},"45":{},"56":{},"74":{},"81":{},"82":{},"89":{},"99":{},"109":{},"126":{},"146":{},"164":{},"169":{},"176":{},"193":{}},"tags":{}}],["access_token=token",{"_index":1159,"title":{},"content":{"169":{}},"tags":{}}],["accommod",{"_index":1531,"title":{},"content":{"210":{}},"tags":{}}],["accord",{"_index":873,"title":{},"content":{"52":{},"150":{}},"tags":{}}],["account",{"_index":71,"title":{},"content":{"1":{},"215":{}},"tags":{}}],["achiev",{"_index":208,"title":{},"content":{"3":{}},"tags":{}}],["activ",{"_index":289,"title":{},"content":{"12":{},"14":{},"87":{},"89":{},"157":{},"158":{}},"tags":{}}],["actual",{"_index":613,"title":{},"content":{"80":{},"107":{}},"tags":{}}],["ad",{"_index":359,"title":{"165":{}},"content":{"19":{},"62":{},"94":{},"155":{},"160":{},"180":{},"213":{},"219":{},"223":{},"233":{}},"tags":{}}],["add",{"_index":818,"title":{},"content":{"42":{},"62":{},"123":{},"155":{},"177":{},"179":{},"188":{},"210":{},"219":{},"238":{}},"tags":{}}],["add/remov",{"_index":338,"title":{},"content":{"18":{},"48":{},"93":{},"129":{}},"tags":{}}],["added/modifi",{"_index":1041,"title":{},"content":{"160":{}},"tags":{}}],["addit",{"_index":567,"title":{},"content":{"80":{},"107":{},"203":{},"234":{}},"tags":{}}],["addition",{"_index":967,"title":{},"content":{"97":{}},"tags":{}}],["address",{"_index":1383,"title":{},"content":{"189":{},"211":{}},"tags":{}}],["adjust",{"_index":1125,"title":{},"content":{"167":{}},"tags":{}}],["advantag",{"_index":1369,"title":{},"content":{"187":{}},"tags":{}}],["affect",{"_index":535,"title":{},"content":{"79":{},"106":{},"159":{},"160":{}},"tags":{}}],["afterward",{"_index":1184,"title":{},"content":{"204":{}},"tags":{}}],["again",{"_index":684,"title":{},"content":{"81":{},"108":{},"180":{}},"tags":{}}],["against",{"_index":1035,"title":{},"content":{"159":{}},"tags":{}}],["agnost",{"_index":783,"title":{},"content":{"23":{},"143":{}},"tags":{}}],["alber",{"_index":416,"title":{},"content":{"77":{}},"tags":{}}],["alia",{"_index":1375,"title":{},"content":{"188":{}},"tags":{}}],["align",{"_index":178,"title":{},"content":{"3":{},"23":{},"143":{},"167":{},"184":{},"185":{},"191":{}},"tags":{}}],["allow",{"_index":312,"title":{},"content":{"16":{},"47":{},"77":{},"81":{},"91":{},"96":{},"108":{},"128":{},"170":{},"171":{},"179":{},"221":{},"231":{},"233":{}},"tags":{}}],["alon",{"_index":1645,"title":{},"content":{"233":{}},"tags":{}}],["along",{"_index":649,"title":{},"content":{"81":{},"108":{},"225":{}},"tags":{}}],["alongsid",{"_index":1590,"title":{},"content":{"221":{}},"tags":{}}],["altern",{"_index":1097,"title":{},"content":{"170":{},"176":{},"177":{},"179":{},"227":{}},"tags":{}}],["alway",{"_index":155,"title":{},"content":{"2":{},"167":{},"193":{}},"tags":{}}],["amazon",{"_index":1170,"title":{},"content":{"170":{}},"tags":{}}],["amount",{"_index":1415,"title":{},"content":{"191":{}},"tags":{}}],["analyt",{"_index":97,"title":{},"content":{"2":{}},"tags":{}}],["anchor",{"_index":769,"title":{},"content":{"23":{},"25":{},"42":{},"123":{},"143":{},"145":{}},"tags":{}}],["anchor=\"bottom",{"_index":765,"title":{},"content":{"21":{},"40":{},"121":{},"141":{}},"tags":{}}],["angl",{"_index":780,"title":{},"content":{"23":{},"143":{}},"tags":{}}],["anim",{"_index":556,"title":{},"content":{"80":{},"107":{},"166":{},"181":{}},"tags":{}}],["anoth",{"_index":81,"title":{},"content":{"1":{},"80":{},"107":{},"170":{},"236":{}},"tags":{}}],["anywher",{"_index":534,"title":{},"content":{"79":{},"106":{}},"tags":{}}],["api",{"_index":108,"title":{},"content":{"2":{},"3":{},"12":{},"81":{},"87":{},"160":{},"187":{},"189":{},"192":{},"202":{},"209":{},"210":{},"211":{},"213":{},"219":{},"223":{},"233":{},"239":{}},"tags":{}}],["app",{"_index":226,"title":{},"content":{"4":{},"9":{},"14":{},"16":{},"21":{},"26":{},"28":{},"33":{},"40":{},"45":{},"47":{},"56":{},"61":{},"64":{},"69":{},"74":{},"81":{},"82":{},"84":{},"89":{},"91":{},"101":{},"108":{},"109":{},"111":{},"116":{},"121":{},"126":{},"128":{},"131":{},"136":{},"141":{},"146":{},"154":{},"166":{},"169":{},"176":{},"177":{},"179":{},"180":{},"186":{},"190":{},"203":{},"205":{},"206":{},"207":{}},"tags":{}}],["app.tsx",{"_index":376,"title":{},"content":{"74":{},"81":{},"108":{},"176":{}},"tags":{}}],["append",{"_index":354,"title":{},"content":{"19":{},"94":{}},"tags":{}}],["appli",{"_index":249,"title":{},"content":{"6":{},"11":{},"23":{},"30":{},"35":{},"42":{},"58":{},"66":{},"71":{},"86":{},"113":{},"118":{},"123":{},"133":{},"138":{},"143":{}},"tags":{}}],["applic",{"_index":102,"title":{},"content":{"2":{},"38":{},"80":{},"81":{},"99":{},"107":{},"108":{},"179":{},"181":{},"189":{},"191":{},"195":{},"198":{},"199":{},"203":{},"204":{},"206":{},"229":{}},"tags":{}}],["application'",{"_index":1384,"title":{},"content":{"189":{},"195":{}},"tags":{}}],["approach",{"_index":1374,"title":{},"content":{"187":{}},"tags":{}}],["appropri",{"_index":1544,"title":{},"content":{"211":{}},"tags":{}}],["approv",{"_index":1034,"title":{},"content":{"159":{}},"tags":{}}],["arab",{"_index":704,"title":{},"content":{"81":{},"108":{}},"tags":{}}],["architectur",{"_index":1538,"title":{},"content":{"211":{},"233":{}},"tags":{}}],["argument",{"_index":1404,"title":{},"content":{"190":{}},"tags":{}}],["around",{"_index":483,"title":{},"content":{"78":{},"105":{},"229":{},"234":{}},"tags":{}}],["array",{"_index":356,"title":{},"content":{"19":{},"79":{},"94":{},"106":{}},"tags":{}}],["asid",{"_index":381,"title":{},"content":{"75":{},"102":{}},"tags":{}}],["assign",{"_index":169,"title":{},"content":{"2":{},"18":{},"48":{},"93":{},"129":{}},"tags":{}}],["associ",{"_index":682,"title":{},"content":{"81":{},"82":{},"108":{},"109":{}},"tags":{}}],["attach",{"_index":778,"title":{},"content":{"23":{},"143":{},"160":{}},"tags":{}}],["attempt",{"_index":447,"title":{},"content":{"48":{},"77":{},"104":{},"129":{},"213":{}},"tags":{}}],["attribut",{"_index":241,"title":{},"content":{"28":{},"32":{},"69":{},"73":{},"131":{}},"tags":{}}],["attributioncontrol",{"_index":216,"title":{"28":{},"69":{}},"content":{"28":{},"31":{},"69":{},"72":{},"213":{}},"tags":{}}],["attributioncontrol={fals",{"_index":242,"title":{},"content":{"28":{},"69":{}},"tags":{}}],["authent",{"_index":1177,"title":{},"content":{"170":{}},"tags":{}}],["author",{"_index":1181,"title":{},"content":{"170":{}},"tags":{}}],["auto",{"_index":400,"title":{},"content":{"23":{},"76":{},"103":{},"143":{},"192":{},"217":{},"219":{}},"tags":{}}],["automat",{"_index":775,"title":{},"content":{"23":{},"143":{},"179":{},"199":{},"204":{}},"tags":{}}],["avail",{"_index":415,"title":{},"content":{"62":{},"77":{},"155":{}},"tags":{}}],["avoid",{"_index":331,"title":{},"content":{"17":{},"48":{},"81":{},"92":{},"108":{},"129":{},"196":{},"217":{}},"tags":{}}],["away",{"_index":475,"title":{},"content":{"78":{},"105":{}},"tags":{}}],["babel",{"_index":1603,"title":{},"content":{"225":{}},"tags":{}}],["back",{"_index":1287,"title":{},"content":{"180":{},"203":{}},"tags":{}}],["background",{"_index":292,"title":{},"content":{"12":{},"52":{},"87":{},"150":{},"202":{}},"tags":{}}],["backgroundlayerspecif",{"_index":872,"title":{},"content":{"52":{},"150":{}},"tags":{}}],["bad",{"_index":1463,"title":{},"content":{"198":{}},"tags":{}}],["base",{"_index":47,"title":{},"content":{"1":{},"55":{},"75":{},"77":{},"81":{},"102":{},"104":{},"108":{},"153":{},"159":{},"168":{},"169":{},"170":{},"177":{},"184":{},"186":{},"211":{}},"tags":{}}],["baseapiurl",{"_index":671,"title":{},"content":{"81":{},"190":{}},"tags":{}}],["basemap",{"_index":34,"title":{},"content":{"1":{}},"tags":{}}],["basi",{"_index":1422,"title":{},"content":{"191":{}},"tags":{}}],["basic",{"_index":1200,"title":{},"content":{"207":{}},"tags":{}}],["be",{"_index":456,"title":{},"content":{"78":{},"105":{},"159":{},"179":{},"203":{},"231":{}},"tags":{}}],["bear",{"_index":471,"title":{},"content":{"23":{},"54":{},"78":{},"80":{},"105":{},"107":{},"143":{},"152":{},"203":{},"227":{},"239":{}},"tags":{}}],["bearer",{"_index":1182,"title":{},"content":{"170":{}},"tags":{}}],["becom",{"_index":1084,"title":{},"content":{"164":{},"181":{}},"tags":{}}],["befor",{"_index":352,"title":{},"content":{"19":{},"80":{},"94":{},"107":{}},"tags":{}}],["beforeid",{"_index":350,"title":{},"content":{"19":{},"94":{}},"tags":{}}],["begin",{"_index":605,"title":{},"content":{"80":{},"107":{}},"tags":{}}],["behav",{"_index":1368,"title":{},"content":{"187":{},"190":{},"191":{},"211":{}},"tags":{}}],["behavior",{"_index":173,"title":{},"content":{"2":{},"3":{},"19":{},"81":{},"82":{},"94":{},"108":{},"109":{},"160":{},"185":{},"192":{},"198":{},"229":{}},"tags":{}}],["belong",{"_index":648,"title":{},"content":{"80":{},"107":{}},"tags":{}}],["below",{"_index":383,"title":{},"content":{"75":{},"102":{},"169":{},"179":{},"198":{},"201":{}},"tags":{}}],["better",{"_index":177,"title":{},"content":{"3":{},"190":{},"209":{},"210":{},"219":{},"223":{},"225":{},"229":{},"233":{}},"tags":{}}],["between",{"_index":1533,"title":{},"content":{"210":{},"221":{}},"tags":{}}],["bewar",{"_index":386,"title":{},"content":{"75":{},"102":{}},"tags":{}}],["big",{"_index":1137,"title":{},"content":{"168":{}},"tags":{}}],["bill",{"_index":1284,"title":{},"content":{"180":{},"221":{}},"tags":{}}],["billabl",{"_index":56,"title":{},"content":{"1":{},"81":{},"169":{},"180":{}},"tags":{}}],["bind",{"_index":749,"title":{},"content":{"82":{},"109":{},"211":{}},"tags":{}}],["blob",{"_index":738,"title":{},"content":{"81":{},"108":{}},"tags":{}}],["block",{"_index":1633,"title":{},"content":{"231":{}},"tags":{}}],["blog",{"_index":1588,"title":{},"content":{"221":{}},"tags":{}}],["boolean",{"_index":438,"title":{},"content":{"23":{},"55":{},"77":{},"79":{},"81":{},"104":{},"106":{},"108":{},"143":{},"153":{}},"tags":{}}],["bootstrap",{"_index":1029,"title":{},"content":{"158":{}},"tags":{}}],["both",{"_index":126,"title":{},"content":{"2":{},"96":{},"225":{}},"tags":{}}],["bottom",{"_index":259,"title":{},"content":{"7":{},"13":{},"31":{},"36":{},"42":{},"53":{},"59":{},"62":{},"67":{},"72":{},"88":{},"114":{},"119":{},"123":{},"134":{},"139":{},"151":{},"155":{}},"tags":{}}],["bound",{"_index":458,"title":{},"content":{"78":{},"80":{},"105":{},"107":{},"182":{},"200":{}},"tags":{}}],["bounds.contains([lng",{"_index":1327,"title":{},"content":{"182":{}},"tags":{}}],["box",{"_index":497,"title":{},"content":{"79":{},"80":{},"106":{},"107":{},"177":{}},"tags":{}}],["boxzoom",{"_index":496,"title":{},"content":{"79":{},"106":{}},"tags":{}}],["boxzoombound",{"_index":912,"title":{},"content":{"55":{},"153":{}},"tags":{}}],["boxzoomhandl",{"_index":498,"title":{},"content":{"79":{},"106":{}},"tags":{}}],["branch",{"_index":1022,"title":{},"content":{"158":{},"159":{}},"tags":{}}],["break",{"_index":748,"title":{},"content":{"82":{},"109":{},"160":{},"193":{},"196":{},"209":{},"211":{},"215":{},"225":{}},"tags":{}}],["browser",{"_index":1031,"title":{},"content":{"158":{},"229":{}},"tags":{}}],["bug",{"_index":1016,"title":{},"content":{"157":{}},"tags":{}}],["build",{"_index":93,"title":{},"content":{"2":{},"77":{},"104":{},"158":{},"193":{},"197":{},"207":{},"211":{},"225":{}},"tags":{}}],["bump",{"_index":1639,"title":{},"content":{"233":{},"238":{}},"tags":{}}],["bundl",{"_index":658,"title":{},"content":{"81":{},"108":{},"209":{}},"tags":{}}],["bundler",{"_index":713,"title":{},"content":{"81":{},"177":{},"179":{}},"tags":{}}],["button",{"_index":588,"title":{},"content":{"26":{},"43":{},"80":{},"96":{},"107":{},"124":{},"146":{},"171":{}},"tags":{}}],["bypass",{"_index":1286,"title":{},"content":{"180":{}},"tags":{}}],["cach",{"_index":986,"title":{},"content":{"108":{}},"tags":{}}],["california",{"_index":1118,"title":{},"content":{"166":{}},"tags":{}}],["call",{"_index":189,"title":{},"content":{"3":{},"12":{},"14":{},"24":{},"26":{},"43":{},"45":{},"62":{},"80":{},"81":{},"82":{},"87":{},"89":{},"107":{},"109":{},"124":{},"126":{},"144":{},"146":{},"155":{},"167":{},"192":{},"200":{},"211":{},"225":{}},"tags":{}}],["callback",{"_index":274,"title":{"12":{},"24":{},"43":{},"80":{},"87":{},"107":{},"124":{},"144":{}},"content":{"79":{},"106":{},"190":{},"198":{},"204":{},"223":{},"225":{},"227":{}},"tags":{}}],["camera",{"_index":127,"title":{"78":{},"105":{},"207":{}},"content":{"2":{},"55":{},"80":{},"107":{},"153":{},"167":{},"181":{},"190":{},"204":{},"207":{}},"tags":{}}],["cancel",{"_index":636,"title":{},"content":{"80":{},"107":{}},"tags":{}}],["canva",{"_index":578,"title":{},"content":{"52":{},"80":{},"107":{},"150":{}},"tags":{}}],["canvasoverlay",{"_index":1388,"title":{},"content":{"189":{},"203":{},"233":{},"239":{}},"tags":{}}],["canvassourceopt",{"_index":858,"title":{},"content":{"48":{},"52":{}},"tags":{}}],["canvassourcespecif",{"_index":897,"title":{},"content":{"52":{},"129":{},"150":{}},"tags":{}}],["captur",{"_index":1411,"title":{},"content":{"191":{}},"tags":{}}],["carrée/wgs84",{"_index":421,"title":{},"content":{"77":{}},"tags":{}}],["case",{"_index":39,"title":{},"content":{"1":{},"2":{},"76":{},"168":{},"180":{},"187":{},"191":{},"201":{},"209":{}},"tags":{}}],["caus",{"_index":198,"title":{},"content":{"3":{},"82":{},"109":{},"235":{}},"tags":{}}],["center",{"_index":432,"title":{},"content":{"23":{},"42":{},"54":{},"77":{},"78":{},"105":{},"123":{},"143":{},"152":{},"207":{}},"tags":{}}],["certain",{"_index":1151,"title":{},"content":{"169":{},"229":{}},"tags":{}}],["chang",{"_index":288,"title":{"215":{},"221":{},"235":{}},"content":{"12":{},"17":{},"18":{},"19":{},"48":{},"55":{},"77":{},"80":{},"82":{},"87":{},"92":{},"93":{},"94":{},"104":{},"107":{},"109":{},"129":{},"153":{},"159":{},"160":{},"167":{},"181":{},"186":{},"187":{},"190":{},"193":{},"196":{},"203":{},"204":{},"209":{},"213":{},"215":{},"217":{},"221":{},"225":{}},"tags":{}}],["changelog",{"_index":1587,"title":{},"content":{"221":{}},"tags":{}}],["charter",{"_index":1071,"title":{},"content":{"162":{}},"tags":{}}],["check",{"_index":397,"title":{},"content":{"76":{},"166":{},"182":{},"189":{},"190":{},"198":{}},"tags":{}}],["checkifpositioninviewport",{"_index":1323,"title":{},"content":{"182":{}},"tags":{}}],["checklist",{"_index":1038,"title":{"160":{}},"content":{},"tags":{}}],["checkout",{"_index":1028,"title":{},"content":{"158":{}},"tags":{}}],["chen",{"_index":1076,"title":{},"content":{"164":{}},"tags":{}}],["child",{"_index":367,"title":{},"content":{"19":{},"21":{},"80":{},"94":{},"107":{},"141":{},"186":{},"233":{}},"tags":{}}],["children",{"_index":845,"title":{},"content":{"47":{},"96":{},"128":{},"199":{}},"tags":{}}],["choos",{"_index":46,"title":{},"content":{"1":{}},"tags":{}}],["choroplethoverlay",{"_index":1472,"title":{},"content":{"199":{},"234":{}},"tags":{}}],["chrome",{"_index":1032,"title":{},"content":{"158":{}},"tags":{}}],["circl",{"_index":851,"title":{},"content":{"47":{},"52":{},"128":{},"150":{},"166":{},"207":{}},"tags":{}}],["circlelay",{"_index":846,"title":{},"content":{"47":{},"128":{},"166":{}},"tags":{}}],["circlelayerspecif",{"_index":874,"title":{},"content":{"52":{},"150":{}},"tags":{}}],["class",{"_index":219,"title":{},"content":{"4":{},"9":{},"13":{},"16":{},"21":{},"23":{},"25":{},"28":{},"31":{},"33":{},"36":{},"40":{},"42":{},"44":{},"56":{},"64":{},"69":{},"72":{},"74":{},"75":{},"81":{},"84":{},"88":{},"91":{},"101":{},"102":{},"108":{},"111":{},"114":{},"116":{},"119":{},"121":{},"123":{},"125":{},"131":{},"134":{},"136":{},"141":{},"143":{},"145":{},"190":{},"204":{}},"tags":{}}],["classnam",{"_index":816,"title":{},"content":{"42":{},"123":{}},"tags":{}}],["clear",{"_index":1229,"title":{},"content":{"179":{}},"tags":{}}],["click",{"_index":501,"title":{},"content":{"24":{},"43":{},"79":{},"80":{},"106":{},"107":{},"124":{},"144":{},"180":{}},"tags":{}}],["clickabl",{"_index":1452,"title":{},"content":{"194":{},"225":{}},"tags":{}}],["clicktoler",{"_index":785,"title":{},"content":{"25":{},"145":{}},"tags":{}}],["client",{"_index":1220,"title":{},"content":{"179":{}},"tags":{}}],["clockwis",{"_index":479,"title":{},"content":{"23":{},"78":{},"105":{},"143":{}},"tags":{}}],["clone",{"_index":1191,"title":{},"content":{"205":{},"206":{}},"tags":{}}],["close",{"_index":827,"title":{},"content":{"43":{},"124":{}},"tags":{}}],["closebutton",{"_index":829,"title":{},"content":{"44":{},"125":{}},"tags":{}}],["closeonclick",{"_index":828,"title":{},"content":{"43":{},"44":{},"124":{},"125":{}},"tags":{}}],["closeonmov",{"_index":830,"title":{},"content":{"44":{},"125":{}},"tags":{}}],["closest",{"_index":811,"title":{},"content":{"42":{},"97":{},"123":{},"172":{}},"tags":{}}],["cloud",{"_index":69,"title":{},"content":{"1":{},"168":{}},"tags":{}}],["cluster",{"_index":1568,"title":{},"content":{"217":{}},"tags":{}}],["code",{"_index":737,"title":{},"content":{"55":{},"81":{},"108":{},"153":{},"159":{},"160":{},"177":{},"179":{},"186":{},"187":{},"191":{},"198":{},"209":{},"211":{},"234":{}},"tags":{}}],["codepen",{"_index":1242,"title":{},"content":{"179":{}},"tags":{}}],["collaps",{"_index":694,"title":{},"content":{"81":{},"108":{},"180":{}},"tags":{}}],["color",{"_index":321,"title":{},"content":{"16":{},"25":{},"47":{},"91":{},"128":{},"145":{},"166":{}},"tags":{}}],["color=\"r",{"_index":793,"title":{},"content":{"26":{},"146":{}},"tags":{}}],["comfort",{"_index":65,"title":{},"content":{"1":{}},"tags":{}}],["command",{"_index":114,"title":{},"content":{"2":{},"179":{}},"tags":{}}],["commit",{"_index":1079,"title":{},"content":{"164":{},"179":{}},"tags":{}}],["committe",{"_index":1073,"title":{"163":{}},"content":{"163":{}},"tags":{}}],["commun",{"_index":1064,"title":{"162":{}},"content":{},"tags":{}}],["compact",{"_index":253,"title":{},"content":{"31":{},"72":{},"114":{}},"tags":{}}],["compat",{"_index":13,"title":{},"content":{"1":{},"169":{},"187":{},"188":{},"198":{},"202":{},"209":{},"211":{}},"tags":{}}],["complet",{"_index":543,"title":{},"content":{"80":{},"107":{},"174":{},"187":{},"211":{},"215":{}},"tags":{}}],["complex",{"_index":101,"title":{},"content":{"2":{},"180":{}},"tags":{}}],["compli",{"_index":1434,"title":{},"content":{"192":{}},"tags":{}}],["compliant",{"_index":1546,"title":{},"content":{"211":{}},"tags":{}}],["complic",{"_index":1197,"title":{},"content":{"181":{},"206":{},"207":{}},"tags":{}}],["compon",{"_index":10,"title":{"51":{},"149":{},"191":{},"198":{},"234":{}},"content":{"1":{},"2":{},"4":{},"7":{},"9":{},"13":{},"16":{},"17":{},"19":{},"21":{},"25":{},"28":{},"31":{},"33":{},"36":{},"38":{},"40":{},"44":{},"47":{},"48":{},"51":{},"56":{},"59":{},"64":{},"67":{},"69":{},"72":{},"74":{},"75":{},"78":{},"80":{},"81":{},"82":{},"84":{},"88":{},"91":{},"92":{},"94":{},"96":{},"97":{},"99":{},"101":{},"102":{},"105":{},"107":{},"108":{},"109":{},"111":{},"114":{},"116":{},"119":{},"121":{},"125":{},"128":{},"129":{},"131":{},"134":{},"136":{},"139":{},"141":{},"145":{},"149":{},"160":{},"166":{},"169":{},"170":{},"171":{},"172":{},"177":{},"180":{},"181":{},"186":{},"189":{},"190":{},"191":{},"192":{},"198":{},"199":{},"203":{},"204":{},"207":{},"210":{},"211":{},"213":{},"217":{},"219":{},"223":{},"225":{},"229":{},"233":{},"239":{}},"tags":{}}],["component'",{"_index":952,"title":{},"content":{"96":{},"171":{},"189":{}},"tags":{}}],["component(",{"_index":762,"title":{},"content":{"38":{},"99":{}},"tags":{}}],["compos",{"_index":1462,"title":{},"content":{"198":{}},"tags":{}}],["config",{"_index":1248,"title":{},"content":{"179":{}},"tags":{}}],["configur",{"_index":431,"title":{"53":{},"151":{}},"content":{"77":{},"166":{},"170":{},"205":{},"206":{}},"tags":{}}],["conflict",{"_index":396,"title":{},"content":{"76":{}},"tags":{}}],["conform",{"_index":326,"title":{},"content":{"17":{},"48":{},"52":{},"77":{},"92":{},"104":{},"129":{},"150":{}},"tags":{}}],["confus",{"_index":1654,"title":{},"content":{"235":{}},"tags":{}}],["conic",{"_index":430,"title":{},"content":{"77":{}},"tags":{}}],["consid",{"_index":1058,"title":{},"content":{"160":{},"168":{},"180":{},"181":{},"215":{}},"tags":{}}],["consist",{"_index":365,"title":{},"content":{"19":{},"94":{},"190":{}},"tags":{}}],["consol",{"_index":1494,"title":{},"content":{"201":{}},"tags":{}}],["console.error(evt.error",{"_index":559,"title":{},"content":{"80":{},"107":{}},"tags":{}}],["const",{"_index":303,"title":{},"content":{"14":{},"16":{},"26":{},"40":{},"45":{},"47":{},"82":{},"89":{},"91":{},"96":{},"109":{},"121":{},"126":{},"128":{},"131":{},"146":{},"166":{},"170":{},"171":{},"179":{},"181":{},"182":{},"192":{},"200":{},"206":{},"207":{}},"tags":{}}],["constant",{"_index":333,"title":{},"content":{"17":{},"42":{},"92":{},"123":{}},"tags":{}}],["constrain",{"_index":493,"title":{},"content":{"78":{},"105":{},"207":{}},"tags":{}}],["constraint",{"_index":199,"title":{"207":{}},"content":{"3":{},"186":{},"207":{}},"tags":{}}],["construct",{"_index":455,"title":{},"content":{"78":{},"81":{},"105":{},"108":{}},"tags":{}}],["constructor",{"_index":385,"title":{},"content":{"75":{},"102":{}},"tags":{}}],["contain",{"_index":131,"title":{},"content":{"2":{},"6":{},"7":{},"11":{},"23":{},"30":{},"35":{},"42":{},"47":{},"54":{},"58":{},"66":{},"67":{},"71":{},"76":{},"79":{},"80":{},"86":{},"96":{},"97":{},"103":{},"106":{},"107":{},"113":{},"118":{},"123":{},"128":{},"133":{},"138":{},"143":{},"152":{},"171":{},"172":{},"203":{}},"tags":{}}],["containerid",{"_index":264,"title":{},"content":{"7":{},"67":{}},"tags":{}}],["content",{"_index":732,"title":{},"content":{"21":{},"55":{},"81":{},"108":{},"141":{},"153":{}},"tags":{}}],["context",{"_index":589,"title":{},"content":{"80":{},"107":{},"225":{}},"tags":{}}],["context.provid",{"_index":757,"title":{},"content":{"38":{},"99":{}},"tags":{}}],["contextprovid",{"_index":1373,"title":{},"content":{"187":{}},"tags":{}}],["continu",{"_index":1165,"title":{},"content":{"170":{},"179":{},"221":{}},"tags":{}}],["contribut",{"_index":85,"title":{"157":{}},"content":{"1":{},"157":{}},"tags":{}}],["contributor",{"_index":1005,"title":{},"content":{"131":{}},"tags":{}}],["control",{"_index":163,"title":{"206":{}},"content":{"2":{},"7":{},"13":{},"14":{},"31":{},"36":{},"51":{},"58":{},"59":{},"61":{},"62":{},"67":{},"72":{},"80":{},"88":{},"89":{},"107":{},"114":{},"119":{},"134":{},"138":{},"139":{},"149":{},"154":{},"155":{},"179":{},"187":{},"189":{},"191":{},"192":{},"194":{},"204":{},"207":{},"213":{},"229":{},"231":{},"233":{},"234":{}},"tags":{}}],["control'",{"_index":250,"title":{},"content":{"6":{},"11":{},"30":{},"35":{},"58":{},"66":{},"71":{},"86":{},"113":{},"118":{},"133":{},"138":{}},"tags":{}}],["control.t",{"_index":262,"title":{},"content":{"8":{},"15":{},"32":{},"37":{},"60":{},"63":{},"68":{},"73":{},"90":{},"115":{},"120":{},"135":{},"140":{},"156":{}},"tags":{}}],["controller_opt",{"_index":1430,"title":{},"content":{"192":{}},"tags":{}}],["controlposit",{"_index":898,"title":{},"content":{"53":{},"62":{},"151":{},"155":{}},"tags":{}}],["cooperativegestur",{"_index":1410,"title":{},"content":{"190":{}},"tags":{}}],["coord",{"_index":918,"title":{},"content":{"55":{},"153":{}},"tags":{}}],["coordin",{"_index":812,"title":{},"content":{"42":{},"47":{},"55":{},"123":{},"128":{},"153":{},"166":{}},"tags":{}}],["copi",{"_index":440,"title":{},"content":{"77":{},"104":{},"131":{},"199":{}},"tags":{}}],["core",{"_index":172,"title":{},"content":{"2":{}},"tags":{}}],["correctli",{"_index":140,"title":{},"content":{"2":{}},"tags":{}}],["correspond",{"_index":532,"title":{},"content":{"79":{},"106":{}},"tags":{}}],["cost",{"_index":1265,"title":{"180":{}},"content":{},"tags":{}}],["counter",{"_index":478,"title":{},"content":{"78":{},"105":{}},"tags":{}}],["counterpart",{"_index":1413,"title":{},"content":{"191":{},"211":{}},"tags":{}}],["cover",{"_index":1039,"title":{},"content":{"160":{}},"tags":{}}],["crash",{"_index":1444,"title":{},"content":{"193":{},"229":{}},"tags":{}}],["creat",{"_index":63,"title":{},"content":{"1":{},"2":{},"16":{},"47":{},"61":{},"62":{},"91":{},"128":{},"154":{},"155":{},"169":{},"170":{},"179":{},"229":{}},"tags":{}}],["creation",{"_index":1622,"title":{},"content":{"229":{}},"tags":{}}],["csp",{"_index":731,"title":{},"content":{"81":{},"108":{}},"tags":{}}],["css",{"_index":247,"title":{},"content":{"6":{},"11":{},"23":{},"30":{},"35":{},"42":{},"58":{},"66":{},"71":{},"76":{},"86":{},"103":{},"113":{},"118":{},"123":{},"133":{},"138":{},"143":{},"167":{},"177":{},"181":{},"225":{}},"tags":{}}],["cssproperti",{"_index":246,"title":{},"content":{"6":{},"11":{},"23":{},"30":{},"35":{},"42":{},"58":{},"66":{},"71":{},"76":{},"86":{},"103":{},"113":{},"118":{},"123":{},"133":{},"138":{},"143":{}},"tags":{}}],["current",{"_index":401,"title":{"182":{}},"content":{"55":{},"76":{},"77":{},"80":{},"96":{},"97":{},"103":{},"104":{},"107":{},"153":{},"171":{},"172":{},"182":{}},"tags":{}}],["cursor",{"_index":399,"title":{},"content":{"76":{},"80":{},"103":{},"107":{},"190":{}},"tags":{}}],["custom",{"_index":863,"title":{"165":{},"167":{},"207":{}},"content":{"51":{},"61":{},"149":{},"154":{},"167":{},"170":{},"171":{},"189":{},"191":{},"213":{},"233":{}},"tags":{}}],["customattribut",{"_index":254,"title":{},"content":{"31":{},"72":{}},"tags":{}}],["customattribution=\"map",{"_index":243,"title":{},"content":{"28":{},"69":{}},"tags":{}}],["customiz",{"_index":24,"title":{},"content":{"1":{},"213":{}},"tags":{}}],["customlayerinterfac",{"_index":865,"title":{},"content":{"51":{},"149":{}},"tags":{}}],["customli",{"_index":1126,"title":{},"content":{"167":{}},"tags":{}}],["data",{"_index":50,"title":{"54":{},"152":{},"165":{}},"content":{"1":{},"2":{},"47":{},"80":{},"81":{},"107":{},"108":{},"128":{},"166":{},"168":{},"169":{},"170":{},"204":{}},"tags":{}}],["data={geojson",{"_index":857,"title":{},"content":{"47":{},"128":{},"166":{}},"tags":{}}],["data={vehiclesgeojson",{"_index":1317,"title":{},"content":{"181":{}},"tags":{}}],["dataset",{"_index":1132,"title":{},"content":{"168":{}},"tags":{}}],["datatyp",{"_index":913,"title":{},"content":{"55":{},"153":{}},"tags":{}}],["date",{"_index":1517,"title":{},"content":{"209":{},"210":{},"211":{},"212":{},"214":{},"216":{},"218":{},"220":{},"222":{},"224":{},"226":{},"228":{},"230":{},"232":{},"237":{}},"tags":{}}],["debug",{"_index":929,"title":{},"content":{"55":{},"153":{},"158":{}},"tags":{}}],["dec",{"_index":1562,"title":{},"content":{"214":{}},"tags":{}}],["decend",{"_index":966,"title":{},"content":{"97":{},"172":{}},"tags":{}}],["decid",{"_index":49,"title":{},"content":{"1":{},"204":{}},"tags":{}}],["decis",{"_index":1081,"title":{},"content":{"164":{},"211":{}},"tags":{}}],["deck.gl",{"_index":138,"title":{},"content":{"2":{},"168":{},"186":{},"199":{}},"tags":{}}],["deck.gl'",{"_index":1372,"title":{},"content":{"187":{}},"tags":{}}],["deckgl",{"_index":1362,"title":{},"content":{"186":{}},"tags":{}}],["default",{"_index":240,"title":{"74":{},"101":{}},"content":{"7":{},"13":{},"18":{},"21":{},"23":{},"28":{},"31":{},"36":{},"42":{},"48":{},"58":{},"59":{},"67":{},"69":{},"72":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"88":{},"93":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"114":{},"119":{},"123":{},"129":{},"134":{},"138":{},"139":{},"141":{},"143":{},"185":{},"186":{},"189":{},"190":{},"192":{},"193":{},"198":{},"201":{},"233":{},"238":{},"239":{}},"tags":{}}],["defaultprev",{"_index":909,"title":{},"content":{"55":{},"153":{}},"tags":{}}],["defin",{"_index":332,"title":{},"content":{"17":{},"48":{},"52":{},"77":{},"92":{},"129":{},"150":{},"170":{},"179":{},"186":{},"193":{}},"tags":{}}],["defineplugin",{"_index":1250,"title":{},"content":{"179":{}},"tags":{}}],["degre",{"_index":474,"title":{},"content":{"23":{},"54":{},"78":{},"105":{},"143":{},"152":{}},"tags":{}}],["dem",{"_index":896,"title":{},"content":{"52":{},"131":{},"150":{}},"tags":{}}],["demot",{"_index":1361,"title":{},"content":{"186":{}},"tags":{}}],["depend",{"_index":1026,"title":{"188":{}},"content":{"158":{},"169":{},"186":{},"187":{},"188":{},"192":{},"194":{},"195":{},"202":{},"210":{},"215":{},"217":{},"221":{},"231":{}},"tags":{}}],["deploy",{"_index":1236,"title":{},"content":{"179":{}},"tags":{}}],["deprec",{"_index":1043,"title":{"201":{}},"content":{"160":{},"194":{},"196":{},"201":{},"225":{}},"tags":{}}],["descend",{"_index":369,"title":{},"content":{"19":{},"94":{}},"tags":{}}],["describ",{"_index":412,"title":{},"content":{"77":{},"104":{},"160":{}},"tags":{}}],["descript",{"_index":15,"title":{},"content":{"1":{},"160":{}},"tags":{}}],["descriptor",{"_index":1610,"title":{},"content":{"225":{}},"tags":{}}],["design",{"_index":51,"title":{"2":{}},"content":{"1":{},"2":{},"28":{},"69":{},"198":{}},"tags":{}}],["desir",{"_index":363,"title":{},"content":{"19":{},"81":{},"94":{},"108":{}},"tags":{}}],["destroy",{"_index":1620,"title":{},"content":{"229":{}},"tags":{}}],["detail",{"_index":866,"title":{},"content":{"51":{},"55":{},"149":{},"153":{},"166":{},"190":{},"213":{},"221":{}},"tags":{}}],["dev",{"_index":1020,"title":{"158":{}},"content":{"158":{},"179":{}},"tags":{}}],["develop",{"_index":86,"title":{},"content":{"1":{},"77":{},"158":{},"163":{},"179":{},"191":{},"221":{}},"tags":{}}],["deviat",{"_index":166,"title":{},"content":{"2":{},"3":{}},"tags":{}}],["devic",{"_index":563,"title":{},"content":{"80":{},"107":{}},"tags":{}}],["dif",{"_index":330,"title":{},"content":{"17":{},"77":{},"92":{},"104":{},"225":{},"234":{}},"tags":{}}],["diff",{"_index":448,"title":{},"content":{"77":{},"104":{}},"tags":{}}],["differ",{"_index":200,"title":{},"content":{"3":{},"75":{},"102":{}},"tags":{}}],["dimens",{"_index":1602,"title":{},"content":{"225":{}},"tags":{}}],["direct",{"_index":953,"title":{},"content":{"96":{},"171":{},"191":{}},"tags":{}}],["directli",{"_index":190,"title":{},"content":{"3":{},"38":{},"55":{},"82":{},"99":{},"109":{},"153":{},"177":{},"211":{},"239":{}},"tags":{}}],["disabl",{"_index":239,"title":{},"content":{"28":{},"69":{},"81":{}},"tags":{}}],["discuss",{"_index":1420,"title":{},"content":{"191":{},"215":{}},"tags":{}}],["disencourag",{"_index":205,"title":{},"content":{"3":{}},"tags":{}}],["dispatch",{"_index":1297,"title":{},"content":{"181":{}},"tags":{}}],["dispatch({typ",{"_index":1299,"title":{},"content":{"181":{}},"tags":{}}],["display",{"_index":1146,"title":{"170":{}},"content":{"169":{}},"tags":{}}],["displaycontrolsdefault={fals",{"_index":942,"title":{},"content":{"61":{},"154":{}},"tags":{}}],["distanc",{"_index":822,"title":{},"content":{"42":{},"58":{},"123":{},"138":{}},"tags":{}}],["distort",{"_index":436,"title":{},"content":{"77":{}},"tags":{}}],["distribut",{"_index":1221,"title":{},"content":{"179":{}},"tags":{}}],["diverg",{"_index":1532,"title":{},"content":{"210":{}},"tags":{}}],["do",{"_index":195,"title":{},"content":{"3":{}},"tags":{}}],["doc",{"_index":1,"title":{},"content":{"1":{}},"tags":{}}],["docs/api",{"_index":1042,"title":{},"content":{"160":{}},"tags":{}}],["docs/upgrad",{"_index":1044,"title":{},"content":{"160":{}},"tags":{}}],["docs/what",{"_index":1047,"title":{},"content":{"160":{}},"tags":{}}],["document",{"_index":75,"title":{},"content":{"1":{},"51":{},"75":{},"102":{},"149":{},"160":{},"179":{},"186":{},"190":{},"215":{},"233":{},"239":{}},"tags":{}}],["dom",{"_index":267,"title":{},"content":{"7":{},"67":{},"167":{},"181":{}},"tags":{}}],["domain",{"_index":1247,"title":{},"content":{"179":{}},"tags":{}}],["don't",{"_index":1475,"title":{},"content":{"199":{}},"tags":{}}],["done",{"_index":1322,"title":{},"content":{"182":{}},"tags":{}}],["dotenv",{"_index":1231,"title":{},"content":{"179":{}},"tags":{}}],["doubl",{"_index":500,"title":{},"content":{"79":{},"106":{},"198":{}},"tags":{}}],["doubleclickzoom",{"_index":499,"title":{},"content":{"79":{},"106":{},"233":{}},"tags":{}}],["doubleclickzoomhandl",{"_index":502,"title":{},"content":{"79":{},"106":{}},"tags":{}}],["doubt",{"_index":388,"title":{},"content":{"75":{},"102":{}},"tags":{}}],["down",{"_index":149,"title":{},"content":{"2":{}},"tags":{}}],["download",{"_index":542,"title":{},"content":{"80":{},"107":{}},"tags":{}}],["drag",{"_index":504,"title":{},"content":{"23":{},"24":{},"79":{},"80":{},"106":{},"107":{},"143":{},"144":{},"181":{},"231":{}},"tags":{}}],["draggabl",{"_index":768,"title":{},"content":{"23":{},"24":{},"143":{},"144":{},"225":{}},"tags":{}}],["draggablepointsoverlay",{"_index":1471,"title":{},"content":{"199":{},"234":{}},"tags":{}}],["dragpan",{"_index":506,"title":{},"content":{"79":{},"106":{},"192":{},"233":{}},"tags":{}}],["dragpanhandl",{"_index":975,"title":{},"content":{"106":{}},"tags":{}}],["dragpanhandler.en",{"_index":508,"title":{},"content":{"79":{}},"tags":{}}],["dragrot",{"_index":503,"title":{},"content":{"79":{},"106":{},"192":{},"201":{},"234":{}},"tags":{}}],["dragrotatehandl",{"_index":505,"title":{},"content":{"79":{},"106":{}},"tags":{}}],["draw",{"_index":128,"title":{},"content":{"2":{},"61":{},"154":{},"211":{},"219":{}},"tags":{}}],["drawcontrol",{"_index":940,"title":{},"content":{"61":{},"154":{}},"tags":{}}],["drawcontrol(prop",{"_index":935,"title":{},"content":{"61":{},"154":{}},"tags":{}}],["drawcontrolprop",{"_index":936,"title":{},"content":{"61":{},"154":{}},"tags":{}}],["drawn",{"_index":547,"title":{},"content":{"80":{},"107":{},"167":{}},"tags":{}}],["drive",{"_index":99,"title":{},"content":{"2":{}},"tags":{}}],["drop",{"_index":1614,"title":{},"content":{"225":{}},"tags":{}}],["dure",{"_index":608,"title":{},"content":{"80":{},"107":{},"180":{},"204":{},"213":{}},"tags":{}}],["dynam",{"_index":341,"title":{},"content":{"18":{},"19":{},"42":{},"48":{},"81":{},"93":{},"94":{},"108":{},"123":{},"129":{},"166":{}},"tags":{}}],["e.g",{"_index":370,"title":{},"content":{"19":{},"94":{},"169":{},"179":{},"190":{},"207":{},"215":{}},"tags":{}}],["each",{"_index":76,"title":{},"content":{"1":{},"2":{},"12":{},"18":{},"42":{},"48":{},"80":{},"87":{},"93":{},"97":{},"107":{},"123":{},"129":{},"172":{},"209":{}},"tags":{}}],["earth",{"_index":418,"title":{},"content":{"77":{}},"tags":{}}],["eas",{"_index":1550,"title":{},"content":{"213":{},"217":{}},"tags":{}}],["easeto",{"_index":1619,"title":{},"content":{"229":{}},"tags":{}}],["ecosystem",{"_index":1128,"title":{},"content":{"168":{}},"tags":{}}],["edit",{"_index":1141,"title":{},"content":{"168":{}},"tags":{}}],["effort",{"_index":1406,"title":{},"content":{"190":{}},"tags":{}}],["element",{"_index":268,"title":{},"content":{"7":{},"18":{},"48":{},"67":{},"80":{},"93":{},"107":{},"129":{}},"tags":{}}],["element'",{"_index":771,"title":{},"content":{"23":{},"143":{}},"tags":{}}],["embed",{"_index":656,"title":{},"content":{"81":{},"108":{}},"tags":{}}],["embrac",{"_index":104,"title":{},"content":{"2":{}},"tags":{}}],["empir",{"_index":1207,"title":{},"content":{"207":{}},"tags":{}}],["empti",{"_index":408,"title":{},"content":{"77":{},"104":{},"190":{}},"tags":{}}],["enabl",{"_index":42,"title":{},"content":{"1":{},"77":{},"79":{},"81":{},"104":{},"106":{},"108":{},"168":{},"189":{},"192":{},"225":{},"233":{}},"tags":{}}],["encount",{"_index":989,"title":{},"content":{"108":{}},"tags":{}}],["end",{"_index":355,"title":{},"content":{"19":{},"24":{},"80":{},"94":{},"107":{},"144":{}},"tags":{}}],["endpoint",{"_index":1329,"title":{},"content":{"184":{},"186":{},"209":{},"210":{}},"tags":{}}],["ensur",{"_index":813,"title":{},"content":{"42":{},"123":{}},"tags":{}}],["enter",{"_index":550,"title":{},"content":{"80":{},"107":{}},"tags":{}}],["entir",{"_index":1514,"title":{},"content":{"203":{},"211":{}},"tags":{}}],["env",{"_index":1233,"title":{},"content":{"179":{}},"tags":{}}],["environ",{"_index":735,"title":{"158":{}},"content":{"81":{},"108":{},"169":{},"179":{}},"tags":{}}],["equal",{"_index":417,"title":{},"content":{"77":{}},"tags":{}}],["equalearth",{"_index":419,"title":{},"content":{"77":{}},"tags":{}}],["equirectangular",{"_index":422,"title":{},"content":{"77":{}},"tags":{}}],["equirectangular/pl",{"_index":420,"title":{},"content":{"77":{}},"tags":{}}],["equival",{"_index":708,"title":{},"content":{"23":{},"81":{},"143":{},"229":{}},"tags":{}}],["equivel",{"_index":188,"title":{},"content":{"3":{}},"tags":{}}],["error",{"_index":283,"title":{},"content":{"12":{},"55":{},"76":{},"80":{},"87":{},"107":{},"153":{},"186":{},"213":{}},"tags":{}}],["errorev",{"_index":558,"title":{},"content":{"55":{},"80":{},"107":{},"153":{}},"tags":{}}],["es6",{"_index":1661,"title":{},"content":{"239":{}},"tags":{}}],["esm",{"_index":1541,"title":{},"content":{"211":{}},"tags":{}}],["etc",{"_index":453,"title":{},"content":{"78":{},"79":{},"80":{},"105":{},"106":{},"107":{},"179":{},"187":{},"203":{},"211":{},"234":{},"239":{}},"tags":{}}],["event",{"_index":524,"title":{"55":{},"153":{}},"content":{"55":{},"79":{},"80":{},"81":{},"106":{},"107":{},"153":{},"169":{},"180":{},"190":{},"231":{},"233":{},"238":{}},"tags":{}}],["event.viewst",{"_index":609,"title":{},"content":{"80":{},"107":{}},"tags":{}}],["event.viewstate.bear",{"_index":625,"title":{},"content":{"80":{},"107":{}},"tags":{}}],["event.viewstate.pitch",{"_index":629,"title":{},"content":{"80":{},"107":{}},"tags":{}}],["event.viewstate.zoom",{"_index":621,"title":{},"content":{"80":{},"107":{}},"tags":{}}],["event:mapboxzoomev",{"_index":635,"title":{},"content":{"80":{},"107":{}},"tags":{}}],["eventrecognizeropt",{"_index":1409,"title":{},"content":{"190":{},"213":{}},"tags":{}}],["evt",{"_index":276,"title":{},"content":{"12":{},"24":{},"43":{},"80":{},"87":{},"107":{},"124":{},"144":{}},"tags":{}}],["evt.viewst",{"_index":1301,"title":{},"content":{"181":{}},"tags":{}}],["exager",{"_index":1013,"title":{},"content":{"134":{}},"tags":{}}],["exagger",{"_index":1010,"title":{},"content":{"131":{}},"tags":{}}],["exampl",{"_index":74,"title":{"176":{}},"content":{"1":{},"2":{},"3":{},"61":{},"77":{},"78":{},"80":{},"81":{},"82":{},"96":{},"105":{},"107":{},"108":{},"109":{},"154":{},"166":{},"167":{},"169":{},"170":{},"171":{},"174":{},"177":{},"180":{},"189":{},"190":{},"199":{},"205":{},"206":{},"207":{},"210":{},"213":{},"217":{},"219":{},"233":{},"234":{}},"tags":{}}],["exceed",{"_index":1153,"title":{},"content":{"169":{}},"tags":{}}],["execut",{"_index":113,"title":{},"content":{"2":{}},"tags":{}}],["exhaust",{"_index":387,"title":{},"content":{"75":{},"102":{}},"tags":{}}],["exist",{"_index":80,"title":{},"content":{"1":{},"19":{},"94":{},"159":{}},"tags":{}}],["expand",{"_index":1285,"title":{},"content":{"180":{},"233":{}},"tags":{}}],["expect",{"_index":1527,"title":{},"content":{"209":{}},"tags":{}}],["experi",{"_index":1558,"title":{},"content":{"213":{}},"tags":{}}],["experiment",{"_index":1424,"title":{},"content":{"192":{},"229":{},"233":{}},"tags":{}}],["experimental.mapcontrol",{"_index":1451,"title":{},"content":{"194":{}},"tags":{}}],["explicitli",{"_index":1357,"title":{},"content":{"186":{},"190":{},"195":{}},"tags":{}}],["export",{"_index":375,"title":{"189":{}},"content":{"74":{},"101":{},"192":{},"194":{},"198":{},"203":{},"210":{},"217":{}},"tags":{}}],["expos",{"_index":746,"title":{},"content":{"82":{},"109":{},"187":{},"190":{},"192":{},"210":{}},"tags":{}}],["extend",{"_index":947,"title":{},"content":{"62":{},"155":{}},"tags":{}}],["extern",{"_index":712,"title":{},"content":{"81":{},"181":{},"190":{}},"tags":{}}],["extrus",{"_index":876,"title":{},"content":{"52":{},"150":{}},"tags":{}}],["facilit",{"_index":758,"title":{},"content":{"38":{},"99":{}},"tags":{}}],["fade/transit",{"_index":555,"title":{},"content":{"80":{},"107":{}},"tags":{}}],["fall",{"_index":814,"title":{},"content":{"42":{},"123":{}},"tags":{}}],["fals",{"_index":443,"title":{},"content":{"23":{},"77":{},"81":{},"104":{},"108":{},"143":{},"190":{},"201":{}},"tags":{}}],["fast",{"_index":1366,"title":{},"content":{"187":{},"211":{}},"tags":{}}],["faster",{"_index":1594,"title":{},"content":{"221":{}},"tags":{}}],["favor",{"_index":1382,"title":{},"content":{"189":{}},"tags":{}}],["featur",{"_index":79,"title":{},"content":{"1":{},"47":{},"54":{},"55":{},"79":{},"80":{},"106":{},"107":{},"128":{},"152":{},"153":{},"159":{},"160":{},"166":{},"167":{},"168":{},"170":{},"181":{},"187":{},"191":{},"196":{},"221":{},"229":{},"233":{}},"tags":{}}],["featurecollect",{"_index":847,"title":{},"content":{"47":{},"128":{},"166":{},"181":{}},"tags":{}}],["feb",{"_index":1534,"title":{},"content":{"211":{}},"tags":{}}],["few",{"_index":1458,"title":{},"content":{"196":{},"201":{},"211":{}},"tags":{}}],["field",{"_index":568,"title":{},"content":{"53":{},"54":{},"55":{},"80":{},"97":{},"107":{},"151":{},"152":{},"153":{},"172":{},"181":{},"203":{}},"tags":{}}],["file",{"_index":988,"title":{},"content":{"108":{},"168":{},"177":{},"179":{}},"tags":{}}],["file(",{"_index":1477,"title":{},"content":{"199":{}},"tags":{}}],["fill",{"_index":316,"title":{},"content":{"16":{},"52":{},"91":{},"150":{}},"tags":{}}],["fillextrusionlayerspecif",{"_index":875,"title":{},"content":{"52":{},"150":{}},"tags":{}}],["filllay",{"_index":313,"title":{},"content":{"16":{},"91":{}},"tags":{}}],["filllayerspecif",{"_index":877,"title":{},"content":{"52":{},"150":{}},"tags":{}}],["filter",{"_index":318,"title":{},"content":{"16":{},"91":{}},"tags":{}}],["final",{"_index":657,"title":{},"content":{"81":{},"108":{}},"tags":{}}],["find",{"_index":1089,"title":{"182":{}},"content":{"174":{},"177":{},"193":{}},"tags":{}}],["fine",{"_index":1556,"title":{},"content":{"213":{}},"tags":{}}],["finger",{"_index":1552,"title":{},"content":{"213":{}},"tags":{}}],["fire",{"_index":574,"title":{},"content":{"80":{},"107":{},"225":{}},"tags":{}}],["first",{"_index":89,"title":{},"content":{"2":{},"7":{},"13":{},"25":{},"31":{},"36":{},"44":{},"59":{},"67":{},"72":{},"80":{},"88":{},"107":{},"108":{},"114":{},"119":{},"125":{},"134":{},"139":{},"145":{},"202":{},"209":{},"211":{}},"tags":{}}],["fitbound",{"_index":1479,"title":{"200":{}},"content":{"200":{},"211":{},"236":{}},"tags":{}}],["fitboundsopt",{"_index":294,"title":{},"content":{"13":{},"78":{},"88":{},"105":{}},"tags":{}}],["fitboundsoptions.maxzoom",{"_index":464,"title":{},"content":{"78":{},"105":{}},"tags":{}}],["fitboundsoptions.minzoom",{"_index":463,"title":{},"content":{"78":{},"105":{}},"tags":{}}],["fitboundsoptions.offset",{"_index":461,"title":{},"content":{"78":{},"105":{}},"tags":{}}],["fitboundsoptions.pad",{"_index":465,"title":{},"content":{"78":{},"105":{}},"tags":{}}],["flat/ortograph",{"_index":1660,"title":{},"content":{"239":{}},"tags":{}}],["flow",{"_index":156,"title":{},"content":{"2":{},"206":{},"213":{}},"tags":{}}],["flyto",{"_index":612,"title":{},"content":{"80":{},"107":{},"211":{},"229":{}},"tags":{}}],["flytointerpol",{"_index":1392,"title":{},"content":{"189":{},"219":{}},"tags":{}}],["focus",{"_index":1136,"title":{},"content":{"168":{}},"tags":{}}],["focusafteropen",{"_index":831,"title":{},"content":{"44":{},"125":{}},"tags":{}}],["fog",{"_index":402,"title":{},"content":{"52":{},"77":{},"184":{}},"tags":{}}],["fogspecif",{"_index":868,"title":{},"content":{"52":{},"184":{}},"tags":{}}],["folder",{"_index":1156,"title":{},"content":{"169":{}},"tags":{}}],["follow",{"_index":256,"title":{},"content":{"13":{},"18":{},"31":{},"36":{},"48":{},"50":{},"53":{},"54":{},"55":{},"72":{},"81":{},"88":{},"93":{},"108":{},"114":{},"119":{},"129":{},"134":{},"148":{},"151":{},"152":{},"153":{},"161":{},"179":{},"180":{},"181":{},"184":{},"190":{},"200":{},"207":{}},"tags":{}}],["forc",{"_index":444,"title":{},"content":{"77":{},"104":{}},"tags":{}}],["forese",{"_index":1166,"title":{},"content":{"170":{}},"tags":{}}],["fork",{"_index":35,"title":{},"content":{"1":{},"188":{}},"tags":{}}],["format",{"_index":1135,"title":{},"content":{"168":{}},"tags":{}}],["found",{"_index":1063,"title":{},"content":{"161":{}},"tags":{}}],["foundat",{"_index":1068,"title":{},"content":{"162":{}},"tags":{}}],["frame",{"_index":549,"title":{},"content":{"80":{},"107":{},"181":{}},"tags":{}}],["framework",{"_index":1130,"title":{},"content":{"168":{},"233":{}},"tags":{}}],["francisco",{"_index":1117,"title":{},"content":{"166":{}},"tags":{}}],["free",{"_index":28,"title":{},"content":{"1":{},"169":{},"188":{}},"tags":{}}],["frequent",{"_index":690,"title":{"180":{}},"content":{"81":{},"108":{},"199":{}},"tags":{}}],["front",{"_index":1114,"title":{},"content":{"166":{}},"tags":{}}],["full",{"_index":270,"title":{},"content":{"7":{},"61":{},"67":{},"77":{},"96":{},"104":{},"154":{},"167":{},"171":{},"205":{},"206":{},"209":{},"233":{}},"tags":{}}],["fulli",{"_index":103,"title":{},"content":{"2":{},"3":{},"187":{},"209":{}},"tags":{}}],["fullscreen",{"_index":272,"title":{},"content":{"8":{},"68":{}},"tags":{}}],["fullscreencontrol",{"_index":263,"title":{"4":{},"64":{}},"content":{"4":{},"64":{},"223":{}},"tags":{}}],["function",{"_index":225,"title":{"200":{}},"content":{"4":{},"9":{},"14":{},"16":{},"21":{},"26":{},"28":{},"33":{},"38":{},"40":{},"45":{},"47":{},"56":{},"61":{},"64":{},"69":{},"74":{},"81":{},"82":{},"84":{},"89":{},"91":{},"96":{},"99":{},"101":{},"108":{},"109":{},"111":{},"116":{},"121":{},"126":{},"128":{},"131":{},"136":{},"141":{},"146":{},"154":{},"166":{},"170":{},"171":{},"176":{},"181":{},"186":{},"192":{},"200":{},"205":{},"206":{},"207":{},"209":{},"213":{}},"tags":{}}],["further",{"_index":1360,"title":{},"content":{"186":{}},"tags":{}}],["futur",{"_index":1167,"title":{},"content":{"170":{},"186":{},"192":{},"203":{},"217":{}},"tags":{}}],["gener",{"_index":203,"title":{},"content":{"3":{},"159":{},"169":{},"180":{},"186":{}},"tags":{}}],["gentli",{"_index":1457,"title":{},"content":{"196":{}},"tags":{}}],["geocod",{"_index":1545,"title":{},"content":{"211":{}},"tags":{}}],["geocontrolref",{"_index":304,"title":{},"content":{"14":{},"89":{}},"tags":{}}],["geocontrolref.curr",{"_index":309,"title":{},"content":{"14":{},"89":{}},"tags":{}}],["geocontrolref.current?.trigg",{"_index":308,"title":{},"content":{"14":{},"89":{}},"tags":{}}],["geofenc",{"_index":1202,"title":{},"content":{"207":{}},"tags":{}}],["geojson",{"_index":848,"title":{},"content":{"47":{},"52":{},"54":{},"128":{},"150":{},"152":{},"166":{},"168":{},"207":{}},"tags":{}}],["geojsonsourcespecif",{"_index":889,"title":{},"content":{"52":{},"150":{}},"tags":{}}],["geoloc",{"_index":279,"title":{},"content":{"12":{},"15":{},"87":{},"90":{}},"tags":{}}],["geolocatecontrol",{"_index":273,"title":{"9":{},"84":{}},"content":{"9":{},"12":{},"13":{},"14":{},"55":{},"84":{},"87":{},"88":{},"89":{},"153":{},"210":{},"213":{},"217":{},"223":{}},"tags":{}}],["geolocateerrorev",{"_index":282,"title":{},"content":{"12":{},"55":{},"87":{},"153":{}},"tags":{}}],["geolocateev",{"_index":287,"title":{},"content":{"12":{},"55":{},"87":{},"153":{}},"tags":{}}],["geolocateresultev",{"_index":277,"title":{},"content":{"12":{},"55":{},"87":{},"153":{}},"tags":{}}],["geolocationcoordin",{"_index":919,"title":{},"content":{"55":{},"153":{}},"tags":{}}],["geolocationpositionerror",{"_index":925,"title":{},"content":{"55":{},"153":{}},"tags":{}}],["geometri",{"_index":849,"title":{},"content":{"47":{},"128":{},"166":{},"168":{}},"tags":{}}],["geospati",{"_index":96,"title":{},"content":{"2":{},"168":{},"233":{}},"tags":{}}],["gestur",{"_index":1553,"title":{},"content":{"213":{},"233":{}},"tags":{}}],["get",{"_index":683,"title":{},"content":{"81":{},"108":{}},"tags":{}}],["getcursor",{"_index":1405,"title":{},"content":{"190":{}},"tags":{}}],["getmap",{"_index":194,"title":{},"content":{"3":{},"82":{},"109":{}},"tags":{}}],["gist",{"_index":1241,"title":{},"content":{"179":{}},"tags":{}}],["git",{"_index":1027,"title":{},"content":{"158":{}},"tags":{}}],["github",{"_index":1049,"title":{},"content":{"160":{},"164":{},"179":{}},"tags":{}}],["gitignor",{"_index":1234,"title":{},"content":{"179":{}},"tags":{}}],["give",{"_index":346,"title":{},"content":{"18":{},"48":{},"93":{},"129":{}},"tags":{}}],["given",{"_index":445,"title":{},"content":{"77":{},"78":{},"104":{},"105":{}},"tags":{}}],["gl",{"_index":8,"title":{"209":{},"210":{},"211":{},"212":{},"214":{},"216":{},"218":{},"220":{},"222":{},"224":{},"226":{},"228":{},"230":{},"232":{},"237":{},"239":{},"240":{}},"content":{"1":{},"2":{},"3":{},"14":{},"26":{},"45":{},"47":{},"61":{},"74":{},"81":{},"89":{},"108":{},"126":{},"131":{},"146":{},"154":{},"158":{},"161":{},"163":{},"164":{},"168":{},"169":{},"170":{},"175":{},"176":{},"177":{},"179":{},"180":{},"184":{},"185":{},"186":{},"187":{},"188":{},"191":{},"193":{},"195":{},"196":{},"197":{},"199":{},"201":{},"202":{},"203":{},"204":{},"209":{},"210":{},"211":{},"215":{},"217":{},"219":{},"221":{},"223":{},"229":{},"231":{},"233":{},"234":{},"238":{},"239":{}},"tags":{}}],["gl'",{"_index":218,"title":{},"content":{"4":{},"9":{},"21":{},"28":{},"33":{},"40":{},"56":{},"64":{},"69":{},"74":{},"81":{},"84":{},"101":{},"108":{},"111":{},"116":{},"121":{},"131":{},"136":{},"141":{},"215":{}},"tags":{}}],["gl.css",{"_index":224,"title":{},"content":{"4":{},"9":{},"16":{},"21":{},"28":{},"33":{},"40":{},"47":{},"56":{},"64":{},"69":{},"74":{},"84":{},"91":{},"101":{},"111":{},"116":{},"121":{},"128":{},"131":{},"136":{},"141":{},"176":{},"177":{}},"tags":{}}],["gl.j",{"_index":983,"title":{},"content":{"108":{}},"tags":{}}],["gl.js\">=3.5.0",{"_index":1520,"title":{},"content":{"209":{}},"tags":{}}],["gl>=4",{"_index":1521,"title":{},"content":{"209":{}},"tags":{}}],["gl@1.x",{"_index":1147,"title":{},"content":{"169":{},"170":{}},"tags":{}}],["gl@4.7.1/dist/maplibr",{"_index":982,"title":{},"content":{"108":{}},"tags":{}}],["gl@<3.5.0",{"_index":1331,"title":{},"content":{"184":{}},"tags":{}}],["gl@<=3",{"_index":1332,"title":{},"content":{"184":{}},"tags":{}}],["gl@/dist/maplibr",{"_index":1110,"title":{},"content":{"177":{}},"tags":{}}],["gl@>=2.0.0",{"_index":1143,"title":{},"content":{"169":{}},"tags":{}}],["gl@>=3.5.0",{"_index":1330,"title":{},"content":{"184":{}},"tags":{}}],["glyph",{"_index":673,"title":{},"content":{"81":{}},"tags":{}}],["go",{"_index":159,"title":{},"content":{"2":{}},"tags":{}}],["good",{"_index":1469,"title":{},"content":{"198":{}},"tags":{}}],["govern",{"_index":1065,"title":{"162":{}},"content":{"163":{},"164":{}},"tags":{}}],["granular",{"_index":1643,"title":{},"content":{"233":{}},"tags":{}}],["graphic",{"_index":134,"title":{},"content":{"2":{}},"tags":{}}],["guid",{"_index":87,"title":{"183":{}},"content":{"1":{},"209":{},"210":{},"211":{},"215":{},"225":{},"236":{}},"tags":{}}],["guide.md",{"_index":1045,"title":{},"content":{"160":{}},"tags":{}}],["guidelin",{"_index":1061,"title":{},"content":{"161":{},"164":{}},"tags":{}}],["handl",{"_index":1189,"title":{},"content":{"189":{},"204":{},"231":{},"233":{}},"tags":{}}],["handler",{"_index":495,"title":{"79":{},"106":{}},"content":{"189":{},"238":{}},"tags":{}}],["happen",{"_index":533,"title":{},"content":{"79":{},"106":{}},"tags":{}}],["hard",{"_index":1454,"title":{},"content":{"195":{},"202":{}},"tags":{}}],["head",{"_index":1103,"title":{},"content":{"177":{},"191":{}},"tags":{}}],["header",{"_index":1176,"title":{},"content":{"170":{}},"tags":{}}],["heatmap",{"_index":879,"title":{},"content":{"52":{},"150":{}},"tags":{}}],["heatmaplayerspecif",{"_index":878,"title":{},"content":{"52":{},"150":{}},"tags":{}}],["hebrew",{"_index":705,"title":{},"content":{"81":{},"108":{}},"tags":{}}],["height",{"_index":379,"title":{},"content":{"74":{},"76":{},"101":{},"103":{},"176":{},"190":{},"198":{},"200":{},"225":{},"233":{},"234":{}},"tags":{}}],["height={400",{"_index":1468,"title":{},"content":{"198":{}},"tags":{}}],["help",{"_index":45,"title":{},"content":{"1":{},"17":{},"92":{},"179":{},"229":{}},"tags":{}}],["helper",{"_index":372,"title":{},"content":{"19":{},"94":{}},"tags":{}}],["here",{"_index":5,"title":{},"content":{"1":{},"40":{},"61":{},"96":{},"121":{},"154":{},"161":{},"167":{},"171":{},"186":{},"205":{},"206":{},"234":{}},"tags":{}}],["hidden",{"_index":751,"title":{},"content":{"82":{},"109":{}},"tags":{}}],["high",{"_index":1129,"title":{},"content":{"168":{},"181":{}},"tags":{}}],["higher",{"_index":1502,"title":{},"content":{"202":{}},"tags":{}}],["highlight",{"_index":1549,"title":{"213":{},"217":{},"219":{},"223":{},"225":{},"227":{},"229":{},"231":{},"233":{},"238":{}},"content":{},"tags":{}}],["hillshad",{"_index":881,"title":{},"content":{"52":{},"150":{}},"tags":{}}],["hillshadelayerspecif",{"_index":880,"title":{},"content":{"52":{},"150":{}},"tags":{}}],["hit",{"_index":860,"title":{},"content":{"48":{},"129":{}},"tags":{}}],["hook",{"_index":147,"title":{},"content":{"2":{},"14":{},"26":{},"45":{},"61":{},"62":{},"82":{},"89":{},"96":{},"97":{},"109":{},"126":{},"146":{},"154":{},"155":{},"171":{},"172":{}},"tags":{}}],["host",{"_index":33,"title":{},"content":{"1":{},"81":{},"108":{},"170":{},"215":{}},"tags":{}}],["hover",{"_index":1407,"title":{},"content":{"190":{}},"tags":{}}],["href='https://api.tiles.mapbox.com/mapbox",{"_index":1104,"title":{},"content":{"177":{}},"tags":{}}],["href='https://unpkg.com/maplibr",{"_index":1109,"title":{},"content":{"177":{}},"tags":{}}],["html",{"_index":1121,"title":{},"content":{"167":{},"231":{}},"tags":{}}],["htmloverlay",{"_index":1387,"title":{},"content":{"189":{},"203":{},"233":{},"239":{}},"tags":{}}],["http://localhost",{"_index":1239,"title":{},"content":{"179":{}},"tags":{}}],["https://a.tile.openstreetmap.org/{z}/{x}/{y}.png",{"_index":1001,"title":{},"content":{"131":{}},"tags":{}}],["https://api.mapbox.com/mapbox",{"_index":698,"title":{},"content":{"81":{}},"tags":{}}],["https://demotiles.maplibre.org/terrain",{"_index":1008,"title":{},"content":{"131":{}},"tags":{}}],["https://maplibre.org/maplibr",{"_index":996,"title":{},"content":{"131":{}},"tags":{}}],["https://mycompany.com",{"_index":1244,"title":{},"content":{"179":{}},"tags":{}}],["hundr",{"_index":1307,"title":{},"content":{"181":{}},"tags":{}}],["icon",{"_index":678,"title":{},"content":{"81":{},"108":{},"181":{}},"tags":{}}],["icontrol",{"_index":862,"title":{},"content":{"51":{},"62":{},"149":{},"155":{}},"tags":{}}],["id",{"_index":266,"title":{},"content":{"7":{},"16":{},"18":{},"19":{},"47":{},"48":{},"67":{},"76":{},"91":{},"93":{},"94":{},"97":{},"103":{},"128":{},"129":{},"131":{},"166":{},"172":{},"181":{}},"tags":{}}],["id(",{"_index":521,"title":{},"content":{"79":{},"106":{}},"tags":{}}],["id=\"mi",{"_index":855,"title":{},"content":{"47":{},"128":{},"166":{}},"tags":{}}],["id=\"mymapa",{"_index":958,"title":{},"content":{"96":{},"171":{}},"tags":{}}],["id=\"mymapb",{"_index":959,"title":{},"content":{"96":{},"171":{}},"tags":{}}],["id=\"vehicl",{"_index":1316,"title":{},"content":{"181":{}},"tags":{}}],["ideal",{"_index":1283,"title":{},"content":{"180":{}},"tags":{}}],["ident",{"_index":336,"title":{"18":{},"93":{}},"content":{"18":{},"48":{},"93":{},"129":{},"210":{},"221":{}},"tags":{}}],["identifi",{"_index":348,"title":{},"content":{"18":{},"48":{},"93":{},"129":{},"169":{}},"tags":{}}],["idl",{"_index":551,"title":{},"content":{"80":{},"107":{}},"tags":{}}],["ignor",{"_index":454,"title":{},"content":{"78":{},"105":{}},"tags":{}}],["imag",{"_index":676,"title":{},"content":{"52":{},"81":{},"108":{},"150":{},"168":{},"181":{}},"tags":{}}],["imagesourcespecif",{"_index":892,"title":{},"content":{"52":{},"150":{}},"tags":{}}],["img",{"_index":766,"title":{},"content":{"21":{},"141":{}},"tags":{}}],["immedi",{"_index":366,"title":{},"content":{"19":{},"94":{}},"tags":{}}],["immut",{"_index":407,"title":{},"content":{"77":{},"104":{},"195":{},"225":{}},"tags":{}}],["immutable.j",{"_index":1450,"title":{},"content":{"194":{},"195":{}},"tags":{}}],["imper",{"_index":109,"title":{},"content":{"2":{},"14":{},"26":{},"45":{},"82":{},"89":{},"109":{},"126":{},"146":{},"192":{},"211":{}},"tags":{}}],["imperi",{"_index":842,"title":{},"content":{"58":{},"138":{}},"tags":{}}],["implement",{"_index":864,"title":{},"content":{"51":{},"149":{},"167":{},"189":{},"204":{}},"tags":{}}],["import",{"_index":220,"title":{},"content":{"4":{},"9":{},"14":{},"16":{},"21":{},"26":{},"28":{},"33":{},"38":{},"40":{},"45":{},"47":{},"50":{},"56":{},"61":{},"64":{},"69":{},"74":{},"76":{},"81":{},"82":{},"84":{},"89":{},"91":{},"96":{},"99":{},"101":{},"108":{},"109":{},"111":{},"116":{},"121":{},"126":{},"128":{},"131":{},"136":{},"141":{},"146":{},"148":{},"154":{},"166":{},"171":{},"176":{},"177":{},"181":{},"184":{},"186":{},"189":{},"195":{},"200":{},"203":{},"205":{},"206":{},"207":{},"211":{},"215":{},"217":{},"239":{}},"tags":{}}],["import('mapbox",{"_index":652,"title":{},"content":{"81":{}},"tags":{}}],["import('maplibr",{"_index":653,"title":{},"content":{"81":{},"108":{},"186":{}},"tags":{}}],["improv",{"_index":1310,"title":{},"content":{"181":{},"233":{}},"tags":{}}],["includ",{"_index":647,"title":{},"content":{"80":{},"107":{},"168":{},"170":{},"177":{},"195":{},"198":{},"225":{},"229":{}},"tags":{}}],["index.html",{"_index":664,"title":{},"content":{"81":{},"108":{},"177":{}},"tags":{}}],["indic",{"_index":773,"title":{},"content":{"23":{},"42":{},"123":{},"143":{}},"tags":{}}],["individu",{"_index":1516,"title":{},"content":{"203":{}},"tags":{}}],["inertia",{"_index":1428,"title":{},"content":{"192":{},"213":{}},"tags":{}}],["inform",{"_index":644,"title":{},"content":{"38":{},"80":{},"99":{},"107":{},"195":{},"203":{},"234":{},"236":{}},"tags":{}}],["initi",{"_index":450,"title":{},"content":{"78":{},"81":{},"105":{},"108":{},"180":{},"204":{},"240":{}},"tags":{}}],["initialviewst",{"_index":230,"title":{},"content":{"4":{},"9":{},"16":{},"21":{},"28":{},"33":{},"40":{},"47":{},"56":{},"61":{},"64":{},"69":{},"74":{},"78":{},"81":{},"84":{},"91":{},"101":{},"105":{},"108":{},"111":{},"116":{},"121":{},"128":{},"131":{},"136":{},"141":{},"154":{},"166":{},"176":{},"190":{},"205":{}},"tags":{}}],["inject",{"_index":1111,"title":{},"content":{"166":{}},"tags":{}}],["inlin",{"_index":335,"title":{},"content":{"17":{},"48":{},"92":{},"129":{},"213":{}},"tags":{}}],["input",{"_index":494,"title":{"79":{},"106":{}},"content":{"55":{},"153":{},"189":{},"204":{}},"tags":{}}],["insert",{"_index":351,"title":{},"content":{"19":{},"94":{}},"tags":{}}],["insid",{"_index":371,"title":{},"content":{"19":{},"80":{},"94":{},"97":{},"107":{},"172":{},"207":{}},"tags":{}}],["instal",{"_index":1091,"title":{"175":{}},"content":{"175":{},"186":{},"188":{},"207":{},"210":{}},"tags":{}}],["instanc",{"_index":191,"title":{},"content":{"3":{},"14":{},"23":{},"26":{},"45":{},"51":{},"62":{},"81":{},"82":{},"89":{},"108":{},"109":{},"126":{},"143":{},"146":{},"149":{},"155":{},"200":{},"210":{}},"tags":{}}],["instanti",{"_index":727,"title":{},"content":{"81":{},"108":{}},"tags":{}}],["instantli",{"_index":1646,"title":{},"content":{"233":{}},"tags":{}}],["instead",{"_index":446,"title":{},"content":{"77":{},"104":{},"189":{},"190":{},"194":{},"210":{},"217":{},"221":{}},"tags":{}}],["instruct",{"_index":110,"title":{},"content":{"2":{}},"tags":{}}],["integr",{"_index":719,"title":{},"content":{"81":{},"179":{}},"tags":{}}],["intend",{"_index":928,"title":{},"content":{"55":{},"153":{},"159":{},"160":{}},"tags":{}}],["interact",{"_index":23,"title":{},"content":{"1":{},"2":{},"79":{},"80":{},"106":{},"107":{},"181":{},"190":{},"192":{},"194":{},"204":{},"211":{},"213":{},"225":{},"229":{},"231":{},"233":{},"234":{}},"tags":{}}],["interactivelayerid",{"_index":520,"title":{},"content":{"79":{},"80":{},"106":{},"107":{},"194":{},"225":{}},"tags":{}}],["interactivemap",{"_index":1379,"title":{},"content":{"189":{},"198":{},"223":{},"225":{},"229":{},"233":{},"234":{}},"tags":{}}],["interactivemap'",{"_index":1440,"title":{},"content":{"193":{},"194":{}},"tags":{}}],["interest",{"_index":1083,"title":{},"content":{"164":{}},"tags":{}}],["interfac",{"_index":210,"title":{},"content":{"3":{},"55":{},"81":{},"108":{},"153":{},"236":{}},"tags":{}}],["intern",{"_index":681,"title":{},"content":{"81":{},"108":{},"235":{}},"tags":{}}],["introduc",{"_index":1441,"title":{},"content":{"193":{},"197":{},"202":{}},"tags":{}}],["introduct",{"_index":0,"title":{"1":{}},"content":{},"tags":{}}],["invok",{"_index":1188,"title":{},"content":{"204":{}},"tags":{}}],["isdrag",{"_index":1650,"title":{},"content":{"235":{}},"tags":{}}],["ishov",{"_index":1649,"title":{},"content":{"235":{}},"tags":{}}],["ispan",{"_index":1611,"title":{},"content":{"225":{}},"tags":{}}],["isrot",{"_index":1613,"title":{},"content":{"225":{}},"tags":{}}],["issourceload",{"_index":914,"title":{},"content":{"55":{},"153":{}},"tags":{}}],["issu",{"_index":1052,"title":{},"content":{"160":{},"211":{},"229":{}},"tags":{}}],["iszoom",{"_index":1612,"title":{},"content":{"225":{}},"tags":{}}],["it'",{"_index":168,"title":{},"content":{"2":{},"62":{},"155":{},"179":{},"181":{},"186":{},"188":{},"217":{}},"tags":{}}],["items.map(rendermark",{"_index":1279,"title":{},"content":{"180":{}},"tags":{}}],["items.map(renderrow",{"_index":1281,"title":{},"content":{"180":{}},"tags":{}}],["itself",{"_index":1142,"title":{},"content":{"169":{}},"tags":{}}],["jan",{"_index":1518,"title":{},"content":{"209":{},"212":{},"216":{},"237":{}},"tags":{}}],["januari",{"_index":1618,"title":{},"content":{"228":{}},"tags":{}}],["javascript",{"_index":22,"title":{},"content":{"1":{},"81":{},"108":{}},"tags":{}}],["js",{"_index":16,"title":{},"content":{"1":{},"3":{},"108":{},"197":{},"209":{},"215":{},"219":{},"221":{},"223":{},"233":{},"234":{}},"tags":{}}],["js'",{"_index":1591,"title":{},"content":{"221":{}},"tags":{}}],["js/docs/examples/3d",{"_index":997,"title":{},"content":{"131":{}},"tags":{}}],["js/plugins/mapbox",{"_index":699,"title":{},"content":{"81":{},"185":{}},"tags":{}}],["js/v2.4.0/mapbox",{"_index":667,"title":{},"content":{"81":{}},"tags":{}}],["js/v/mapbox",{"_index":1105,"title":{},"content":{"177":{}},"tags":{}}],["json",{"_index":409,"title":{},"content":{"52":{},"77":{},"104":{},"150":{}},"tags":{}}],["json.stringify(process.env.node_env",{"_index":1254,"title":{},"content":{"179":{}},"tags":{}}],["jsx",{"_index":340,"title":{},"content":{"18":{},"19":{},"48":{},"93":{},"94":{},"129":{}},"tags":{}}],["juli",{"_index":1616,"title":{},"content":{"226":{},"232":{}},"tags":{}}],["june",{"_index":1529,"title":{},"content":{"210":{}},"tags":{}}],["keep",{"_index":1339,"title":{},"content":{"185":{},"203":{}},"tags":{}}],["key",{"_index":345,"title":{},"content":{"18":{},"48":{},"54":{},"80":{},"93":{},"97":{},"107":{},"129":{},"152":{},"172":{}},"tags":{}}],["key={vehicle.id",{"_index":1303,"title":{},"content":{"181":{}},"tags":{}}],["keyboard",{"_index":509,"title":{},"content":{"79":{},"106":{},"213":{},"229":{},"231":{}},"tags":{}}],["keyboardhandl",{"_index":511,"title":{},"content":{"79":{},"106":{}},"tags":{}}],["know",{"_index":1320,"title":{},"content":{"182":{}},"tags":{}}],["label",{"_index":1053,"title":{},"content":{"160":{},"191":{},"217":{}},"tags":{}}],["label=\"list",{"_index":1276,"title":{},"content":{"180":{}},"tags":{}}],["label=\"map",{"_index":1274,"title":{},"content":{"180":{}},"tags":{}}],["lag",{"_index":1308,"title":{},"content":{"181":{}},"tags":{}}],["lambert",{"_index":423,"title":{},"content":{"77":{}},"tags":{}}],["lambertconformalcon",{"_index":424,"title":{},"content":{"77":{}},"tags":{}}],["landus",{"_index":317,"title":{},"content":{"16":{},"91":{}},"tags":{}}],["landuse_park",{"_index":315,"title":{},"content":{"16":{},"91":{}},"tags":{}}],["languag",{"_index":706,"title":{},"content":{"81":{},"108":{}},"tags":{}}],["larg",{"_index":1131,"title":{},"content":{"168":{}},"tags":{}}],["last",{"_index":27,"title":{},"content":{"1":{},"80":{},"107":{}},"tags":{}}],["lat",{"_index":1324,"title":{},"content":{"182":{}},"tags":{}}],["later",{"_index":361,"title":{},"content":{"19":{},"94":{}},"tags":{}}],["latest",{"_index":1055,"title":{},"content":{"160":{},"170":{},"192":{},"195":{},"221":{},"233":{},"238":{}},"tags":{}}],["latitud",{"_index":233,"title":{},"content":{"4":{},"9":{},"16":{},"21":{},"23":{},"28":{},"33":{},"40":{},"42":{},"47":{},"54":{},"56":{},"61":{},"64":{},"69":{},"74":{},"78":{},"80":{},"84":{},"91":{},"101":{},"105":{},"107":{},"111":{},"116":{},"121":{},"123":{},"128":{},"131":{},"136":{},"141":{},"143":{},"152":{},"154":{},"166":{},"176":{},"200":{},"203":{},"205":{},"206":{},"207":{},"227":{},"233":{},"234":{}},"tags":{}}],["latitude={37.8",{"_index":792,"title":{},"content":{"26":{},"45":{},"126":{},"146":{}},"tags":{}}],["latitude={40",{"_index":764,"title":{},"content":{"21":{},"40":{},"121":{},"141":{}},"tags":{}}],["latitude={vehicle.coordinates[1",{"_index":1305,"title":{},"content":{"181":{}},"tags":{}}],["layer",{"_index":311,"title":{"16":{},"91":{},"166":{}},"content":{"16":{},"17":{},"18":{},"19":{},"47":{},"51":{},"52":{},"54":{},"79":{},"80":{},"91":{},"92":{},"93":{},"94":{},"106":{},"107":{},"128":{},"131":{},"149":{},"150":{},"152":{},"166":{},"181":{},"184":{},"192":{},"194":{},"199":{},"219":{},"225":{}},"tags":{}}],["layer(",{"_index":522,"title":{},"content":{"79":{},"80":{},"106":{},"107":{}},"tags":{}}],["layer.t",{"_index":374,"title":{},"content":{"20":{},"95":{}},"tags":{}}],["layerref.getlay",{"_index":1437,"title":{},"content":{"192":{}},"tags":{}}],["layerspecif",{"_index":1335,"title":{},"content":{"184":{}},"tags":{}}],["layerstyl",{"_index":850,"title":{},"content":{"47":{},"128":{},"166":{}},"tags":{}}],["layout",{"_index":391,"title":{"76":{},"103":{}},"content":{"180":{},"181":{}},"tags":{}}],["lazi",{"_index":710,"title":{},"content":{"81":{},"108":{}},"tags":{}}],["lead",{"_index":214,"title":{},"content":{"3":{},"82":{},"109":{},"229":{}},"tags":{}}],["leak",{"_index":1161,"title":{},"content":{"169":{},"229":{}},"tags":{}}],["leav",{"_index":581,"title":{},"content":{"80":{},"107":{}},"tags":{}}],["left",{"_index":258,"title":{},"content":{"7":{},"13":{},"23":{},"31":{},"36":{},"42":{},"53":{},"59":{},"61":{},"62":{},"67":{},"72":{},"81":{},"88":{},"108":{},"114":{},"119":{},"123":{},"134":{},"139":{},"143":{},"151":{},"154":{},"155":{}},"tags":{}}],["legaci",{"_index":1096,"title":{},"content":{"176":{},"184":{},"209":{},"211":{}},"tags":{}}],["length",{"_index":840,"title":{},"content":{"58":{},"138":{}},"tags":{}}],["less",{"_index":1470,"title":{},"content":{"199":{}},"tags":{}}],["level",{"_index":468,"title":{},"content":{"54":{},"78":{},"80":{},"105":{},"107":{},"152":{},"169":{}},"tags":{}}],["librari",{"_index":14,"title":{"168":{}},"content":{"1":{},"3":{},"54":{},"75":{},"81":{},"102":{},"108":{},"152":{},"168":{},"169":{},"177":{},"184":{},"186":{},"187":{},"188":{},"190":{},"191":{},"199":{},"200":{},"209":{},"211":{},"213":{},"217":{},"219":{},"234":{}},"tags":{}}],["library'",{"_index":390,"title":{},"content":{"75":{},"102":{}},"tags":{}}],["licens",{"_index":1564,"title":{},"content":{"215":{}},"tags":{}}],["light",{"_index":405,"title":{},"content":{"52":{},"77":{},"104":{},"150":{},"184":{}},"tags":{}}],["lightspecif",{"_index":869,"title":{},"content":{"52":{},"150":{},"184":{}},"tags":{}}],["lightweight",{"_index":1367,"title":{},"content":{"187":{},"211":{}},"tags":{}}],["limit",{"_index":174,"title":{"3":{}},"content":{"197":{},"211":{}},"tags":{}}],["line",{"_index":883,"title":{},"content":{"52":{},"150":{},"179":{}},"tags":{}}],["linearinterpol",{"_index":1391,"title":{},"content":{"189":{}},"tags":{}}],["linelayerspecif",{"_index":882,"title":{},"content":{"52":{},"150":{}},"tags":{}}],["link",{"_index":1050,"title":{},"content":{"160":{},"177":{},"233":{}},"tags":{}}],["list",{"_index":382,"title":{},"content":{"75":{},"81":{},"102":{},"108":{},"164":{},"170":{},"177":{},"186":{},"188":{},"195":{},"209":{},"215":{}},"tags":{}}],["listen",{"_index":526,"title":{},"content":{"79":{},"106":{}},"tags":{}}],["live",{"_index":1647,"title":{},"content":{"234":{}},"tags":{}}],["lng",{"_index":1325,"title":{},"content":{"182":{}},"tags":{}}],["lnglat",{"_index":899,"title":{},"content":{"54":{},"55":{},"152":{},"153":{}},"tags":{}}],["lnglatbound",{"_index":901,"title":{},"content":{"54":{},"55":{},"152":{},"153":{}},"tags":{}}],["lnglatboundslik",{"_index":459,"title":{},"content":{"54":{},"78":{},"105":{},"152":{}},"tags":{}}],["lnglatlik",{"_index":900,"title":{},"content":{"54":{},"152":{}},"tags":{}}],["load",{"_index":307,"title":{},"content":{"14":{},"80":{},"81":{},"89":{},"107":{},"108":{},"169":{},"185":{},"221":{}},"tags":{}}],["loader",{"_index":1134,"title":{},"content":{"168":{}},"tags":{}}],["loaders.gl",{"_index":1133,"title":{},"content":{"168":{}},"tags":{}}],["local",{"_index":1023,"title":{},"content":{"158":{},"179":{},"191":{}},"tags":{}}],["locat",{"_index":528,"title":{},"content":{"21":{},"23":{},"42":{},"55":{},"79":{},"106":{},"123":{},"141":{},"143":{},"153":{},"170":{}},"tags":{}}],["lock",{"_index":290,"title":{},"content":{"12":{},"87":{},"221":{}},"tags":{}}],["logic",{"_index":1190,"title":{},"content":{"204":{},"207":{},"234":{},"236":{}},"tags":{}}],["logo",{"_index":973,"title":{},"content":{"115":{}},"tags":{}}],["logocontrol",{"_index":972,"title":{"111":{}},"content":{"111":{},"114":{}},"tags":{}}],["long",{"_index":157,"title":{},"content":{"2":{},"96":{},"211":{}},"tags":{}}],["longer",{"_index":1037,"title":{},"content":{"159":{},"170":{},"184":{},"186":{},"187":{},"188":{},"191":{},"192":{},"194":{},"195":{},"210":{},"225":{},"233":{}},"tags":{}}],["longitud",{"_index":231,"title":{},"content":{"4":{},"9":{},"16":{},"21":{},"23":{},"26":{},"28":{},"33":{},"40":{},"42":{},"45":{},"47":{},"54":{},"56":{},"61":{},"64":{},"69":{},"74":{},"78":{},"80":{},"84":{},"91":{},"101":{},"105":{},"107":{},"111":{},"116":{},"121":{},"123":{},"126":{},"128":{},"131":{},"136":{},"141":{},"143":{},"146":{},"152":{},"154":{},"166":{},"176":{},"200":{},"203":{},"205":{},"206":{},"207":{},"227":{},"233":{},"234":{}},"tags":{}}],["longitude={vehicle.coordinates[0",{"_index":1304,"title":{},"content":{"181":{}},"tags":{}}],["look",{"_index":1019,"title":{},"content":{"157":{}},"tags":{}}],["ls",{"_index":1108,"title":{},"content":{"177":{}},"tags":{}}],["m",{"_index":1445,"title":{},"content":{"193":{}},"tags":{}}],["made",{"_index":269,"title":{},"content":{"7":{},"67":{}},"tags":{}}],["mail",{"_index":1086,"title":{},"content":{"164":{}},"tags":{}}],["main",{"_index":1478,"title":{},"content":{"199":{}},"tags":{}}],["maintain",{"_index":782,"title":{"164":{}},"content":{"23":{},"143":{},"157":{},"164":{}},"tags":{}}],["major",{"_index":1455,"title":{},"content":{"195":{},"196":{},"199":{},"201":{},"221":{}},"tags":{}}],["make",{"_index":342,"title":{},"content":{"18":{},"48":{},"76":{},"93":{},"129":{},"164":{},"179":{},"187":{},"202":{},"204":{},"227":{}},"tags":{}}],["manag",{"_index":100,"title":{"204":{}},"content":{"2":{},"78":{},"80":{},"105":{},"107":{},"158":{},"181":{},"190":{},"204":{}},"tags":{}}],["mani",{"_index":117,"title":{"181":{}},"content":{"2":{},"180":{},"211":{}},"tags":{}}],["manipul",{"_index":364,"title":{},"content":{"19":{},"94":{}},"tags":{}}],["manual",{"_index":1263,"title":{},"content":{"179":{}},"tags":{}}],["map",{"_index":7,"title":{"74":{},"101":{},"170":{},"190":{},"205":{},"206":{},"209":{},"210":{},"211":{},"212":{},"214":{},"216":{},"218":{},"220":{},"222":{},"224":{},"226":{},"228":{},"230":{},"232":{},"237":{},"239":{},"240":{}},"content":{"1":{},"2":{},"3":{},"4":{},"7":{},"9":{},"12":{},"13":{},"14":{},"16":{},"19":{},"21":{},"23":{},"26":{},"28":{},"31":{},"33":{},"36":{},"38":{},"40":{},"42":{},"45":{},"47":{},"50":{},"51":{},"54":{},"55":{},"56":{},"59":{},"61":{},"62":{},"64":{},"67":{},"69":{},"72":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"84":{},"87":{},"88":{},"89":{},"91":{},"94":{},"96":{},"97":{},"99":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"111":{},"114":{},"116":{},"119":{},"121":{},"123":{},"126":{},"128":{},"131":{},"134":{},"136":{},"139":{},"141":{},"143":{},"146":{},"148":{},"149":{},"152":{},"153":{},"154":{},"155":{},"158":{},"161":{},"163":{},"164":{},"166":{},"167":{},"168":{},"169":{},"170":{},"171":{},"172":{},"175":{},"176":{},"177":{},"179":{},"180":{},"181":{},"182":{},"184":{},"185":{},"186":{},"187":{},"188":{},"189":{},"190":{},"191":{},"192":{},"196":{},"197":{},"198":{},"199":{},"201":{},"202":{},"203":{},"204":{},"205":{},"206":{},"207":{},"209":{},"210":{},"211":{},"215":{},"217":{},"219":{},"221":{},"225":{},"227":{},"229":{},"231":{},"233":{},"234":{},"239":{}},"tags":{}}],["map'",{"_index":164,"title":{},"content":{"2":{},"3":{},"77":{},"80":{},"81":{},"97":{},"104":{},"107":{},"108":{},"172":{},"191":{}},"tags":{}}],["map(",{"_index":692,"title":{},"content":{"81":{},"108":{}},"tags":{}}],["map.easeto",{"_index":1393,"title":{},"content":{"189":{},"190":{}},"tags":{}}],["map.flyto",{"_index":112,"title":{},"content":{"2":{},"189":{},"190":{}},"tags":{}}],["map.flyto({cent",{"_index":956,"title":{},"content":{"96":{},"171":{}},"tags":{}}],["map.project",{"_index":1124,"title":{},"content":{"167":{}},"tags":{}}],["map.setmaxzoom",{"_index":197,"title":{},"content":{"3":{}},"tags":{}}],["map.tsx",{"_index":756,"title":{},"content":{"39":{},"83":{},"98":{},"100":{},"110":{},"173":{}},"tags":{}}],["map_styl",{"_index":998,"title":{},"content":{"131":{}},"tags":{}}],["mapbox",{"_index":11,"title":{"166":{},"169":{},"170":{},"179":{}},"content":{"1":{},"2":{},"3":{},"4":{},"9":{},"13":{},"14":{},"16":{},"17":{},"19":{},"21":{},"23":{},"25":{},"26":{},"28":{},"31":{},"33":{},"36":{},"40":{},"44":{},"45":{},"47":{},"48":{},"52":{},"54":{},"56":{},"74":{},"75":{},"77":{},"79":{},"81":{},"82":{},"94":{},"108":{},"129":{},"166":{},"169":{},"170":{},"175":{},"176":{},"177":{},"179":{},"180":{},"184":{},"186":{},"187":{},"188":{},"191":{},"193":{},"195":{},"197":{},"199":{},"202":{},"204":{},"209":{},"210":{},"211":{},"215":{},"219":{},"221":{},"223":{},"229":{},"231":{},"233":{},"234":{},"238":{},"239":{}},"tags":{}}],["mapbox'",{"_index":54,"title":{},"content":{"1":{},"81":{},"169":{},"221":{},"225":{},"229":{}},"tags":{}}],["mapbox.com",{"_index":1338,"title":{},"content":{"185":{}},"tags":{}}],["mapbox/mapbox",{"_index":934,"title":{},"content":{"61":{},"154":{}},"tags":{}}],["mapbox://styles/mapbox/light",{"_index":1398,"title":{},"content":{"190":{}},"tags":{}}],["mapboxaccesstoken",{"_index":670,"title":{},"content":{"81":{},"169":{},"190":{}},"tags":{}}],["mapboxaccesstoken=\"gotoggl",{"_index":796,"title":{},"content":{"26":{},"146":{}},"tags":{}}],["onclickfeatures((nul",{"_index":741,"title":{},"content":{"82":{}},"tags":{}}],["useselector",{"_index":1289,"title":{},"content":{"181":{}},"tags":{}}],["useselector((",{"_index":1292,"title":{},"content":{"181":{}},"tags":{}}],["usest",{"_index":804,"title":{},"content":{"40":{},"121":{}},"tags":{}}],["usestate(tru",{"_index":807,"title":{},"content":{"40":{},"121":{}},"tags":{}}],["usual",{"_index":564,"title":{},"content":{"80":{},"107":{}},"tags":{}}],["util",{"_index":1087,"title":{"200":{},"236":{}},"content":{"164":{},"188":{},"200":{},"209":{}},"tags":{}}],["v0.31.0",{"_index":1657,"title":{},"content":{"238":{}},"tags":{}}],["v0.38.0",{"_index":1461,"title":{},"content":{"197":{}},"tags":{}}],["v0.40.1",{"_index":1636,"title":{},"content":{"231":{}},"tags":{}}],["v0.6",{"_index":1507,"title":{"240":{}},"content":{"203":{}},"tags":{}}],["v1",{"_index":26,"title":{"203":{}},"content":{"1":{},"176":{},"186":{},"188":{},"202":{}},"tags":{}}],["v1.0",{"_index":1506,"title":{"239":{}},"content":{"203":{},"221":{}},"tags":{}}],["v1.x",{"_index":1522,"title":{},"content":{"209":{}},"tags":{}}],["v2",{"_index":1358,"title":{"202":{}},"content":{"186":{},"188":{},"193":{},"198":{},"202":{}},"tags":{}}],["v2.0",{"_index":1162,"title":{"237":{}},"content":{"170":{},"180":{},"215":{}},"tags":{}}],["v2.x",{"_index":1523,"title":{},"content":{"209":{}},"tags":{}}],["v3",{"_index":1456,"title":{"196":{}},"content":{"196":{},"198":{}},"tags":{}}],["v3.0",{"_index":1637,"title":{"232":{}},"content":{},"tags":{}}],["v3.1",{"_index":1630,"title":{"230":{}},"content":{},"tags":{}}],["v3.2",{"_index":1453,"title":{"195":{},"228":{}},"content":{},"tags":{}}],["v3.3",{"_index":1615,"title":{"226":{}},"content":{},"tags":{}}],["v4",{"_index":1448,"title":{"194":{}},"content":{"202":{}},"tags":{}}],["v4.0",{"_index":1599,"title":{"224":{}},"content":{},"tags":{}}],["v4.1",{"_index":1596,"title":{"222":{}},"content":{},"tags":{}}],["v5",{"_index":1370,"title":{},"content":{"187":{},"209":{},"211":{}},"tags":{}}],["v5.0",{"_index":1575,"title":{"220":{}},"content":{},"tags":{}}],["v5.1",{"_index":1569,"title":{"218":{}},"content":{},"tags":{}}],["v5.2",{"_index":1566,"title":{"216":{}},"content":{},"tags":{}}],["v5.3/v6.1",{"_index":1423,"title":{"192":{},"212":{}},"content":{},"tags":{}}],["v6",{"_index":1371,"title":{"193":{}},"content":{"187":{},"211":{}},"tags":{}}],["v6.0",{"_index":1561,"title":{"214":{}},"content":{},"tags":{}}],["v6.4.0",{"_index":1459,"title":{},"content":{"197":{}},"tags":{}}],["v7",{"_index":3,"title":{},"content":{"1":{},"187":{},"209":{},"211":{}},"tags":{}}],["v7.0",{"_index":175,"title":{"187":{},"211":{}},"content":{"3":{},"189":{}},"tags":{}}],["v7.0.tsx",{"_index":1346,"title":{},"content":{"186":{}},"tags":{}}],["v7.1",{"_index":1344,"title":{"186":{},"210":{}},"content":{},"tags":{}}],["v7.1.tsx",{"_index":1349,"title":{},"content":{"186":{}},"tags":{}}],["v8.0",{"_index":2,"title":{"184":{},"209":{}},"content":{"1":{}},"tags":{}}],["v9",{"_index":238,"title":{},"content":{"4":{},"9":{},"16":{},"21":{},"28":{},"33":{},"40":{},"47":{},"56":{},"61":{},"74":{},"176":{},"180":{},"181":{},"190":{},"205":{},"206":{},"207":{}},"tags":{}}],["valid",{"_index":1439,"title":{},"content":{"193":{}},"tags":{}}],["valu",{"_index":201,"title":{},"content":{"3":{},"23":{},"75":{},"79":{},"81":{},"97":{},"102":{},"106":{},"108":{},"143":{},"172":{},"190":{},"193":{},"198":{}},"tags":{}}],["value=\"map",{"_index":1275,"title":{},"content":{"180":{}},"tags":{}}],["value=\"t",{"_index":1277,"title":{},"content":{"180":{}},"tags":{}}],["value={selectedtab",{"_index":1271,"title":{},"content":{"180":{}},"tags":{}}],["variabl",{"_index":1157,"title":{},"content":{"169":{},"179":{}},"tags":{}}],["variati",{"_index":59,"title":{},"content":{"1":{}},"tags":{}}],["vector",{"_index":25,"title":{},"content":{"1":{},"52":{},"91":{},"150":{},"170":{}},"tags":{}}],["vectorsourcespecif",{"_index":893,"title":{},"content":{"52":{},"150":{}},"tags":{}}],["vehicl",{"_index":1295,"title":{},"content":{"181":{}},"tags":{}}],["vehicles.map(vehicl",{"_index":1302,"title":{},"content":{"181":{}},"tags":{}}],["vehiclesgeojson",{"_index":1314,"title":{},"content":{"181":{}},"tags":{}}],["veri",{"_index":1186,"title":{},"content":{"181":{},"204":{}},"tags":{}}],["version",{"_index":29,"title":{"197":{}},"content":{"1":{},"81":{},"108":{},"131":{},"161":{},"170":{},"177":{},"186":{},"187":{},"192":{},"197":{},"201":{},"202":{},"209":{},"210":{},"215":{},"221":{},"240":{}},"tags":{}}],["version'",{"_index":1354,"title":{},"content":{"186":{}},"tags":{}}],["via",{"_index":193,"title":{},"content":{"3":{},"14":{},"26":{},"42":{},"45":{},"82":{},"89":{},"108":{},"109":{},"123":{},"126":{},"146":{},"164":{},"192":{},"203":{},"204":{},"210":{},"239":{}},"tags":{}}],["video",{"_index":891,"title":{},"content":{"52":{},"150":{}},"tags":{}}],["videosourcespecif",{"_index":890,"title":{},"content":{"52":{},"150":{}},"tags":{}}],["view",{"_index":451,"title":{},"content":{"55":{},"78":{},"80":{},"105":{},"107":{},"153":{},"204":{},"207":{},"221":{}},"tags":{}}],["viewport",{"_index":484,"title":{"182":{}},"content":{"23":{},"78":{},"105":{},"143":{},"188":{},"198":{},"199":{},"200":{},"217":{},"219":{},"229":{},"233":{},"234":{}},"tags":{}}],["viewport.fitbound",{"_index":1483,"title":{},"content":{"200":{}},"tags":{}}],["viewstat",{"_index":904,"title":{},"content":{"54":{},"55":{},"152":{},"153":{},"181":{},"206":{},"207":{},"227":{}},"tags":{}}],["viewstate.latitud",{"_index":1214,"title":{},"content":{"207":{}},"tags":{}}],["viewstate.longitud",{"_index":1213,"title":{},"content":{"207":{}},"tags":{}}],["viewstatechangeev",{"_index":604,"title":{},"content":{"55":{},"80":{},"107":{},"153":{}},"tags":{}}],["virtual",{"_index":1426,"title":{},"content":{"192":{}},"tags":{}}],["vis.gl",{"_index":1066,"title":{"168":{}},"content":{"162":{},"163":{},"164":{},"168":{}},"tags":{}}],["visibl",{"_index":530,"title":{},"content":{"79":{},"80":{},"106":{},"107":{},"181":{},"182":{},"190":{}},"tags":{}}],["visit",{"_index":72,"title":{},"content":{"1":{},"209":{},"211":{}},"tags":{}}],["visitor",{"_index":1223,"title":{},"content":{"179":{}},"tags":{}}],["visual",{"_index":91,"title":{},"content":{"2":{},"80":{},"107":{},"168":{}},"tags":{}}],["visual/interact",{"_index":1057,"title":{},"content":{"160":{}},"tags":{}}],["visualizepitch",{"_index":802,"title":{},"content":{"36":{},"119":{}},"tags":{}}],["vnext",{"_index":1056,"title":{},"content":{"160":{}},"tags":{}}],["void",{"_index":278,"title":{},"content":{"12":{},"24":{},"43":{},"55":{},"62":{},"80":{},"87":{},"107":{},"124":{},"144":{},"153":{},"155":{}},"tags":{}}],["wait",{"_index":1595,"title":{},"content":{"221":{}},"tags":{}}],["want",{"_index":84,"title":{},"content":{"1":{},"38":{},"99":{},"182":{}},"tags":{}}],["warn",{"_index":1493,"title":{},"content":{"201":{},"231":{},"235":{}},"tags":{}}],["way",{"_index":1154,"title":{},"content":{"169":{},"181":{},"204":{}},"tags":{}}],["web",{"_index":21,"title":{},"content":{"1":{},"2":{},"80":{},"81":{},"107":{},"108":{},"168":{}},"tags":{}}],["webgl",{"_index":133,"title":{},"content":{"2":{},"168":{},"181":{}},"tags":{}}],["webmercatorviewport",{"_index":1481,"title":{},"content":{"200":{},"217":{}},"tags":{}}],["webmercatorviewport({width",{"_index":1482,"title":{},"content":{"200":{}},"tags":{}}],["webpack",{"_index":714,"title":{},"content":{"81":{},"179":{}},"tags":{}}],["webpack.config.j",{"_index":1249,"title":{},"content":{"179":{}},"tags":{}}],["websit",{"_index":73,"title":{},"content":{"1":{},"169":{}},"tags":{}}],["webwork",{"_index":717,"title":{},"content":{"81":{},"108":{}},"tags":{}}],["welcom",{"_index":1018,"title":{},"content":{"157":{}},"tags":{}}],["well",{"_index":150,"title":{},"content":{"2":{},"168":{}},"tags":{}}],["what'",{"_index":1465,"title":{"208":{},"215":{},"221":{}},"content":{"198":{}},"tags":{}}],["wheel",{"_index":593,"title":{},"content":{"80":{},"107":{},"213":{}},"tags":{}}],["wheelev",{"_index":910,"title":{},"content":{"55":{},"153":{}},"tags":{}}],["whenev",{"_index":546,"title":{},"content":{"80":{},"107":{},"160":{},"167":{},"203":{}},"tags":{}}],["wherein",{"_index":736,"title":{},"content":{"81":{},"108":{}},"tags":{}}],["wherev",{"_index":180,"title":{},"content":{"3":{},"211":{}},"tags":{}}],["whether",{"_index":1145,"title":{},"content":{"169":{}},"tags":{}}],["width",{"_index":398,"title":{},"content":{"42":{},"76":{},"103":{},"123":{},"190":{},"198":{},"225":{},"233":{},"234":{}},"tags":{}}],["width={500",{"_index":1467,"title":{},"content":{"198":{}},"tags":{}}],["winkel",{"_index":427,"title":{},"content":{"77":{}},"tags":{}}],["winkeltripel",{"_index":429,"title":{},"content":{"77":{}},"tags":{}}],["within",{"_index":529,"title":{"182":{}},"content":{"42":{},"79":{},"80":{},"106":{},"107":{},"123":{}},"tags":{}}],["without",{"_index":31,"title":{"170":{}},"content":{"1":{},"82":{},"109":{},"169":{},"170":{},"181":{},"211":{},"221":{}},"tags":{}}],["work",{"_index":52,"title":{},"content":{"1":{},"96":{},"177":{},"187":{},"201":{},"204":{},"229":{},"235":{}},"tags":{}}],["worker",{"_index":726,"title":{},"content":{"81":{},"108":{}},"tags":{}}],["workerclass",{"_index":711,"title":{},"content":{"81":{}},"tags":{}}],["workercount",{"_index":724,"title":{},"content":{"81":{},"108":{}},"tags":{}}],["workerurl",{"_index":723,"title":{},"content":{"81":{},"108":{}},"tags":{}}],["world",{"_index":441,"title":{},"content":{"26":{},"77":{},"104":{},"146":{},"206":{}},"tags":{}}],["wrap",{"_index":217,"title":{},"content":{"4":{},"9":{},"19":{},"21":{},"28":{},"33":{},"38":{},"40":{},"56":{},"64":{},"69":{},"74":{},"84":{},"94":{},"99":{},"101":{},"111":{},"116":{},"121":{},"131":{},"136":{},"141":{},"187":{},"190":{}},"tags":{}}],["wrapper",{"_index":162,"title":{},"content":{"2":{},"61":{},"154":{},"169":{},"209":{},"234":{}},"tags":{}}],["wrapper'",{"_index":184,"title":{},"content":{"3":{}},"tags":{}}],["written",{"_index":707,"title":{},"content":{"81":{},"108":{},"211":{}},"tags":{}}],["xia",{"_index":1078,"title":{},"content":{"164":{}},"tags":{}}],["xiaoji",{"_index":1075,"title":{},"content":{"164":{}},"tags":{}}],["xintong",{"_index":1077,"title":{},"content":{"164":{}},"tags":{}}],["yarn",{"_index":1025,"title":{},"content":{"158":{},"160":{},"177":{}},"tags":{}}],["you'll",{"_index":1492,"title":{},"content":{"201":{}},"tags":{}}],["yourauthtoken",{"_index":1183,"title":{},"content":{"170":{}},"tags":{}}],["zoom",{"_index":235,"title":{},"content":{"4":{},"9":{},"16":{},"21":{},"28":{},"33":{},"40":{},"47":{},"54":{},"56":{},"61":{},"64":{},"69":{},"74":{},"77":{},"78":{},"79":{},"80":{},"84":{},"91":{},"101":{},"104":{},"105":{},"106":{},"107":{},"111":{},"116":{},"121":{},"128":{},"131":{},"136":{},"141":{},"152":{},"154":{},"166":{},"176":{},"200":{},"203":{},"205":{},"206":{},"207":{},"227":{},"229":{},"233":{}},"tags":{}}]],"pipeline":["stemmer"]}} \ No newline at end of file diff --git a/search-index.json b/search-index.json deleted file mode 100644 index a094b8d6..00000000 --- a/search-index.json +++ /dev/null @@ -1 +0,0 @@ -[{"documents":[{"i":1,"t":"Introduction","u":"/react-map-gl/docs","b":["Docs","Overview"]},{"i":7,"t":"AttributionControl","u":"/react-map-gl/docs/api-reference/attribution-control","b":["Docs","API Reference"]},{"i":16,"t":"GeolocateControl","u":"/react-map-gl/docs/api-reference/geolocate-control","b":["Docs","API Reference"]},{"i":29,"t":"Layer","u":"/react-map-gl/docs/api-reference/layer","b":["Docs","API Reference"]},{"i":39,"t":"FullscreenControl","u":"/react-map-gl/docs/api-reference/fullscreen-control","b":["Docs","API Reference"]},{"i":48,"t":"MapProvider","u":"/react-map-gl/docs/api-reference/map-provider","b":["Docs","API Reference"]},{"i":52,"t":"Marker","u":"/react-map-gl/docs/api-reference/marker","b":["Docs","API Reference"]},{"i":65,"t":"Popup","u":"/react-map-gl/docs/api-reference/popup","b":["Docs","API Reference"]},{"i":78,"t":"default (Map)","u":"/react-map-gl/docs/api-reference/map","b":["Docs","API Reference"]},{"i":98,"t":"NavigationControl","u":"/react-map-gl/docs/api-reference/navigation-control","b":["Docs","API Reference"]},{"i":107,"t":"useControl","u":"/react-map-gl/docs/api-reference/use-control","b":["Docs","API Reference"]},{"i":113,"t":"ScaleControl","u":"/react-map-gl/docs/api-reference/scale-control","b":["Docs","API Reference"]},{"i":122,"t":"Types","u":"/react-map-gl/docs/api-reference/types","b":["Docs","API Reference"]},{"i":136,"t":"Contributing","u":"/react-map-gl/docs/contributing","b":["Docs","Overview"]},{"i":154,"t":"Adding Custom Data","u":"/react-map-gl/docs/get-started/adding-custom-data","b":["Docs","Developer Guide"]},{"i":161,"t":"About Mapbox Tokens","u":"/react-map-gl/docs/get-started/mapbox-tokens","b":["Docs","Developer Guide"]},{"i":165,"t":"Source","u":"/react-map-gl/docs/api-reference/source","b":["Docs","API Reference"]},{"i":170,"t":"Get Started","u":"/react-map-gl/docs/get-started","b":["Docs","Developer Guide"]},{"i":180,"t":"useMap","u":"/react-map-gl/docs/api-reference/use-map","b":["Docs","API Reference"]},{"i":186,"t":"Tips and Tricks","u":"/react-map-gl/docs/get-started/tips-and-tricks","b":["Docs","Developer Guide"]},{"i":195,"t":"What's new","u":"/react-map-gl/docs/whats-new","b":["Docs","Overview"]},{"i":258,"t":"Upgrade Guide","u":"/react-map-gl/docs/upgrade-guide","b":["Docs","Overview"]},{"i":295,"t":"State Management","u":"/react-map-gl/docs/get-started/state-management","b":["Docs","Developer Guide"]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[0,3.1]],["t/7",[1,3.1]],["t/16",[2,3.1]],["t/29",[3,3.1]],["t/39",[4,3.1]],["t/48",[5,3.1]],["t/52",[6,3.1]],["t/65",[7,3.1]],["t/78",[8,2.314,9,2.314]],["t/98",[10,3.1]],["t/107",[11,3.1]],["t/113",[12,3.1]],["t/122",[13,3.1]],["t/136",[14,3.1]],["t/154",[15,1.847,16,1.847,17,1.847]],["t/161",[18,2.314,19,2.314]],["t/165",[20,3.1]],["t/170",[21,3.1]],["t/180",[22,3.1]],["t/186",[23,2.314,24,2.314]],["t/195",[25,2.314,26,2.314]],["t/258",[27,2.314,28,2.314]],["t/295",[29,2.314,30,2.314]]],"invertedIndex":[["ad",{"_index":15,"t":{"154":{"position":[[0,6]]}}}],["attributioncontrol",{"_index":1,"t":{"7":{"position":[[0,18]]}}}],["contribut",{"_index":14,"t":{"136":{"position":[[0,12]]}}}],["custom",{"_index":16,"t":{"154":{"position":[[7,6]]}}}],["data",{"_index":17,"t":{"154":{"position":[[14,4]]}}}],["default",{"_index":8,"t":{"78":{"position":[[0,7]]}}}],["fullscreencontrol",{"_index":4,"t":{"39":{"position":[[0,17]]}}}],["geolocatecontrol",{"_index":2,"t":{"16":{"position":[[0,16]]}}}],["guid",{"_index":28,"t":{"258":{"position":[[8,5]]}}}],["introduct",{"_index":0,"t":{"1":{"position":[[0,12]]}}}],["layer",{"_index":3,"t":{"29":{"position":[[0,5]]}}}],["manag",{"_index":30,"t":{"295":{"position":[[6,10]]}}}],["map",{"_index":9,"t":{"78":{"position":[[8,5]]}}}],["mapbox",{"_index":18,"t":{"161":{"position":[[6,6]]}}}],["mapprovid",{"_index":5,"t":{"48":{"position":[[0,11]]}}}],["marker",{"_index":6,"t":{"52":{"position":[[0,6]]}}}],["navigationcontrol",{"_index":10,"t":{"98":{"position":[[0,17]]}}}],["new",{"_index":26,"t":{"195":{"position":[[7,3]]}}}],["popup",{"_index":7,"t":{"65":{"position":[[0,5]]}}}],["scalecontrol",{"_index":12,"t":{"113":{"position":[[0,12]]}}}],["sourc",{"_index":20,"t":{"165":{"position":[[0,6]]}}}],["start",{"_index":21,"t":{"170":{"position":[[4,7]]}}}],["state",{"_index":29,"t":{"295":{"position":[[0,5]]}}}],["tip",{"_index":23,"t":{"186":{"position":[[0,4]]}}}],["token",{"_index":19,"t":{"161":{"position":[[13,6]]}}}],["trick",{"_index":24,"t":{"186":{"position":[[9,6]]}}}],["type",{"_index":13,"t":{"122":{"position":[[0,5]]}}}],["upgrad",{"_index":27,"t":{"258":{"position":[[0,7]]}}}],["usecontrol",{"_index":11,"t":{"107":{"position":[[0,10]]}}}],["usemap",{"_index":22,"t":{"180":{"position":[[0,6]]}}}],["what'",{"_index":25,"t":{"195":{"position":[[0,6]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":3,"t":"Design Philosophy","u":"/react-map-gl/docs","h":"#design-philosophy","p":1},{"i":5,"t":"Limitations","u":"/react-map-gl/docs","h":"#limitations","p":1},{"i":9,"t":"Properties","u":"/react-map-gl/docs/api-reference/attribution-control","h":"#properties","p":7},{"i":10,"t":"Reactive Properties","u":"/react-map-gl/docs/api-reference/attribution-control","h":"#reactive-properties","p":7},{"i":12,"t":"Other Properties","u":"/react-map-gl/docs/api-reference/attribution-control","h":"#other-properties","p":7},{"i":14,"t":"Source","u":"/react-map-gl/docs/api-reference/attribution-control","h":"#source","p":7},{"i":18,"t":"Properties","u":"/react-map-gl/docs/api-reference/geolocate-control","h":"#properties","p":16},{"i":19,"t":"Reactive Properties","u":"/react-map-gl/docs/api-reference/geolocate-control","h":"#reactive-properties","p":16},{"i":21,"t":"Callbacks","u":"/react-map-gl/docs/api-reference/geolocate-control","h":"#callbacks","p":16},{"i":23,"t":"Other Properties","u":"/react-map-gl/docs/api-reference/geolocate-control","h":"#other-properties","p":16},{"i":25,"t":"Methods","u":"/react-map-gl/docs/api-reference/geolocate-control","h":"#methods","p":16},{"i":27,"t":"Source","u":"/react-map-gl/docs/api-reference/geolocate-control","h":"#source","p":16},{"i":31,"t":"Properties","u":"/react-map-gl/docs/api-reference/layer","h":"#properties","p":29},{"i":33,"t":"Identity Properties","u":"/react-map-gl/docs/api-reference/layer","h":"#identity-properties","p":29},{"i":35,"t":"Options","u":"/react-map-gl/docs/api-reference/layer","h":"#options","p":29},{"i":37,"t":"Source","u":"/react-map-gl/docs/api-reference/layer","h":"#source","p":29},{"i":41,"t":"Properties","u":"/react-map-gl/docs/api-reference/fullscreen-control","h":"#properties","p":39},{"i":42,"t":"Reactive Properties","u":"/react-map-gl/docs/api-reference/fullscreen-control","h":"#reactive-properties","p":39},{"i":44,"t":"Other Properties","u":"/react-map-gl/docs/api-reference/fullscreen-control","h":"#other-properties","p":39},{"i":46,"t":"Source","u":"/react-map-gl/docs/api-reference/fullscreen-control","h":"#source","p":39},{"i":50,"t":"Source","u":"/react-map-gl/docs/api-reference/map-provider","h":"#source","p":48},{"i":54,"t":"Properties","u":"/react-map-gl/docs/api-reference/marker","h":"#properties","p":52},{"i":55,"t":"Reactive Properties","u":"/react-map-gl/docs/api-reference/marker","h":"#reactive-properties","p":52},{"i":57,"t":"Callbacks","u":"/react-map-gl/docs/api-reference/marker","h":"#callbacks","p":52},{"i":59,"t":"Other Properties","u":"/react-map-gl/docs/api-reference/marker","h":"#other-properties","p":52},{"i":61,"t":"Methods","u":"/react-map-gl/docs/api-reference/marker","h":"#methods","p":52},{"i":63,"t":"Source","u":"/react-map-gl/docs/api-reference/marker","h":"#source","p":52},{"i":67,"t":"Properties","u":"/react-map-gl/docs/api-reference/popup","h":"#properties","p":65},{"i":68,"t":"Reactive Properties","u":"/react-map-gl/docs/api-reference/popup","h":"#reactive-properties","p":65},{"i":70,"t":"Callbacks","u":"/react-map-gl/docs/api-reference/popup","h":"#callbacks","p":65},{"i":72,"t":"Other Properties","u":"/react-map-gl/docs/api-reference/popup","h":"#other-properties","p":65},{"i":74,"t":"Methods","u":"/react-map-gl/docs/api-reference/popup","h":"#methods","p":65},{"i":76,"t":"Source","u":"/react-map-gl/docs/api-reference/popup","h":"#source","p":65},{"i":80,"t":"Properties","u":"/react-map-gl/docs/api-reference/map","h":"#properties","p":78},{"i":82,"t":"Layout options","u":"/react-map-gl/docs/api-reference/map","h":"#layout-options","p":78},{"i":84,"t":"Styling options","u":"/react-map-gl/docs/api-reference/map","h":"#styling-options","p":78},{"i":86,"t":"Camera options","u":"/react-map-gl/docs/api-reference/map","h":"#camera-options","p":78},{"i":88,"t":"Input handler options","u":"/react-map-gl/docs/api-reference/map","h":"#input-handler-options","p":78},{"i":90,"t":"Callbacks","u":"/react-map-gl/docs/api-reference/map","h":"#callbacks","p":78},{"i":92,"t":"Other options","u":"/react-map-gl/docs/api-reference/map","h":"#other-options","p":78},{"i":94,"t":"Methods","u":"/react-map-gl/docs/api-reference/map","h":"#methods","p":78},{"i":96,"t":"Source","u":"/react-map-gl/docs/api-reference/map","h":"#source","p":78},{"i":100,"t":"Properties","u":"/react-map-gl/docs/api-reference/navigation-control","h":"#properties","p":98},{"i":101,"t":"Reactive Properties","u":"/react-map-gl/docs/api-reference/navigation-control","h":"#reactive-properties","p":98},{"i":103,"t":"Other Properties","u":"/react-map-gl/docs/api-reference/navigation-control","h":"#other-properties","p":98},{"i":105,"t":"Source","u":"/react-map-gl/docs/api-reference/navigation-control","h":"#source","p":98},{"i":109,"t":"Signature","u":"/react-map-gl/docs/api-reference/use-control","h":"#signature","p":107},{"i":111,"t":"Source","u":"/react-map-gl/docs/api-reference/use-control","h":"#source","p":107},{"i":115,"t":"Properties","u":"/react-map-gl/docs/api-reference/scale-control","h":"#properties","p":113},{"i":116,"t":"Reactive Properties","u":"/react-map-gl/docs/api-reference/scale-control","h":"#reactive-properties","p":113},{"i":118,"t":"Other Properties","u":"/react-map-gl/docs/api-reference/scale-control","h":"#other-properties","p":113},{"i":120,"t":"Source","u":"/react-map-gl/docs/api-reference/scale-control","h":"#source","p":113},{"i":124,"t":"Components","u":"/react-map-gl/docs/api-reference/types","h":"#components","p":122},{"i":126,"t":"Styling","u":"/react-map-gl/docs/api-reference/types","h":"#styling","p":122},{"i":128,"t":"Configurations","u":"/react-map-gl/docs/api-reference/types","h":"#configurations","p":122},{"i":130,"t":"Data Types","u":"/react-map-gl/docs/api-reference/types","h":"#data-types","p":122},{"i":132,"t":"Sources","u":"/react-map-gl/docs/api-reference/types","h":"#sources","p":122},{"i":134,"t":"Events","u":"/react-map-gl/docs/api-reference/types","h":"#events","p":122},{"i":138,"t":"Setting Up Dev Environment","u":"/react-map-gl/docs/contributing","h":"#setting-up-dev-environment","p":136},{"i":140,"t":"Pull Requests","u":"/react-map-gl/docs/contributing","h":"#pull-requests","p":136},{"i":142,"t":"PR Checklist","u":"/react-map-gl/docs/contributing","h":"#pr-checklist","p":136},{"i":144,"t":"Release","u":"/react-map-gl/docs/contributing","h":"#release","p":136},{"i":146,"t":"Community Governance","u":"/react-map-gl/docs/contributing","h":"#community-governance","p":136},{"i":148,"t":"Technical Steering Committee","u":"/react-map-gl/docs/contributing","h":"#technical-steering-committee","p":136},{"i":150,"t":"Maintainers","u":"/react-map-gl/docs/contributing","h":"#maintainers","p":136},{"i":152,"t":"Code of Conduct","u":"/react-map-gl/docs/contributing","h":"#code-of-conduct","p":136},{"i":155,"t":"Native Mapbox Layers","u":"/react-map-gl/docs/get-started/adding-custom-data","h":"#native-mapbox-layers","p":154},{"i":157,"t":"Custom Overlays","u":"/react-map-gl/docs/get-started/adding-custom-data","h":"#custom-overlays","p":154},{"i":159,"t":"Other vis.gl Libraries","u":"/react-map-gl/docs/get-started/adding-custom-data","h":"#other-visgl-libraries","p":154},{"i":163,"t":"Display Maps Without A Mapbox Token","u":"/react-map-gl/docs/get-started/mapbox-tokens","h":"#display-maps-without-a-mapbox-token","p":161},{"i":167,"t":"Properties","u":"/react-map-gl/docs/api-reference/source","h":"#properties","p":165},{"i":172,"t":"Installation","u":"/react-map-gl/docs/get-started","h":"#installation","p":170},{"i":174,"t":"Example","u":"/react-map-gl/docs/get-started","h":"#example","p":170},{"i":176,"t":"Styling","u":"/react-map-gl/docs/get-started","h":"#styling","p":170},{"i":178,"t":"Using with a Compatible Fork","u":"/react-map-gl/docs/get-started","h":"#using-with-a-compatible-fork","p":170},{"i":182,"t":"Signature","u":"/react-map-gl/docs/api-reference/use-map","h":"#signature","p":180},{"i":184,"t":"Source","u":"/react-map-gl/docs/api-reference/use-map","h":"#source","p":180},{"i":187,"t":"Securing Mapbox Token","u":"/react-map-gl/docs/get-started/tips-and-tricks","h":"#securing-mapbox-token","p":186},{"i":189,"t":"Minimize Cost from Frequent Re-mounting","u":"/react-map-gl/docs/get-started/tips-and-tricks","h":"#minimize-cost-from-frequent-re-mounting","p":186},{"i":191,"t":"Performance with Many Markers","u":"/react-map-gl/docs/get-started/tips-and-tricks","h":"#performance-with-many-markers","p":186},{"i":193,"t":"Finding out if a point is within the current viewport","u":"/react-map-gl/docs/get-started/tips-and-tricks","h":"#finding-out-if-a-point-is-within-the-current-viewport","p":186},{"i":196,"t":"react-map-gl v7.1","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v71","p":195},{"i":198,"t":"react-map-gl v7.0","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v70","p":195},{"i":200,"t":"react-map-gl v5.3/v6.1","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v53v61","p":195},{"i":202,"t":"Highlights","u":"/react-map-gl/docs/whats-new","h":"#highlights","p":195},{"i":204,"t":"react-map-gl v6.0","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v60","p":195},{"i":206,"t":"What's Changed","u":"/react-map-gl/docs/whats-new","h":"#whats-changed","p":195},{"i":208,"t":"react-map-gl v5.2","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v52","p":195},{"i":210,"t":"Highlights","u":"/react-map-gl/docs/whats-new","h":"#highlights-1","p":195},{"i":212,"t":"react-map-gl v5.1","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v51","p":195},{"i":214,"t":"Highlights","u":"/react-map-gl/docs/whats-new","h":"#highlights-2","p":195},{"i":216,"t":"react-map-gl v5.0","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v50","p":195},{"i":218,"t":"What's Changed","u":"/react-map-gl/docs/whats-new","h":"#whats-changed-1","p":195},{"i":220,"t":"react-map-gl v4.1","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v41","p":195},{"i":222,"t":"Highlights","u":"/react-map-gl/docs/whats-new","h":"#highlights-3","p":195},{"i":224,"t":"react-map-gl v4.0","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v40","p":195},{"i":226,"t":"Highlights","u":"/react-map-gl/docs/whats-new","h":"#highlights-4","p":195},{"i":228,"t":"react-map-gl v3.3","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v33","p":195},{"i":230,"t":"Highlights","u":"/react-map-gl/docs/whats-new","h":"#highlights-5","p":195},{"i":232,"t":"react-map-gl v3.2","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v32","p":195},{"i":234,"t":"Highlights","u":"/react-map-gl/docs/whats-new","h":"#highlights-6","p":195},{"i":236,"t":"react-map-gl v3.1","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v31","p":195},{"i":238,"t":"Highlights","u":"/react-map-gl/docs/whats-new","h":"#highlights-7","p":195},{"i":240,"t":"react-map-gl v3.0","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v30","p":195},{"i":242,"t":"Highlights","u":"/react-map-gl/docs/whats-new","h":"#highlights-8","p":195},{"i":244,"t":"Components","u":"/react-map-gl/docs/whats-new","h":"#components","p":195},{"i":246,"t":"Property Changes","u":"/react-map-gl/docs/whats-new","h":"#property-changes","p":195},{"i":248,"t":"Utilities","u":"/react-map-gl/docs/whats-new","h":"#utilities","p":195},{"i":250,"t":"react-map-gl v2.0","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v20","p":195},{"i":252,"t":"Highlights","u":"/react-map-gl/docs/whats-new","h":"#highlights-9","p":195},{"i":254,"t":"react-map-gl v1.0","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v10","p":195},{"i":256,"t":"react-map-gl v0.6","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v06","p":195},{"i":259,"t":"Upgrading to v7.1","u":"/react-map-gl/docs/upgrade-guide","h":"#upgrading-to-v71","p":258},{"i":261,"t":"Upgrading to v7.0","u":"/react-map-gl/docs/upgrade-guide","h":"#upgrading-to-v70","p":258},{"i":263,"t":"Dependencies","u":"/react-map-gl/docs/upgrade-guide","h":"#dependencies","p":258},{"i":265,"t":"Module exports","u":"/react-map-gl/docs/upgrade-guide","h":"#module-exports","p":258},{"i":267,"t":"Map","u":"/react-map-gl/docs/upgrade-guide","h":"#map","p":258},{"i":269,"t":"Other components","u":"/react-map-gl/docs/upgrade-guide","h":"#other-components","p":258},{"i":271,"t":"Upgrading to v5.3/v6.1","u":"/react-map-gl/docs/upgrade-guide","h":"#upgrading-to-v53v61","p":258},{"i":273,"t":"Upgrading to v6","u":"/react-map-gl/docs/upgrade-guide","h":"#upgrading-to-v6","p":258},{"i":275,"t":"Upgrading to v4","u":"/react-map-gl/docs/upgrade-guide","h":"#upgrading-to-v4","p":258},{"i":277,"t":"Upgrading to v3.2","u":"/react-map-gl/docs/upgrade-guide","h":"#upgrading-to-v32","p":258},{"i":279,"t":"Upgrading to v3","u":"/react-map-gl/docs/upgrade-guide","h":"#upgrading-to-v3","p":258},{"i":281,"t":"Version Requirements","u":"/react-map-gl/docs/upgrade-guide","h":"#version-requirements","p":258},{"i":283,"t":"MapGL Component","u":"/react-map-gl/docs/upgrade-guide","h":"#mapgl-component","p":258},{"i":285,"t":"Overlays","u":"/react-map-gl/docs/upgrade-guide","h":"#overlays","p":258},{"i":287,"t":"fitBounds utility function","u":"/react-map-gl/docs/upgrade-guide","h":"#fitbounds-utility-function","p":258},{"i":289,"t":"Deprecations","u":"/react-map-gl/docs/upgrade-guide","h":"#deprecations","p":258},{"i":291,"t":"Upgrading to v2","u":"/react-map-gl/docs/upgrade-guide","h":"#upgrading-to-v2","p":258},{"i":293,"t":"Upgrading to v1","u":"/react-map-gl/docs/upgrade-guide","h":"#upgrading-to-v1","p":258},{"i":297,"t":"Uncontrolled Map","u":"/react-map-gl/docs/get-started/state-management","h":"#uncontrolled-map","p":295},{"i":299,"t":"Controlled Map","u":"/react-map-gl/docs/get-started/state-management","h":"#controlled-map","p":295},{"i":301,"t":"Custom Camera Constraints","u":"/react-map-gl/docs/get-started/state-management","h":"#custom-camera-constraints","p":295}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/3",[0,4.37,1,4.37]],["t/5",[2,5.55]],["t/9",[3,2.002]],["t/10",[3,1.577,4,2.805]],["t/12",[3,2.002]],["t/14",[5,2.836]],["t/18",[3,2.002]],["t/19",[3,1.577,4,2.805]],["t/21",[6,4.193]],["t/23",[3,2.002]],["t/25",[7,4.193]],["t/27",[5,2.836]],["t/31",[3,2.002]],["t/33",[3,1.577,8,4.37]],["t/35",[9,3.739]],["t/37",[5,2.836]],["t/41",[3,2.002]],["t/42",[3,1.577,4,2.805]],["t/44",[3,2.002]],["t/46",[5,2.836]],["t/50",[5,2.836]],["t/54",[3,2.002]],["t/55",[3,1.577,4,2.805]],["t/57",[6,4.193]],["t/59",[3,2.002]],["t/61",[7,4.193]],["t/63",[5,2.836]],["t/67",[3,2.002]],["t/68",[3,1.577,4,2.805]],["t/70",[6,4.193]],["t/72",[3,2.002]],["t/74",[7,4.193]],["t/76",[5,2.836]],["t/80",[3,2.002]],["t/82",[9,2.944,10,4.37]],["t/84",[9,2.944,11,3.546]],["t/86",[9,2.944,12,3.873]],["t/88",[9,2.428,13,3.604,14,3.604]],["t/90",[6,4.193]],["t/92",[9,3.739]],["t/94",[7,4.193]],["t/96",[5,2.836]],["t/100",[3,2.002]],["t/101",[3,1.577,4,2.805]],["t/103",[3,2.002]],["t/105",[5,2.836]],["t/109",[15,4.919]],["t/111",[5,2.836]],["t/115",[3,2.002]],["t/116",[3,1.577,4,2.805]],["t/118",[3,2.002]],["t/120",[5,2.836]],["t/124",[16,4.193]],["t/126",[11,4.503]],["t/128",[17,5.55]],["t/130",[18,4.37,19,4.37]],["t/132",[5,2.836]],["t/134",[20,5.55]],["t/138",[21,3.067,22,3.067,23,3.067,24,3.067]],["t/140",[25,4.37,26,4.37]],["t/142",[27,4.37,28,4.37]],["t/144",[29,5.55]],["t/146",[30,4.37,31,4.37]],["t/148",[32,3.604,33,3.604,34,3.604]],["t/150",[35,5.55]],["t/152",[36,4.37,37,4.37]],["t/155",[38,3.604,39,2.924,40,3.604]],["t/157",[41,3.873,42,3.873]],["t/159",[43,4.37,44,4.37]],["t/163",[39,2.165,45,2.669,46,1.115,47,2.669,48,2.365]],["t/167",[3,2.002]],["t/172",[49,5.55]],["t/174",[50,5.55]],["t/176",[11,4.503]],["t/178",[51,3.604,52,3.604,53,3.604]],["t/182",[15,4.919]],["t/184",[5,2.836]],["t/187",[39,2.924,48,3.194,54,3.604]],["t/189",[55,2.669,56,2.669,57,2.669,58,2.669,59,2.669]],["t/191",[60,3.604,61,3.604,62,3.604]],["t/193",[63,2.362,64,2.362,65,2.362,66,2.362,67,2.362,68,2.362]],["t/196",[46,1.282,69,1.43,70,1.43,71,2.718]],["t/198",[46,1.282,69,1.43,70,1.43,72,2.718]],["t/200",[46,1.282,69,1.43,70,1.43,73,2.718]],["t/202",[74,3.146]],["t/204",[46,1.282,69,1.43,70,1.43,75,3.067]],["t/206",[76,3.873,77,3.546]],["t/208",[46,1.282,69,1.43,70,1.43,78,3.067]],["t/210",[74,3.146]],["t/212",[46,1.282,69,1.43,70,1.43,79,3.067]],["t/214",[74,3.146]],["t/216",[46,1.282,69,1.43,70,1.43,80,3.067]],["t/218",[76,3.873,77,3.546]],["t/220",[46,1.282,69,1.43,70,1.43,81,3.067]],["t/222",[74,3.146]],["t/224",[46,1.282,69,1.43,70,1.43,82,3.067]],["t/226",[74,3.146]],["t/228",[46,1.282,69,1.43,70,1.43,83,3.067]],["t/230",[74,3.146]],["t/232",[46,1.282,69,1.43,70,1.43,84,2.718]],["t/234",[74,3.146]],["t/236",[46,1.282,69,1.43,70,1.43,85,3.067]],["t/238",[74,3.146]],["t/240",[46,1.282,69,1.43,70,1.43,86,3.067]],["t/242",[74,3.146]],["t/244",[16,4.193]],["t/246",[3,1.577,77,3.546]],["t/248",[87,4.919]],["t/250",[46,1.282,69,1.43,70,1.43,88,3.067]],["t/252",[74,3.146]],["t/254",[46,1.282,69,1.43,70,1.43,89,3.067]],["t/256",[46,1.282,69,1.43,70,1.43,90,3.067]],["t/259",[71,3.873,91,2.575]],["t/261",[72,3.873,91,2.575]],["t/263",[92,5.55]],["t/265",[93,4.37,94,4.37]],["t/267",[46,2.319]],["t/269",[16,4.193]],["t/271",[73,3.873,91,2.575]],["t/273",[91,2.575,95,4.37]],["t/275",[91,2.575,96,4.37]],["t/277",[84,3.873,91,2.575]],["t/279",[91,2.575,97,4.37]],["t/281",[98,4.37,99,4.37]],["t/283",[16,3.302,100,4.37]],["t/285",[42,4.919]],["t/287",[87,3.194,101,3.604,102,3.604]],["t/289",[103,5.55]],["t/291",[91,2.575,104,4.37]],["t/293",[91,2.575,105,4.37]],["t/297",[46,1.826,106,4.37]],["t/299",[46,1.826,107,4.37]],["t/301",[12,3.194,41,3.194,108,3.604]]],"invertedIndex":[["callback",{"_index":6,"t":{"21":{"position":[[0,9]]},"57":{"position":[[0,9]]},"70":{"position":[[0,9]]},"90":{"position":[[0,9]]}}}],["camera",{"_index":12,"t":{"86":{"position":[[0,6]]},"301":{"position":[[7,6]]}}}],["chang",{"_index":77,"t":{"206":{"position":[[7,7]]},"218":{"position":[[7,7]]},"246":{"position":[[9,7]]}}}],["checklist",{"_index":28,"t":{"142":{"position":[[3,9]]}}}],["code",{"_index":36,"t":{"152":{"position":[[0,4]]}}}],["committe",{"_index":34,"t":{"148":{"position":[[19,9]]}}}],["commun",{"_index":30,"t":{"146":{"position":[[0,9]]}}}],["compat",{"_index":52,"t":{"178":{"position":[[13,10]]}}}],["compon",{"_index":16,"t":{"124":{"position":[[0,10]]},"244":{"position":[[0,10]]},"269":{"position":[[6,10]]},"283":{"position":[[6,9]]}}}],["conduct",{"_index":37,"t":{"152":{"position":[[8,7]]}}}],["configur",{"_index":17,"t":{"128":{"position":[[0,14]]}}}],["constraint",{"_index":108,"t":{"301":{"position":[[14,11]]}}}],["control",{"_index":107,"t":{"299":{"position":[[0,10]]}}}],["cost",{"_index":56,"t":{"189":{"position":[[9,4]]}}}],["current",{"_index":67,"t":{"193":{"position":[[37,7]]}}}],["custom",{"_index":41,"t":{"157":{"position":[[0,6]]},"301":{"position":[[0,6]]}}}],["data",{"_index":18,"t":{"130":{"position":[[0,4]]}}}],["depend",{"_index":92,"t":{"263":{"position":[[0,12]]}}}],["deprec",{"_index":103,"t":{"289":{"position":[[0,12]]}}}],["design",{"_index":0,"t":{"3":{"position":[[0,6]]}}}],["dev",{"_index":23,"t":{"138":{"position":[[11,3]]}}}],["display",{"_index":45,"t":{"163":{"position":[[0,7]]}}}],["environ",{"_index":24,"t":{"138":{"position":[[15,11]]}}}],["event",{"_index":20,"t":{"134":{"position":[[0,6]]}}}],["exampl",{"_index":50,"t":{"174":{"position":[[0,7]]}}}],["export",{"_index":94,"t":{"265":{"position":[[7,7]]}}}],["find",{"_index":63,"t":{"193":{"position":[[0,7]]}}}],["fitbound",{"_index":101,"t":{"287":{"position":[[0,9]]}}}],["fork",{"_index":53,"t":{"178":{"position":[[24,4]]}}}],["frequent",{"_index":57,"t":{"189":{"position":[[19,8]]}}}],["function",{"_index":102,"t":{"287":{"position":[[18,8]]}}}],["gl",{"_index":70,"t":{"196":{"position":[[10,2]]},"198":{"position":[[10,2]]},"200":{"position":[[10,2]]},"204":{"position":[[10,2]]},"208":{"position":[[10,2]]},"212":{"position":[[10,2]]},"216":{"position":[[10,2]]},"220":{"position":[[10,2]]},"224":{"position":[[10,2]]},"228":{"position":[[10,2]]},"232":{"position":[[10,2]]},"236":{"position":[[10,2]]},"240":{"position":[[10,2]]},"250":{"position":[[10,2]]},"254":{"position":[[10,2]]},"256":{"position":[[10,2]]}}}],["govern",{"_index":31,"t":{"146":{"position":[[10,10]]}}}],["handler",{"_index":14,"t":{"88":{"position":[[6,7]]}}}],["highlight",{"_index":74,"t":{"202":{"position":[[0,10]]},"210":{"position":[[0,10]]},"214":{"position":[[0,10]]},"222":{"position":[[0,10]]},"226":{"position":[[0,10]]},"230":{"position":[[0,10]]},"234":{"position":[[0,10]]},"238":{"position":[[0,10]]},"242":{"position":[[0,10]]},"252":{"position":[[0,10]]}}}],["ident",{"_index":8,"t":{"33":{"position":[[0,8]]}}}],["input",{"_index":13,"t":{"88":{"position":[[0,5]]}}}],["instal",{"_index":49,"t":{"172":{"position":[[0,12]]}}}],["layer",{"_index":40,"t":{"155":{"position":[[14,6]]}}}],["layout",{"_index":10,"t":{"82":{"position":[[0,6]]}}}],["librari",{"_index":44,"t":{"159":{"position":[[13,9]]}}}],["limit",{"_index":2,"t":{"5":{"position":[[0,11]]}}}],["maintain",{"_index":35,"t":{"150":{"position":[[0,11]]}}}],["mani",{"_index":61,"t":{"191":{"position":[[17,4]]}}}],["map",{"_index":46,"t":{"163":{"position":[[8,4]]},"196":{"position":[[6,3]]},"198":{"position":[[6,3]]},"200":{"position":[[6,3]]},"204":{"position":[[6,3]]},"208":{"position":[[6,3]]},"212":{"position":[[6,3]]},"216":{"position":[[6,3]]},"220":{"position":[[6,3]]},"224":{"position":[[6,3]]},"228":{"position":[[6,3]]},"232":{"position":[[6,3]]},"236":{"position":[[6,3]]},"240":{"position":[[6,3]]},"250":{"position":[[6,3]]},"254":{"position":[[6,3]]},"256":{"position":[[6,3]]},"267":{"position":[[0,3]]},"297":{"position":[[13,3]]},"299":{"position":[[11,3]]}}}],["mapbox",{"_index":39,"t":{"155":{"position":[[7,6]]},"163":{"position":[[23,6]]},"187":{"position":[[9,6]]}}}],["mapgl",{"_index":100,"t":{"283":{"position":[[0,5]]}}}],["marker",{"_index":62,"t":{"191":{"position":[[22,7]]}}}],["method",{"_index":7,"t":{"25":{"position":[[0,7]]},"61":{"position":[[0,7]]},"74":{"position":[[0,7]]},"94":{"position":[[0,7]]}}}],["minim",{"_index":55,"t":{"189":{"position":[[0,8]]}}}],["modul",{"_index":93,"t":{"265":{"position":[[0,6]]}}}],["mount",{"_index":59,"t":{"189":{"position":[[31,8]]}}}],["nativ",{"_index":38,"t":{"155":{"position":[[0,6]]}}}],["option",{"_index":9,"t":{"35":{"position":[[0,7]]},"82":{"position":[[7,7]]},"84":{"position":[[8,7]]},"86":{"position":[[7,7]]},"88":{"position":[[14,7]]},"92":{"position":[[6,7]]}}}],["out",{"_index":64,"t":{"193":{"position":[[8,3]]}}}],["overlay",{"_index":42,"t":{"157":{"position":[[7,8]]},"285":{"position":[[0,8]]}}}],["perform",{"_index":60,"t":{"191":{"position":[[0,11]]}}}],["philosophi",{"_index":1,"t":{"3":{"position":[[7,10]]}}}],["point",{"_index":65,"t":{"193":{"position":[[17,5]]}}}],["pr",{"_index":27,"t":{"142":{"position":[[0,2]]}}}],["properti",{"_index":3,"t":{"9":{"position":[[0,10]]},"10":{"position":[[9,10]]},"12":{"position":[[6,10]]},"18":{"position":[[0,10]]},"19":{"position":[[9,10]]},"23":{"position":[[6,10]]},"31":{"position":[[0,10]]},"33":{"position":[[9,10]]},"41":{"position":[[0,10]]},"42":{"position":[[9,10]]},"44":{"position":[[6,10]]},"54":{"position":[[0,10]]},"55":{"position":[[9,10]]},"59":{"position":[[6,10]]},"67":{"position":[[0,10]]},"68":{"position":[[9,10]]},"72":{"position":[[6,10]]},"80":{"position":[[0,10]]},"100":{"position":[[0,10]]},"101":{"position":[[9,10]]},"103":{"position":[[6,10]]},"115":{"position":[[0,10]]},"116":{"position":[[9,10]]},"118":{"position":[[6,10]]},"167":{"position":[[0,10]]},"246":{"position":[[0,8]]}}}],["pull",{"_index":25,"t":{"140":{"position":[[0,4]]}}}],["re",{"_index":58,"t":{"189":{"position":[[28,2]]}}}],["react",{"_index":69,"t":{"196":{"position":[[0,5]]},"198":{"position":[[0,5]]},"200":{"position":[[0,5]]},"204":{"position":[[0,5]]},"208":{"position":[[0,5]]},"212":{"position":[[0,5]]},"216":{"position":[[0,5]]},"220":{"position":[[0,5]]},"224":{"position":[[0,5]]},"228":{"position":[[0,5]]},"232":{"position":[[0,5]]},"236":{"position":[[0,5]]},"240":{"position":[[0,5]]},"250":{"position":[[0,5]]},"254":{"position":[[0,5]]},"256":{"position":[[0,5]]}}}],["reactiv",{"_index":4,"t":{"10":{"position":[[0,8]]},"19":{"position":[[0,8]]},"42":{"position":[[0,8]]},"55":{"position":[[0,8]]},"68":{"position":[[0,8]]},"101":{"position":[[0,8]]},"116":{"position":[[0,8]]}}}],["releas",{"_index":29,"t":{"144":{"position":[[0,7]]}}}],["request",{"_index":26,"t":{"140":{"position":[[5,8]]}}}],["requir",{"_index":99,"t":{"281":{"position":[[8,12]]}}}],["secur",{"_index":54,"t":{"187":{"position":[[0,8]]}}}],["set",{"_index":21,"t":{"138":{"position":[[0,7]]}}}],["signatur",{"_index":15,"t":{"109":{"position":[[0,9]]},"182":{"position":[[0,9]]}}}],["sourc",{"_index":5,"t":{"14":{"position":[[0,6]]},"27":{"position":[[0,6]]},"37":{"position":[[0,6]]},"46":{"position":[[0,6]]},"50":{"position":[[0,6]]},"63":{"position":[[0,6]]},"76":{"position":[[0,6]]},"96":{"position":[[0,6]]},"105":{"position":[[0,6]]},"111":{"position":[[0,6]]},"120":{"position":[[0,6]]},"132":{"position":[[0,7]]},"184":{"position":[[0,6]]}}}],["steer",{"_index":33,"t":{"148":{"position":[[10,8]]}}}],["style",{"_index":11,"t":{"84":{"position":[[0,7]]},"126":{"position":[[0,7]]},"176":{"position":[[0,7]]}}}],["technic",{"_index":32,"t":{"148":{"position":[[0,9]]}}}],["token",{"_index":48,"t":{"163":{"position":[[30,5]]},"187":{"position":[[16,5]]}}}],["type",{"_index":19,"t":{"130":{"position":[[5,5]]}}}],["uncontrol",{"_index":106,"t":{"297":{"position":[[0,12]]}}}],["up",{"_index":22,"t":{"138":{"position":[[8,2]]}}}],["upgrad",{"_index":91,"t":{"259":{"position":[[0,9]]},"261":{"position":[[0,9]]},"271":{"position":[[0,9]]},"273":{"position":[[0,9]]},"275":{"position":[[0,9]]},"277":{"position":[[0,9]]},"279":{"position":[[0,9]]},"291":{"position":[[0,9]]},"293":{"position":[[0,9]]}}}],["us",{"_index":51,"t":{"178":{"position":[[0,5]]}}}],["util",{"_index":87,"t":{"248":{"position":[[0,9]]},"287":{"position":[[10,7]]}}}],["v0.6",{"_index":90,"t":{"256":{"position":[[13,4]]}}}],["v1",{"_index":105,"t":{"293":{"position":[[13,2]]}}}],["v1.0",{"_index":89,"t":{"254":{"position":[[13,4]]}}}],["v2",{"_index":104,"t":{"291":{"position":[[13,2]]}}}],["v2.0",{"_index":88,"t":{"250":{"position":[[13,4]]}}}],["v3",{"_index":97,"t":{"279":{"position":[[13,2]]}}}],["v3.0",{"_index":86,"t":{"240":{"position":[[13,4]]}}}],["v3.1",{"_index":85,"t":{"236":{"position":[[13,4]]}}}],["v3.2",{"_index":84,"t":{"232":{"position":[[13,4]]},"277":{"position":[[13,4]]}}}],["v3.3",{"_index":83,"t":{"228":{"position":[[13,4]]}}}],["v4",{"_index":96,"t":{"275":{"position":[[13,2]]}}}],["v4.0",{"_index":82,"t":{"224":{"position":[[13,4]]}}}],["v4.1",{"_index":81,"t":{"220":{"position":[[13,4]]}}}],["v5.0",{"_index":80,"t":{"216":{"position":[[13,4]]}}}],["v5.1",{"_index":79,"t":{"212":{"position":[[13,4]]}}}],["v5.2",{"_index":78,"t":{"208":{"position":[[13,4]]}}}],["v5.3/v6.1",{"_index":73,"t":{"200":{"position":[[13,9]]},"271":{"position":[[13,9]]}}}],["v6",{"_index":95,"t":{"273":{"position":[[13,2]]}}}],["v6.0",{"_index":75,"t":{"204":{"position":[[13,4]]}}}],["v7.0",{"_index":72,"t":{"198":{"position":[[13,4]]},"261":{"position":[[13,4]]}}}],["v7.1",{"_index":71,"t":{"196":{"position":[[13,4]]},"259":{"position":[[13,4]]}}}],["version",{"_index":98,"t":{"281":{"position":[[0,7]]}}}],["viewport",{"_index":68,"t":{"193":{"position":[[45,8]]}}}],["vis.gl",{"_index":43,"t":{"159":{"position":[[6,6]]}}}],["what'",{"_index":76,"t":{"206":{"position":[[0,6]]},"218":{"position":[[0,6]]}}}],["within",{"_index":66,"t":{"193":{"position":[[26,6]]}}}],["without",{"_index":47,"t":{"163":{"position":[[13,7]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":2,"t":"These docs are forLooking for an old version? react-map-gl is a suite of React components for Mapbox GL JS-compatible libraries. Library Description MapLibre An open fork of mapbox-gl v1, that can be used without a mapbox token. Mapbox GL JS v1 The previous version of mapbox GL JS. This version is free open source and can be used with non-mapbox basemaps without a mapbox token. Mapbox GL JS v2 The latest version of Mapbox GL JS. Note that version 2 is not free open source, and a mapbox token is required and billable events are generated even if you do not use mapbox hosted basemaps. Other mapbox-gl forks It may be possible to use react-map-gl with other mapbox forks, but this is not a supported use case. Minor PRs to enable other forks to be used may be accepted. For basemaps: You can load map data from Mapbox's own service. You can create and host your own map data using one of the many open source tools. New to react-map-gl? Get Started Want to contribute? See our Developer Guide","s":"Introduction","u":"/react-map-gl/docs","h":"","p":1},{"i":4,"t":"react-map-gl was first created by Uber's Visualization team, where Mapbox was used as a component to build powerful web tools such as geospatial analytics and self-driving data visualization. To manage the complexity of these applications, we fully embrace React and reactive programming. The stock mapbox-gl APIs are imperative. That is, you instruct the map to do something (for example, map.flyTo), and it will execute the command at its own pace. This does not scale when we have many components that need to synchronize with each other. We sometimes render two maps side by side, and when the user interacts with one, update both cameras. We draw React UI outside of the map container, that moves with the camera. We also render WebGL graphic overlays on top of the map, most notably with deck.gl. In these use cases, in order for all components to synchronize correctly, they must have their shared states managed by React. We might store the source of truth in a parent component state, or Redux store, or hooks, and let it propagate down to the map as well as its peers. Ultimately, in the spirit of the reactive programming paradigm, data always flows down. As long as the map manages its own state, as mapbox-gl is designed to do, we risk the components going out of sync. react-map-gl creates a fully reactive wrapper for mapbox-gl. The Map component can be fully controlled, that is, the map's camera would never deviate from the props that it's assigned. Read more about this core behavior in state management.","s":"Design Philosophy","u":"/react-map-gl/docs","h":"#design-philosophy","p":1},{"i":6,"t":"In v7.0, react-map-gl was fully rewritten to better align its API with the underlying Mapbox GL JS library. Wherever the reactive usage patterns permits, the wrapper's props and methods are 1:1 mappings to their native API equivelants. It is possible to call the native methods directly from the Map instance obtained via getMap. However, doing so may result in the map's state to deviate from its props. For example, calling map.setMaxZoom directly will cause the map's constraint settings to differ from the value of the maxZoom prop. Generally speaking, calling a native method is disencouraged if the same thing can be achieved through the React interface. If a third-party plugin does so, then it may lead to some unexpected behaviors.","s":"Limitations","u":"/react-map-gl/docs","h":"#limitations","p":1},{"i":8,"t":"React component that wraps the base library's AttributionControl class (Mapbox | Maplibre). Mapbox Maplibre import * as React from 'react'; import Map, {AttributionControl} from 'react-map-gl'; function App() { return \" initialViewState={{ longitude: -100, latitude: 40, zoom: 3.5 }} mapStyle=\"mapbox://styles/mapbox/streets-v9\" // disable the default attribution attributionControl={false} > ; } import * as React from 'react'; import Map, {AttributionControl} from 'react-map-gl/maplibre'; function App() { return ; }","s":"AttributionControl","u":"/react-map-gl/docs/api-reference/attribution-control","h":"","p":7},{"i":11,"t":"style: CSSProperties​ CSS style override that applies to the control's container.","s":"Reactive Properties","u":"/react-map-gl/docs/api-reference/attribution-control","h":"#reactive-properties","p":7},{"i":13,"t":"The properties in this section are not reactive. They are only used when the component first mounts. Any options supported by the AttributionControl class (Mapbox | Maplibre), such as compact customAttribution Plus the following: position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'​ Default: 'bottom-right' Placement of the control relative to the map.","s":"Other Properties","u":"/react-map-gl/docs/api-reference/attribution-control","h":"#other-properties","p":7},{"i":15,"t":"attribution-control.ts","s":"Source","u":"/react-map-gl/docs/api-reference/attribution-control","h":"#source","p":7},{"i":17,"t":"React component that wraps the base library's GeolocateControl class (Mapbox | Maplibre). Mapbox Maplibre import * as React from 'react'; import Map, {GeolocateControl} from 'react-map-gl'; function App() { return \" initialViewState={{ longitude: -100, latitude: 40, zoom: 3.5 }} mapStyle=\"mapbox://styles/mapbox/streets-v9\" > ; } import * as React from 'react'; import Map, {GeolocateControl} from 'react-map-gl/maplibre'; function App() { return ; }","s":"GeolocateControl","u":"/react-map-gl/docs/api-reference/geolocate-control","h":"","p":16},{"i":20,"t":"style: CSSProperties​ CSS style override that applies to the control's container.","s":"Reactive Properties","u":"/react-map-gl/docs/api-reference/geolocate-control","h":"#reactive-properties","p":16},{"i":22,"t":"onGeolocate: (evt: GeolocateResultEvent) => void​ Called on each Geolocation API position update that returned as success. onError: (evt: GeolocateErrorEvent) => void​ Called on each Geolocation API position update that returned as an error. onOutOfMaxBounds: (evt: GeolocateResultEvent) => void​ Called on each Geolocation API position update that returned as success but user position is out of map maxBounds. onTrackUserLocationStart: (evt: GeolocateEvent) => void​ Called when the GeolocateControl changes to the active lock state. onTrackUserLocationEnd: (evt: GeolocateEvent) => void​ Called when the GeolocateControl changes to the background state.","s":"Callbacks","u":"/react-map-gl/docs/api-reference/geolocate-control","h":"#callbacks","p":16},{"i":24,"t":"The properties in this section are not reactive. They are only used when the component first mounts. Any options supported by the GeolocateControl class (Mapbox | Maplibre), such as positionOptions fitBoundsOptions trackUserLocation showAccuracyCircle showUserLocation Plus the following: position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'​ Default: 'bottom-right' Placement of the control relative to the map.","s":"Other Properties","u":"/react-map-gl/docs/api-reference/geolocate-control","h":"#other-properties","p":16},{"i":26,"t":"The underlying native GeolocateControl instance is accessible via a React ref hook. You may use it to call any imperative methods: Mapbox Maplibre import * as React from 'react'; import {useRef, useEffect} from 'react'; import Map, {GeolocateControl} from 'react-map-gl'; import type mapboxgl from 'mapbox-gl'; function App() { const geoControlRef = useRef(); useEffect(() => { // Activate as soon as the control is loaded geoControlRef.current?.trigger(); }, [geoControlRef.current]); return ; } import * as React from 'react'; import {useRef, useEffect} from 'react'; import Map, {GeolocateControl} from 'react-map-gl/maplibre'; import type maplibregl from 'maplibre-gl'; function App() { const geoControlRef = useRef(); useEffect(() => { // Activate as soon as the control is loaded geoControlRef.current?.trigger(); }, [geoControlRef.current]); return ; }","s":"Methods","u":"/react-map-gl/docs/api-reference/geolocate-control","h":"#methods","p":16},{"i":28,"t":"geolocate-control.ts","s":"Source","u":"/react-map-gl/docs/api-reference/geolocate-control","h":"#source","p":16},{"i":30,"t":"This component allows apps to create a map layer using React. Mapbox Maplibre import * as React from 'react'; import Map, {Layer} from 'react-map-gl'; import type {FillLayer} from 'react-map-gl'; const parkLayer: FillLayer = { id: 'landuse_park', type: 'fill', source: 'mapbox', 'source-layer': 'landuse', filter: ['==', 'class', 'park'], paint: { 'fill-color': '#4E3FC8' } }; function App() { return \" initialViewState={{ longitude: -122.4, latitude: 37.8, zoom: 14 }} mapStyle=\"mapbox://styles/mapbox/streets-v9\" > ; } import * as React from 'react'; import Map, {Layer} from 'react-map-gl/maplibre'; import type {FillLayer} from 'react-map-gl/maplibre'; const parkLayer: FillLayer = { id: 'landuse_park', type: 'fill', source: 'mapbox', 'source-layer': 'landuse', filter: ['==', 'class', 'park'], paint: { 'fill-color': '#4E3FC8' } }; function App() { return ; }","s":"Layer","u":"/react-map-gl/docs/api-reference/layer","h":"","p":29},{"i":32,"t":"The props provided to this component should be conforming to the Mapbox layer specification. When props change shallowly, the component will perform style diffing to update the layer. Avoid defining constant objects/arrays inline may help performance.","s":"Properties","u":"/react-map-gl/docs/api-reference/layer","h":"#properties","p":29},{"i":34,"t":"Once a is mounted, the following props should not change. If you add/remove multiple JSX layers dynamically, make sure you use React's key prop to give each element a stable identity. id: string​ Unique identifier of the layer. If not provided, a default id will be assigned. type: string​ Required. Type of the layer.","s":"Identity Properties","u":"/react-map-gl/docs/api-reference/layer","h":"#identity-properties","p":29},{"i":36,"t":"beforeId: string​ The ID of an existing layer to insert this layer before. If this prop is omitted, the layer will be appended to the end of the layers array. This is useful when using dynamic layers with a map style from a URL. Note that layers are added by the order that they mount. They are NOT reordered later if their relative positions in the JSX tree change. If dynamic reordering is desired, you should manipulate beforeId for consistent behavior. source: string​ source is required by some layer types in the Mapbox style specification. If is used as the immediate child of a Source component, this prop will be overwritten by the id of the parent source. If the component is not an immediate descendant of , e.g wrapped inside a helper component, source property needs to be provided same as the id of the component for the component to show.","s":"Options","u":"/react-map-gl/docs/api-reference/layer","h":"#options","p":29},{"i":38,"t":"layer.ts","s":"Source","u":"/react-map-gl/docs/api-reference/layer","h":"#source","p":29},{"i":40,"t":"React component that wraps the base library's FullscreenControl class (Mapbox | Maplibre). Mapbox Maplibre import * as React from 'react'; import Map, {FullscreenControl} from 'react-map-gl'; function App() { return \" initialViewState={{ longitude: -100, latitude: 40, zoom: 3.5 }} mapStyle=\"mapbox://styles/mapbox/streets-v9\" > ; } import * as React from 'react'; import Map, {FullscreenControl} from 'react-map-gl/maplibre'; function App() { return ; }","s":"FullscreenControl","u":"/react-map-gl/docs/api-reference/fullscreen-control","h":"","p":39},{"i":43,"t":"style: CSSProperties​ CSS style override that applies to the control's container.","s":"Reactive Properties","u":"/react-map-gl/docs/api-reference/fullscreen-control","h":"#reactive-properties","p":39},{"i":45,"t":"The properties in this section are not reactive. They are only used when the component first mounts. containerId: string​ Id of the DOM element which should be made full screen. By default, the map container element will be made full screen. position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'​ Default: 'top-right' Placement of the control relative to the map.","s":"Other Properties","u":"/react-map-gl/docs/api-reference/fullscreen-control","h":"#other-properties","p":39},{"i":47,"t":"fullscreen-control.ts","s":"Source","u":"/react-map-gl/docs/api-reference/fullscreen-control","h":"#source","p":39},{"i":49,"t":"A Context.Provider that facilitates map operations outside of the component that directly renders a Map. The component should wrap all nodes in which you may want to access the maps: import {MapProvider} from 'react-map-gl'; function Root() { return ( { // Application tree, somewhere one or more component(s) are rendered } ); } See useMap for more information.","s":"MapProvider","u":"/react-map-gl/docs/api-reference/map-provider","h":"","p":48},{"i":51,"t":"use-map.tsx","s":"Source","u":"/react-map-gl/docs/api-reference/map-provider","h":"#source","p":48},{"i":53,"t":"React component that wraps the base library's Marker class (Mapbox | Maplibre). Mapbox Maplibre import * as React from 'react'; import Map, {Marker} from 'react-map-gl'; function App() { return \" initialViewState={{ longitude: -100, latitude: 40, zoom: 3.5 }} mapStyle=\"mapbox://styles/mapbox/streets-v9\" > ; } import * as React from 'react'; import Map, {Marker} from 'react-map-gl/maplibre'; function App() { return ; } If Marker is mounted with child components, then its content will be rendered to the specified location. If it is mounted with no content, then a default marker will be used.","s":"Marker","u":"/react-map-gl/docs/api-reference/marker","h":"","p":52},{"i":56,"t":"draggable: boolean​ Default: false If true, the marker is able to be dragged to a new position on the map. latitude: number​ Required. The latitude of the anchor location. longitude: number​ Required. The longitude of the anchor location. offset: PointLike​ Default: null The offset in pixels as a PointLike object to apply relative to the element's center. Negatives indicate left and up. pitchAlignment: 'map' | 'viewport' | 'auto'​ Default: 'auto' map aligns the Marker to the plane of the map. viewport aligns the Marker to the plane of the viewport. auto automatically matches the value of rotationAlignment. popup: Popup | null​ An instance of the Popup class (Mapbox | Maplibre) to attach to this marker. If undefined or null, any popup set on this Marker instance is unset. rotation: number​ Default: 0 The rotation angle of the marker in degrees, relative to its rotationAlignment setting. A positive value will rotate the marker clockwise. rotationAlignment: 'map' | 'viewport' | 'auto'​ Default: 'auto' map aligns the Marker's rotation relative to the map, maintaining a bearing as the map rotates. viewport aligns the Marker's rotation relative to the viewport, agnostic to map rotations. auto is equivalent to viewport. style: CSSProperties​ CSS style override that applies to the marker's container.","s":"Reactive Properties","u":"/react-map-gl/docs/api-reference/marker","h":"#reactive-properties","p":52},{"i":58,"t":"onClick: (evt: MapEvent) => void​ Called when the marker is clicked on. onDragStart: (evt: MarkerDragEvent) => void​ Called when dragging starts, if draggable is true. onDrag: (evt: MarkerDragEvent) => void​ Called while dragging, if draggable is true. onDragEnd: (evt: MarkerDragEvent) => void​ Called when dragging ends, if draggable is true.","s":"Callbacks","u":"/react-map-gl/docs/api-reference/marker","h":"#callbacks","p":52},{"i":60,"t":"The properties in this section are not reactive. They are only used when the component first mounts. Any options supported by the Marker class (Mapbox | Maplibre), such as anchor color scale clickTolerance","s":"Other Properties","u":"/react-map-gl/docs/api-reference/marker","h":"#other-properties","p":52},{"i":62,"t":"The underlying native Marker instance is accessible via a React ref hook. You may use it to call any imperative methods: Mapbox Maplibre import * as React from 'react'; import {useRef, useMemo, useCallback} from 'react'; import Map, {Marker} from 'react-map-gl'; import mapboxgl from 'mapbox-gl'; function App() { const markerRef = useRef(); const popup = useMemo(() => { return mapboxgl.Popup().setText('Hello world!'); }, []) const togglePopup = useCallback(() => { markerRef.current?.togglePopup(); }, []); return <> ; } import * as React from 'react'; import {useRef, useMemo, useCallback} from 'react'; import Map, {Marker} from 'react-map-gl/maplibre'; import maplibregl from 'maplibre-gl'; function App() { const markerRef = useRef(); const popup = useMemo(() => { return maplibregl.Popup().setText('Hello world!'); }, []) const togglePopup = useCallback(() => { markerRef.current?.togglePopup(); }, []); return <> ; }","s":"Methods","u":"/react-map-gl/docs/api-reference/marker","h":"#methods","p":52},{"i":64,"t":"marker.ts","s":"Source","u":"/react-map-gl/docs/api-reference/marker","h":"#source","p":52},{"i":66,"t":"React component that wraps the base library's Popup class (Mapbox | Maplibre). Mapbox Maplibre import * as React from 'react'; import {useState} from 'react'; import Map, {Popup} from 'react-map-gl'; function App() { const [showPopup, setShowPopup] = useState(true); return \" initialViewState={{ longitude: -100, latitude: 40, zoom: 3.5 }} mapStyle=\"mapbox://styles/mapbox/streets-v9\" > {showPopup && ( setShowPopup(false)}> You are here )} ; } import * as React from 'react'; import {useState} from 'react'; import Map, {Popup} from 'react-map-gl/maplibre'; function App() { const [showPopup, setShowPopup] = useState(true); return {showPopup && ( setShowPopup(false)}> You are here )} ; }","s":"Popup","u":"/react-map-gl/docs/api-reference/popup","h":"","p":65},{"i":69,"t":"anchor: 'center' | 'left' | 'right' | 'top' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | undefined​ A string indicating the part of the popup that should be positioned closest to the coordinate, set via longitude and latitude. If unset, the anchor will be dynamically set to ensure the popup falls within the map container with a preference for 'bottom'. className: string​ Space-separated CSS class names to add to popup container. offset: number | PointLike | Record\\​ Default: null A pixel offset applied to the popup's location specified as: a single number specifying a distance from the popup's location a PointLike specifying a constant offset an object of Points specifing an offset for each anchor position. Negative offsets indicate left and up. maxWidth: string​ Default: 240px A string that sets the CSS property of the popup's maximum width. style: CSSProperties​ CSS style override that applies to the popup's container.","s":"Reactive Properties","u":"/react-map-gl/docs/api-reference/popup","h":"#reactive-properties","p":65},{"i":71,"t":"onOpen: (evt: PopupEvent) => void​ Called when the popup is opened. onClose: (evt: PopupEvent) => void​ Called when the popup is closed by the user clicking on the close button or outside (if closeOnClick: true).","s":"Callbacks","u":"/react-map-gl/docs/api-reference/popup","h":"#callbacks","p":65},{"i":73,"t":"The properties in this section are not reactive. They are only used when the component first mounts. Any options supported by the Popup class (Mapbox | Maplibre), such as closeButton closeOnClick closeOnMove focusAfterOpen","s":"Other Properties","u":"/react-map-gl/docs/api-reference/popup","h":"#other-properties","p":65},{"i":75,"t":"The underlying native Popup instance is accessible via a React ref hook. You may use it to call any imperative methods: Mapbox Maplibre import * as React from 'react'; import {useRef, useEffect} from 'react'; import Map, {Popup} from 'react-map-gl'; import mapboxgl from 'mapbox-gl'; function App() { const popupRef = useRef(); useEffect(() => { popupRef.current?.trackPointer(); }, [popupRef.current]) return Tooltip ; } import * as React from 'react'; import {useRef, useEffect} from 'react'; import Map, {Popup} from 'react-map-gl/maplibre'; import maplibregl from 'maplibre-gl'; function App() { const popupRef = useRef(); useEffect(() => { popupRef.current?.trackPointer(); }, [popupRef.current]) return Tooltip ; }","s":"Methods","u":"/react-map-gl/docs/api-reference/popup","h":"#methods","p":65},{"i":77,"t":"popup.ts","s":"Source","u":"/react-map-gl/docs/api-reference/popup","h":"#source","p":65},{"i":79,"t":"React component that wraps the base library's Map class (Mapbox | Maplibre). This is also the default export from react-map-gl. Mapbox Maplibre app.tsx import * as React from 'react'; import Map from 'react-map-gl'; function App() { return ( \" initialViewState={{ longitude: -122.4, latitude: 37.8, zoom: 14 }} style={{width: 600, height: 400}} mapStyle=\"mapbox://styles/mapbox/streets-v9\" /> ); } app.tsx import * as React from 'react'; import Map from 'react-map-gl/maplibre'; function App() { return ( ); }","s":"default (Map)","u":"/react-map-gl/docs/api-reference/map","h":"","p":78},{"i":81,"t":"Aside from the props listed below, the Map component supports all parameters of the Map class constructor (Mapbox | Maplibre). Beware that this is not an exhaustive list of all props. Different base map libraries may offer different options and default values. When in doubt, refer to your base map library's documentation.","s":"Properties","u":"/react-map-gl/docs/api-reference/map","h":"#properties","p":78},{"i":83,"t":"id: string​ Map container id. style: CSSProperties​ Default: {position: 'relative', width: '100%', height: '100%'} Map container CSS. cursor: string​ Default: 'auto' The current cursor type.","s":"Layout options","u":"/react-map-gl/docs/api-reference/map","h":"#layout-options","p":78},{"i":85,"t":"fog: Fog​ The fog property of the style. Must conform to the Fog Style Specification. If undefined is provided, removes the fog from the map. light: Light​ Light properties of the style. Must conform to the Light Style Specification. mapStyle: MapStyle | string | Immutable​ Default: (empty style) The map's Mapbox style. This must be an a JSON object conforming to the schema described in the Mapbox Style Specification, or a URL to such JSON. projection: string | Projection​ Default: 'mercator' The projection the map should be rendered in. Available projections are Albers ('albers'), Equal Earth ('equalEarth'), Equirectangular/Plate Carrée/WGS84 ('equirectangular'), Lambert ('lambertConformalConic'), Mercator ('mercator'), Natural Earth ('naturalEarth'), and Winkel Tripel ('winkelTripel'). Conic projections such as Albers and Lambert have configurable center and parallels properties that allow developers to define the region in which the projection has minimal distortion; see example. renderWorldCopies: boolean​ Default: true If true, multiple copies of the world will be rendered, when zoomed out. styleDiffing: boolean​ Default: true Enable diffing when mapStyle changes. If false, force a 'full' update, removing the current style and building the given one instead of attempting a diff-based update. terrain: Terrain​ Terrain property of the style. Must conform to the Terrain Style Specification. If undefined is provided, removes terrain from the map.","s":"Styling options","u":"/react-map-gl/docs/api-reference/map","h":"#styling-options","p":78},{"i":87,"t":"initialViewState: object​ The initial view state of the map. If specified, longitude, latitude, zoom etc. in props are ignored when constructing the map. Only specify initialViewState if Map is being used as an uncontrolled component. See state management for examples. bounds: LngLatBoundsLike - The initial bounds of the map. If specified, it overrides the longitude, latitude and zoom options. Default null. fitBoundsOptions - An object to use only when setting the bounds option. Default null. fitBoundsOptions.offset: PointLike fitBoundsOptions.minZoom: number fitBoundsOptions.maxZoom: number fitBoundsOptions.padding: PaddingOptions longitude: number - The initial longitude of the map center. Default 0. latitude: number - The initial latitude of the map center. Default 0. zoom: number - The initial zoom level. Default 0. pitch: number - The initial pitch (tilt) of the map. Default 0. bearing: number - The initial bearing (rotation) of the map. Default 0. longitude: number​ The longitude of the map center. latitude: number​ The latitude of the map center. zoom: number​ The zoom level of the map. pitch: number​ The initial pitch (tilt) of the map, measured in degrees away from the plane of the screen (0-85). bearing: number​ The initial bearing (rotation) of the map, measured in degrees counter-clockwise from north. padding: PaddingOptions​ Default: null The padding in pixels around the viewport. minZoom: number​ Default: 0 The minimum zoom level of the map (0-24). maxZoom: number​ Default: 22 The maximum zoom level of the map (0-24). minPitch: number​ Default: 0 The minimum pitch of the map (0-85). maxPitch: number​ Default: 60 The maximum pitch of the map (0-85). maxBounds: LngLatBoundsLike​ Default: null If set, the map is constrained to the given bounds.","s":"Camera options","u":"/react-map-gl/docs/api-reference/map","h":"#camera-options","p":78},{"i":89,"t":"boxZoom: boolean​ Default: true If true, the \"box zoom\" interaction is enabled. See BoxZoomHandler (Mapbox | Maplibre) doubleClickZoom: boolean​ Default: true If true, the \"double click to zoom\" interaction is enabled. See DoubleClickZoomHandler (Mapbox | Maplibre). dragRotate: boolean​ Default: true If true, the \"drag to rotate\" interaction is enabled. See DragRotateHandler (Mapbox | Maplibre). dragPan: boolean | Object​ Default: true If true, the \"drag to pan\" interaction is enabled. Optionally accpt an object value that is the options to DragPanHandler.enable (Mapbox | Maplibre). keyboard: boolean​ Default: true If true, keyboard shortcuts are enabled. See KeyboardHandler (Mapbox | Maplibre). scrollZoom: boolean | Object​ Default: true If true, the \"scroll to zoom\" interaction is enabled. Optionally accpt an object value that is the options to ScrollZoomHandler.enable (Mapbox | Maplibre) touchPitch: boolean | Object​ Default: true If true, the \"drag to pitch\" interaction is enabled. Optionally accpt an object value that is the options to TouchPitchHandler.enable(Mapbox | Maplibre). touchZoomRotate: boolean | Object​ Default: true If true, the \"pinch to rotate and zoom\" interaction is enabled. Optionally accpt an object value that is the options to TouchZoomRotateHandler.enable (Mapbox | Maplibre). interactiveLayerIds: string[]​ Default: null The id(s) of style layer(s). If specified, pointer event (mousemove, click etc.) listeners will be triggered only if its location is within a visible feature in these layers, and the event will have a features property containing an array of the matching features. If not specified, pointer event listeners will be triggered by a corresponding event happening anywhere on the map, and the event will not have a features property. See the Callbacks section for affected events.","s":"Input handler options","u":"/react-map-gl/docs/api-reference/map","h":"#input-handler-options","p":78},{"i":91,"t":"onResize: (event: MapEvent) => void​ Called when the map has been resized. onLoad: (event: MapEvent) => void​ Called after all necessary resources have been downloaded and the first visually complete rendering of the map has occurred. onRender: (event: MapEvent)) => void​ Called whenever the map is drawn to the screen. onIdle: (event: MapEvent)) => void​ Called after the last frame rendered before the map enters an \"idle\" state: No camera transitions are in progress All currently requested tiles have loaded All fade/transition animations have completed onRemove: (event: MapEvent)) => void​ Called when the map has been removed. onError: (event: ErrorEvent) => void​ Default: evt => console.error(evt.error) Called when an error occurs. onMouseDown: (event: MapLayerMouseEvent) => void​ Called when a pointing device (usually a mouse) is pressed within the map. If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer. onMouseUp: (event: MapLayerMouseEvent) => void​ Called when a pointing device (usually a mouse) is released within the map. If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer. onMouseOver: (event: MapLayerMouseEvent) => void​ Called when a pointing device (usually a mouse) is moved within the map. As you move the cursor across a web page containing a map, the event will fire each time it enters the map or any child elements. onMouseEnter: (event: MapLayerMouseEvent) => void​ Called when a pointing device (usually a mouse) enters a visible portion of the layer(s) specified by interactiveLayerIds from outside that layer or outside the map canvas. onMouseMove: (event: MapLayerMouseEvent) => void​ Called when a pointing device (usually a mouse) is moved while the cursor is inside the map. As you move the cursor across the map, the event will fire every time the cursor changes position within the map. If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer. onMouseLeave: (event: MapLayerMouseEvent) => void​ Called when a pointing device (usually a mouse) leaves a visible portion of the layer(s) specified by interactiveLayerIds or moves from the layer to outside the map canvas. onMouseOut: (event: MapLayerMouseEvent) => void​ Called when a point device (usually a mouse) leaves the map's canvas. onClick: (event: MapLayerMouseEvent) => void​ Called when a pointing device (usually a mouse) is pressed and released at the same point on the map. If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer. onDblClick: (event: MapLayerMouseEvent) => void​ Called when a pointing device (usually a mouse) is pressed and released twice at the same point on the map in rapid succession. If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer. onContextMenu: (event: MapLayerMouseEvent) => void​ Called when the right button of the mouse is clicked or the context menu key is pressed within the map. If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer. onWheel: (event: MapWheelEvent) => void​ Called when a wheel event occurs within the map. onTouchStart: (event: MapLayerTouchEvent) => void​ Called when a touchstart event occurs within the map. If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer. onTouchEnd: (event: MapLayerTouchEvent) => void​ Called when a touchend event occurs within the map. If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer. onTouchMove: (event: MapLayerTouchEvent) => void​ Called when a touchmove event occurs within the map. If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer. onTouchCancel: (event: MapLayerTouchEvent) => void​ Called when a touchcancel event occurs within the map. If interactiveLayerIds is specified, the event will contain an additional features field that contains features under the cursor from the specified layer. onMoveStart: (event: ViewStateChangeEvent) => void​ Called just before the map begins a transition from one view to another. onMove: (event: ViewStateChangeEvent) => void​ Called repeatedly during an animated transition from one view to another. When Map is used as a controlled component, event.viewState reflects the view state that the camera \"proposes\" to move to, as a result of either user interaction or methods such as flyTo. The camera does not actually change until the application updates the view state props (longitude, latitude, zoom etc.). See state management for examples. onMoveEnd: (event: ViewStateChangeEvent) => void​ Called just after the map completes a transition from one view to another. onDragStart: (event: ViewStateChangeEvent) => void​ Called when a \"drag to pan\" interaction starts. onDrag: (event: ViewStateChangeEvent) => void​ Called repeatedly during a \"drag to pan\" interaction. onDragEnd: (event: ViewStateChangeEvent) => void​ Called when a \"drag to pan\" interaction ends. onZoomStart: (event: ViewStateChangeEvent) => void​ Called just before the map begins a transition from one zoom level to another. onZoom: (event: ViewStateChangeEvent) => void​ Called repeatedly during an animated transition from one zoom level to another. When Map is used as a controlled component, event.viewState.zoom reflects the zoom that the camera \"proposes\" to change to, as a result of either user interaction or methods such as flyTo. The camera does not actually change until the application updates the zoom prop. onZoomEnd: (event: ViewStateChangeEvent) => void​ Called just after the map completes a transition from one zoom level to another. onRotateStart: (event: ViewStateChangeEvent) => void​ Called just before the map begins a transition from one bearing (rotation) to another. onRotate: (event: ViewStateChangeEvent) => void​ Called repeatedly during an animated transition from one bearing (rotation) to another. When Map is used as a controlled component, event.viewState.bearing reflects the zoom that the camera \"proposes\" to change to, as a result of either user interaction or methods such as flyTo. The camera does not actually change until the application updates the bearing prop. onRotateEnd: (event: ViewStateChangeEvent) => void​ Called just after the map completes a transition from one bearing (rotation) to another. onPitchStart: (event: ViewStateChangeEvent) => void​ Called just before the map begins a transition from one pitch (tilt) to another. onPitch: (event: ViewStateChangeEvent) => void​ Called repeatedly during an animated transition from one pitch (tilt) to another. When Map is used as a controlled component, event.viewState.pitch reflects the zoom that the camera \"proposes\" to change to, as a result of either user interaction or methods such as flyTo. The camera does not actually change until the application updates the pitch prop. onPitchEnd: (event: ViewStateChangeEvent) => void​ Called just after the map completes a transition from one pitch (tilt) to another. onBoxZoomStart: (event: MapBoxZoomEvent) => void​ Called when a \"box zoom\" interaction starts. onBoxZoomEnd: (event: MapBoxZoomEvent) => void​ Called when a \"box zoom\" interaction ends. onBoxZoomCancel: (event:MapBoxZoomEvent) => void​ Called when the user cancels a \"box zoom\" interaction, or when the bounding box does not meet the minimum size threshold. onData: (event: MapStyleDataEvent | MapSourceDataEvent) => void​ Called when any map data loads or changes. See MapDataEvent for more information. onStyleData: (event: MapStyleDataEvent) => void​ Called when the map's style loads or changes. See MapDataEvent for more information. onSourceData: (event: MapSourceDataEvent) => void​ Called when one of the map's sources loads or changes, including if a tile belonging to a source loads or changes. See MapDataEvent for more information.","s":"Callbacks","u":"/react-map-gl/docs/api-reference/map","h":"#callbacks","p":78},{"i":93,"t":"The following props, along with any options of the Map class (Mapbox | Maplibre) not listed above, can be specified to construct the underlying Map instance. Note: props in this section are not reactive. They are only used once when the Map instance is constructed. mapLib: any​ Default: import('mapbox-gl') if imported from react-map-gl import('maplibre-gl') if imported from react-map-gl/maplibre Specify the underlying base map library for the Map component. The value can be provided with several options: By module import (and embedding in the final bundle): import * as React from 'react'; import Map from 'react-map-gl'; import mapboxgl from 'mapbox-gl'; function App() { return ; } By dynamic import (thus enable bundle splitting): import * as React from 'react'; import Map from 'react-map-gl'; function App() { return ; } Or to load a pre-bundled version of the library: index.html app.tsx import * as React from 'react'; import Map from 'react-map-gl'; function App() { return ; } mapboxAccessToken: string​ Token used to access the Mapbox data service. See about map tokens. baseApiUrl: string​ The map's default API URL for requesting tiles, styles, sprites, and glyphs. maxParallelImageRequests: number​ Default: 16 The maximum number of images (raster tiles, sprites, icons) to load in parallel. reuseMaps: boolean​ Default: false By default, every time a map component is unmounted, all internal resources associated with the underlying Map instance are released. If the map gets mounted again, a new Map instance is constructed. If reuseMaps is set to true, when a map component is unmounted, the underlying Map instance is retained in memory. The next time a map component gets mounted, the saved instance is reused. This behavior may be desirable if an application frequently mounts/unmounts map(s), for example in a tabbed or collapsable UI, and wants to avoid Mapbox's billable events triggered by initialization. Note that since some map options cannot be modified after initialization, when reusing maps, only the reactive props and initialViewState of the new component are respected. RTLTextPlugin: string | false​ Default: 'https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js' Sets the map's RTL text plugin. Necessary for supporting the Arabic and Hebrew languages, which are written right-to-left. Setting this prop is the equivalent of calling mapboxgl.setRTLTextPlugin with lazy: true. Set to false to disable loading the RTL text plugin. workerClass: object​ Default: null Provides an interface for external module bundlers such as Webpack or Rollup to package mapbox-gl's WebWorker into a separate class and integrate it with the library. Takes precedence over workerUrl. workerCount: number​ Default: 2 The number of web workers instantiated on a page with mapbox-gl maps. workerUrl: string​ Provides an interface for loading mapbox-gl's WebWorker bundle from a self-hosted URL. This is useful if your site needs to operate in a strict CSP (Content Security Policy) environment wherein you are not allowed to load JavaScript code from a Blob URL, which is default behavior.","s":"Other options","u":"/react-map-gl/docs/api-reference/map","h":"#other-options","p":78},{"i":95,"t":"Imperative methods are accessible via a React ref or the useMap hook. Mapbox Maplibre import * as React from 'react'; import {useRef, useCallback} from 'react'; import Map from 'react-map-gl'; import type {MapRef} from 'react-map-gl'; function App() { const mapRef = useRef(); const onMapLoad = useCallback(() => { mapRef.current.on('move', () => { // do something }); }, []); return ; } import * as React from 'react'; import {useRef, useCallback} from 'react'; import Map from 'react-map-gl/maplibre'; import type {MapRef} from 'react-map-gl/maplibre'; function App() { const mapRef = useRef(); const onMapLoad = useCallback(() => { mapRef.current.on('move', () => { // do something }); }, []); return ; } The MapRef object exposes Map methods (Mapbox | Maplibre) that are safe to call without breaking the React bindings. For example, setStyle() is hidden from the ref object, because the style is supposed to be changed by updating the mapStyle prop. Calling the method directly may cause the the React prop to mismatch with the underlying state, and lead to unexpected behaviors. You can still access the hidden members via getMap(): getMap()​ Returns the native Map (Mapbox | Maplibre) instance associated with this component.","s":"Methods","u":"/react-map-gl/docs/api-reference/map","h":"#methods","p":78},{"i":97,"t":"map.tsx","s":"Source","u":"/react-map-gl/docs/api-reference/map","h":"#source","p":78},{"i":99,"t":"React component that wraps the base library's NavigationControl class (Mapbox | Maplibre). Mapbox Maplibre import * as React from 'react'; import Map, {NavigationControl} from 'react-map-gl'; function App() { return \" initialViewState={{ longitude: -100, latitude: 40, zoom: 3.5 }} mapStyle=\"mapbox://styles/mapbox/streets-v9\" > ; } import * as React from 'react'; import Map, {NavigationControl} from 'react-map-gl/maplibre'; function App() { return ; }","s":"NavigationControl","u":"/react-map-gl/docs/api-reference/navigation-control","h":"","p":98},{"i":102,"t":"style: CSSProperties​ CSS style override that applies to the control's container.","s":"Reactive Properties","u":"/react-map-gl/docs/api-reference/navigation-control","h":"#reactive-properties","p":98},{"i":104,"t":"The properties in this section are not reactive. They are only used when the component first mounts. Any options supported by the NavigationControl class (Mapbox | Maplibre), such as showCompass showZoom visualizePitch Plus the following: position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'​ Default: 'top-right' Placement of the control relative to the map.","s":"Other Properties","u":"/react-map-gl/docs/api-reference/navigation-control","h":"#other-properties","p":98},{"i":106,"t":"navigation-control.ts","s":"Source","u":"/react-map-gl/docs/api-reference/navigation-control","h":"#source","p":98},{"i":108,"t":"The useControl hook is used to create React wrappers for custom map controls. import MapboxDraw from '@mapbox/mapbox-gl-draw'; import Map, {useControl} from 'react-map-gl'; function DrawControl(props: DrawControlProps) { useControl(() => new MapboxDraw(props), { position: props.position }); return null; } function App() { return ( ); } See a full example here.","s":"useControl","u":"/react-map-gl/docs/api-reference/use-control","h":"","p":107},{"i":110,"t":"useControl( onCreate: ({map: MapRef, mapLib: mapboxgl}) => IControl, options?: { position?: ControlPosition; } ): T useControl( onCreate: ({map: MapRef, mapLib: mapboxgl}) => IControl, onRemove: ({map: MapRef, mapLib: mapboxgl}) => void, options?: { position?: ControlPosition; } ): T useControl( onCreate: ({map: MapRef, mapLib: mapboxgl}) => IControl, onAdd: ({map: MapRef, mapLib: mapboxgl}) => void, onRemove: ({map: MapRef, mapLib: mapboxgl}) => void, options?: { position?: ControlPosition; } ): T The hook creates an IControl instance, adds it to the map when it's available, and removes it upon unmount. Parameters: onCreate: ({map: MapRef, mapLib: mapboxgl}) => IControl - called to create an instance of the control. onAdd: ({map: MapRef, mapLib: mapboxgl}) => void - called when the control has been added to the map. onRemove: ({map: MapRef, mapLib: mapboxgl}) => void - called when the control is about to be removed from the map. options: object position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' - control position relative to the map Returns: IControl - the control instance from onCreate.","s":"Signature","u":"/react-map-gl/docs/api-reference/use-control","h":"#signature","p":107},{"i":112,"t":"use-control.ts","s":"Source","u":"/react-map-gl/docs/api-reference/use-control","h":"#source","p":107},{"i":114,"t":"React component that wraps the base library's ScaleControl class (Mapbox | Maplibre). Mapbox Maplibre import * as React from 'react'; import Map, {ScaleControl} from 'react-map-gl'; function App() { return \" initialViewState={{ longitude: -100, latitude: 40, zoom: 3.5 }} mapStyle=\"mapbox://styles/mapbox/streets-v9\" > ; } import * as React from 'react'; import Map, {ScaleControl} from 'react-map-gl/maplibre'; function App() { return ; }","s":"ScaleControl","u":"/react-map-gl/docs/api-reference/scale-control","h":"","p":113},{"i":117,"t":"maxWidth: string​ Default: 100 The maximum length of the scale control in pixels. style: CSSProperties​ CSS style override that applies to the control's container. unit: 'imperial' | 'metric' | 'nautical'​ Default: 'metric' Unit of the distance.","s":"Reactive Properties","u":"/react-map-gl/docs/api-reference/scale-control","h":"#reactive-properties","p":113},{"i":119,"t":"The properties in this section are not reactive. They are only used when the component first mounts. position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'​ Default: 'top-right' Placement of the control relative to the map.","s":"Other Properties","u":"/react-map-gl/docs/api-reference/scale-control","h":"#other-properties","p":113},{"i":121,"t":"scale-control.ts","s":"Source","u":"/react-map-gl/docs/api-reference/scale-control","h":"#source","p":113},{"i":123,"t":"The following types can be imported from react-map-gl when using TypeScript.","s":"Types","u":"/react-map-gl/docs/api-reference/types","h":"","p":122},{"i":125,"t":"IControl​ A custom control implementation. CustomLayerInterface​ A custom layer implementation. MapRef​ Instance ref of a Map component. See Map documentation for details.","s":"Components","u":"/react-map-gl/docs/api-reference/types","h":"#components","p":122},{"i":127,"t":"MapStyle​ An object conforming to the Mapbox Style Specification. Fog​ An object conforming to the Fog Style Specification. Light​ An object conforming to the Light Style Specification. Terrain​ An object conforming to the Terrain Style Specification. Projection​ An object conforming to the Projection Style Specification. BackgroundLayer​ A JSON object that defines a background layer according to the Mapbox Style Specification. CircleLayer​ A JSON object that defines a circle layer according to the Mapbox Style Specification. FillExtrusionLayer​ A JSON object that defines a fill-extrusion layer according to the Mapbox Style Specification. FillLayer​ A JSON object that defines a fill layer according to the Mapbox Style Specification. HeatmapLayer​ A JSON object that defines a heatmap layer according to the Mapbox Style Specification. HillshadeLayer​ A JSON object that defines a hillshade layer according to the Mapbox Style Specification. LineLayer​ A JSON object that defines a line layer according to the Mapbox Style Specification. RasterLayer​ A JSON object that defines a raster layer according to the Mapbox Style Specification. SymbolLayer​ A JSON object that defines a symbol layer according to the Mapbox Style Specification. SkyLayer​ A JSON object that defines a sky layer according to the Mapbox Style Specification. GeoJSONSourceRaw​ A JSON object that defines a geojson source according to the Mapbox Style Specification. VideoSourceRaw​ A JSON object that defines a video source according to the Mapbox Style Specification. ImageSourceRaw​ A JSON object that defines a image source according to the Mapbox Style Specification. VectorSourceRaw​ A JSON object that defines a vector source according to the Mapbox Style Specification. RasterSource​ A JSON object that defines a raster source according to the Mapbox Style Specification. RasterDemSource​ A JSON object that defines a raster-dem source according to the Mapbox Style Specification. CanvasSourceRaw​ A JSON object that defines a canvas source type. See CanvasSourceOptions.","s":"Styling","u":"/react-map-gl/docs/api-reference/types","h":"#styling","p":122},{"i":129,"t":"ControlPosition​ One of 'top-right', 'top-left', 'bottom-right' and 'bottom-left'. PaddingOptions​ An object with the following fields: left: number - in pixels. top: number - in pixels. right: number - in pixels. bottom: number - in pixels.","s":"Configurations","u":"/react-map-gl/docs/api-reference/types","h":"#configurations","p":122},{"i":131,"t":"LngLat​ A mapboxgl.LngLat object. LngLatLike​ A LngLat object, an array of two numbers representing longitude and latitude, or an object with lng and lat or lon and lat properties. LngLatBounds​ A mapboxgl.LngLatBounds object. LngLatBoundsLike​ A LngLatBounds object, an array of LngLatLike objects in [sw, ne] order, or an array of numbers in [west, south, east, north] order. Point​ A mapboxgl.Point object. PointLike​ A Point or an array of two numbers representing x and y screen coordinates in pixels. MapGeoJSONFeature​ A GeoJSON feature that also contains the following library-specific fields: layer: Layer source: string sourceLayer: string state: { [key: string]: any } ViewState​ An object with the following fields: longitude: number - The longitude of the map center. latitude: number - The latitude of the map center. zoom: number - The zoom level. pitch: number - The pitch (tilt) of the map, in degrees. bearing: number - The bearing (rotation) of the map, in degrees.","s":"Data Types","u":"/react-map-gl/docs/api-reference/types","h":"#data-types","p":122},{"i":133,"t":"The following are implementations of source types that could be retrieved with Map.getSource (Mapbox | Maplibre). GeoJSONSource​ A source containing GeoJSON. See GeoJSONSource (Mapbox | Maplibre). VideoSource​ A source containing video. See VideoSource (Mapbox | Maplibre). ImageSource​ A source containing image. See ImageSource (Mapbox | Maplibre). CanvasSource​ A source containing the contents of an HTML canvas. See CanvasSource(Mapbox | Maplibre). VectorTileSource​ A source containing vector tiles in Mapbox Vector Tile format. See VectorTileSource (Mapbox | Maplibre).","s":"Sources","u":"/react-map-gl/docs/api-reference/types","h":"#sources","p":122},{"i":135,"t":"MapEvent​ An object with the following fields: type: string - Event type target: Map (Mapbox | Maplibre) originalEvent?: Event MapLayerMouseEvent​ An object with the following fields: type: string target: Map (Mapbox | Maplibre) originalEvent?: MouseEvent point: Point lngLat: LngLat preventDefault: () => void defaultPrevented: boolean features?: MapGeoJSONFeature[] MapWheelEvent​ An object with the following fields: type: string target: Map (Mapbox | Maplibre) originalEvent?: WheelEvent preventDefault: () => void defaultPrevented: boolean MapLayerTouchEvent​ An object with the following fields: type: string target: Map (Mapbox | Maplibre) originalEvent?: TouchEvent point: Point lngLat: LngLat points: Point[] lngLats: LngLat[] preventDefault: () => void defaultPrevented: boolean features?: MapGeoJSONFeature[] ViewStateChangeEvent​ An object with the following fields: type: string - Event type target: Map (Mapbox | Maplibre) viewState: ViewState - the next view state that the camera wants to change to based on user input or transition. MapBoxZoomEvent​ An object with the following fields: type: string target: Map (Mapbox | Maplibre) originalEvent?: MouseEvent boxZoomBounds: LngLatBounds MapStyleDataEvent​ An object with the following fields: type: string target: Map (Mapbox | Maplibre) dataType: 'style' MapSourceDataEvent​ An object with the following fields: type: string target: Map (Mapbox | Maplibre) dataType: 'source' isSourceLoaded: boolean source: string sourceId: string sourceDataType: 'metadata' | 'content' tile: any coord: Coordinate See MapDataEvent. ErrorEvent​ An object with the following fields: type: 'error' target: Map (Mapbox | Maplibre) error: Error GeolocateEvent​ An object with the following fields: type: string target: Map (Mapbox | Maplibre) target: GeolocateControl (Mapbox | Maplibre) GeolocateResultEvent​ An object with the following fields: type: string target: GeolocateControl (Mapbox | Maplibre) coords: GeolocationCoordinates - the current location. timestamp: number - the time at which the location was retrieved. GeolocateErrorEvent​ An object with the following fields: type: string target: GeolocateControl (Mapbox | Maplibre) code: PERMISSION_DENIED | POSITION_UNAVAILABLE | TIMEOUT - see GeolocationPositionError message: string - the details of the error. Specifications note that this is primarily intended for debugging use and not to be shown directly in a user interface. MarkerEvent​ An object with the following fields: type: string target: Marker (Mapbox | Maplibre) MarkerDragEvent​ An object with the following fields: type: string target: Marker (Mapbox | Maplibre) lngLat: LngLat - the new location of the marker PopupEvent​ An object with the following fields: type: string target: Popup (Mapbox | Maplibre)","s":"Events","u":"/react-map-gl/docs/api-reference/types","h":"#events","p":122},{"i":137,"t":"Thanks for taking the time to contribute! PRs and bug reports are welcome, and we are actively looking for new maintainers.","s":"Contributing","u":"/react-map-gl/docs/contributing","h":"","p":136},{"i":139,"t":"The master branch is the active development branch. Building react-map-gl locally from the source requires node.js >=8. We use yarn to manage the dependencies. git checkout master yarn bootstrap yarn test Test: $ yarn test Test in Node: $ yarn test node Test in browser (can use Chrome dev tools for debugging): $ yarn test browser","s":"Setting Up Dev Environment","u":"/react-map-gl/docs/contributing","h":"#setting-up-dev-environment","p":136},{"i":141,"t":"Any intended change to the code base must open a pull request and be approved. Generally speaking, all PRs are open against the master branch, unless the feature being affected no longer exists on master.","s":"Pull Requests","u":"/react-map-gl/docs/contributing","h":"#pull-requests","p":136},{"i":143,"t":"Tests yarn test must be successful. New code should be covered by unit tests whenever possible. Documentation If public APIs are added/modified, update component documentation in docs/api-reference. Breaking changes and deprecations must be added to docs/upgrade-guide.md. Noteworthy new features should be added to docs/whats-new.md. Description on GitHub Link to relevant issue. Label with a milestone (latest release or vNext). If public APIs are added/modified, describe the intended behavior. If visual/interaction is affected, consider attaching a screenshot/GIF.","s":"PR Checklist","u":"/react-map-gl/docs/contributing","h":"#pr-checklist","p":136},{"i":145,"t":"react-map-gl follows the Semantic Versioning guidelines. Steps for publishing releases can be found here.","s":"Release","u":"/react-map-gl/docs/contributing","h":"#release","p":136},{"i":147,"t":"vis.gl is part of the Urban Computing Foundation. See the organization's Technical Charter.","s":"Community Governance","u":"/react-map-gl/docs/contributing","h":"#community-governance","p":136},{"i":149,"t":"react-map-gl development is governed by the vis.gl Technical Steering Committee (TSC).","s":"Technical Steering Committee","u":"/react-map-gl/docs/contributing","h":"#technical-steering-committee","p":136},{"i":151,"t":"Xiaoji Chen Xintong Xia Maintainers of react-map-gl have commit access to this GitHub repository, and take part in the decision making process. If you are interested in becoming a maintainer, read the governance guidelines. The vis.gl TSC meets monthly and publishes meeting notes via a mailing list. This mailing list can also be utilized to reach out to the TSC.","s":"Maintainers","u":"/react-map-gl/docs/contributing","h":"#maintainers","p":136},{"i":153,"t":"Please be mindful of and adhere to the Linux Foundation's Code of Conduct when contributing to react-map-gl.","s":"Code of Conduct","u":"/react-map-gl/docs/contributing","h":"#code-of-conduct","p":136},{"i":156,"t":"You can inject data and mapbox native layers using the Source and Layer components: import * as React from 'react'; import Map, {Source, Layer} from 'react-map-gl'; import type {CircleLayer} from 'react-map-gl'; import type {FeatureCollection} from 'geojson'; const geojson: FeatureCollection = { type: 'FeatureCollection', features: [ {type: 'Feature', geometry: {type: 'Point', coordinates: [-122.4, 37.8]}} ] }; const layerStyle: CircleLayer = { id: 'point', type: 'circle', paint: { 'circle-radius': 10, 'circle-color': '#007cbf' } }; function App() { return ( ); } For details about data sources and layer configuration, check out the Mapbox style specification. For dynamically updating data sources and layers, check out the GeoJSON and GeoJSON animation examples.","s":"Native Mapbox Layers","u":"/react-map-gl/docs/get-started/adding-custom-data","h":"#native-mapbox-layers","p":154},{"i":158,"t":"You can implement a custom HTML or SVG overlay on top of the map that redraws whenever the camera changes. By calling map.project() you can adjust the DOM or CSS properties so that the customly-drawn features are always aligned with the map. See a full example here.","s":"Custom Overlays","u":"/react-map-gl/docs/get-started/adding-custom-data","h":"#custom-overlays","p":154},{"i":160,"t":"For more feature rich and performant data visualization overlay use cases, you may consider using other visualization libraries. react-map-gl is part of the vis.gl ecosystem, a suite of high-performance data visualization tools for the Web. deck.gl - WebGL-powered framework for the visualization of large datasets. loaders.gl - loaders for file formats focused on visualization of big data, including point clouds, 3D geometries, images, geospatial formats as well as tabular data. nebula.gl - 3D-enabled GeoJSON editing based on deck.gl and React.","s":"Other vis.gl Libraries","u":"/react-map-gl/docs/get-started/adding-custom-data","h":"#other-visgl-libraries","p":154},{"i":162,"t":"react-map-gl itself is open source and free. It provides a React wrapper for mapbox-gl or derived projects. Depending on which Mapbox GL JS version (or fork) you use, you may need a Mapbox token. You will need a Mapbox token if you use: mapbox-gl@>=2.0.0 and above - requires a mapbox access token in order to access the map renderer, and generates billable events regardlesss of whether you are displaying your own maps. mapbox-gl@1.x or maplibre-gl - requires an access token only if you load the map styles and tiles from Mapbox's data service. See \"Display Maps Without A Mapbox Token\" section below for using non-Mapbox tiles. To get a Mapbox token, you will need to register on their website. The token will be used to identify you and start serving up map tiles. The service is free until a certain level of traffic is exceeded. There are several ways to provide a token to your app, as showcased in some of the example folders: Provide a mapboxAccessToken prop to the map component Set the MapboxAccessToken environment variable (or set REACT_APP_MAPBOX_ACCESS_TOKEN if you are using Create React App) Provide it in the URL, e.g ?access_token=TOKEN We recommend using an environment variable to minimize leaking risks. See securing Mapbox token for examples.","s":"About Mapbox Tokens","u":"/react-map-gl/docs/get-started/mapbox-tokens","h":"","p":161},{"i":164,"t":"It is possible to use the map component without the Mapbox service, if you use another tile source (for example, if you host your own map tiles). Note that this is no longer allowed using mapbox-gl v2.0 and above. The options are: Stay on mapbox-gl@1.x. react-map-gl plans to continue supporting this release in the foreseeable future, however, this version will not include any of the latest features of the map renderer, nor get any future updates from Mapbox. Use a community fork of mapbox-gl, for example maplibre-gl. See Get Started for how to configure your project. To use your own map service, you will need a custom Mapbox GL style that points to your own vector tile source, and pass it to Map using the mapStyle prop. This custom style must match the schema of your tile source. Open source tile schemas include: TileZen schema OpenMapTiles schema Some useful resources for creating your own map service: Mapbox Vector Tile Spec Open source tools If you are using a third party service that requires header based authentication, you can do this by defining a function to pass to Map using the transformRequest prop. An example function: const transformRequest = (url, resourceType) => { if (resourceType === 'Tile' && url.match('yourTileSource.com')) { return { url: url, headers: { 'Authorization': 'Bearer ' + yourAuthToken } } } }","s":"Display Maps Without A Mapbox Token","u":"/react-map-gl/docs/get-started/mapbox-tokens","h":"#display-maps-without-a-mapbox-token","p":161},{"i":166,"t":"This component allows apps to create a map source using React. It may contain Layer components as children. Mapbox Maplibre import * as React from 'react'; import Map, {Source, Layer} from 'react-map-gl'; import type {CircleLayer} from 'react-map-gl'; import type {FeatureCollection} from 'geojson'; const geojson: FeatureCollection = { type: 'FeatureCollection', features: [ {type: 'Feature', geometry: {type: 'Point', coordinates: [-122.4, 37.8]}} ] }; const layerStyle: CircleLayer = { id: 'point', type: 'circle', paint: { 'circle-radius': 10, 'circle-color': '#007cbf' } }; function App() { return ; } import * as React from 'react'; import Map, {Source, Layer} from 'react-map-gl/maplibre'; import type {CircleLayer} from 'react-map-gl/maplibre'; import type {FeatureCollection} from 'geojson'; const geojson: FeatureCollection = { type: 'FeatureCollection', features: [ {type: 'Feature', geometry: {type: 'Point', coordinates: [-122.4, 37.8]}} ] }; const layerStyle: CircleLayer = { id: 'point', type: 'circle', paint: { 'circle-radius': 10, 'circle-color': '#007cbf' } }; function App() { return ; }","s":"Source","u":"/react-map-gl/docs/api-reference/source","h":"","p":165},{"i":168,"t":"The props provided to this component should be conforming to the Mapbox source specification or CanvasSourceOptions. When props change shallowly, the component will attempt to update the source. Do not define objects/arrays inline to avoid perf hit. Once a is mounted, the following props should not change. If add/remove multiple JSX sources dynamically, make sure you use React's key prop to give each element a stable identity. id: string​ Unique identifier of the source. If not provided, a default id will be assigned. type: string​ Required. Type of the source.","s":"Properties","u":"/react-map-gl/docs/api-reference/source","h":"#properties","p":165},{"i":169,"t":"source.ts","s":"Source","u":"/react-map-gl/docs/api-reference/source","h":"#source-1","p":165},{"i":171,"t":"You may find complete project setups in get-started examples.","s":"Get Started","u":"/react-map-gl/docs/get-started","h":"","p":170},{"i":173,"t":"Using react-map-gl requires node >= 12 and react >= 16.3. Mapbox Maplibre npm install --save react-map-gl mapbox-gl @types/mapbox-gl npm install --save react-map-gl maplibre-gl","s":"Installation","u":"/react-map-gl/docs/get-started","h":"#installation","p":170},{"i":175,"t":"Mapbox Maplibre app.tsx import * as React from 'react'; import Map from 'react-map-gl'; function App() { return ( \" initialViewState={{ longitude: -122.4, latitude: 37.8, zoom: 14 }} style={{width: 600, height: 400}} mapStyle=\"mapbox://styles/mapbox/streets-v9\" /> ); } See about Mapbox tokens for alternatives to providing a Mapbox token. app.tsx import * as React from 'react'; import Map from 'react-map-gl/maplibre'; function App() { return ( ); }","s":"Example","u":"/react-map-gl/docs/get-started","h":"#example","p":170},{"i":177,"t":"The base map library requires its stylesheet be included at all times. The marker, popup and navigation components in react-map-gl also need the stylesheet to work properly. You may add the stylesheet to the head of your page: Mapbox Maplibre index.html Find out your mapbox version by running yarn list mapbox-gl or npm ls mapbox-gl. index.html Find out your maplibre version by running yarn list maplibre-gl or npm ls maplibre-gl. Or embed it in your app by using css-loader with Webpack or postcss with rollup: Mapbox Maplibre app.tsx import 'mapbox-gl/dist/mapbox-gl.css'; app.tsx import 'maplibre-gl/dist/maplibre-gl.css';","s":"Styling","u":"/react-map-gl/docs/get-started","h":"#styling","p":170},{"i":179,"t":"npm install --save react-map-gl my-mapbox-fork Then override the mapLib prop of Map: app.tsx import * as React from 'react'; import Map from 'react-map-gl'; // Include style sheet import 'my-mapbox-fork/path/to/style-sheet.css'; function App() { return ; }","s":"Using with a Compatible Fork","u":"/react-map-gl/docs/get-started","h":"#using-with-a-compatible-fork","p":170},{"i":181,"t":"The useMap hook allows a custom component to reference the Map that contains it. Mapbox Maplibre import {Map, useMap} from 'react-map-gl'; function Root() { return ( ); } function NavigateButton() { const {current: map} = useMap(); const onClick = () => { map.flyTo({center: [-122.4, 37.8]}); }; return ; } import {Map, useMap} from 'react-map-gl/maplibre'; function Root() { return ( ); } function NavigateButton() { const {current: map} = useMap(); const onClick = () => { map.flyTo({center: [-122.4, 37.8]}); }; return ; } When used with the MapProvider, this hook can also reference maps that are rendered outside of the current component's direct render tree. Mapbox Maplibre import {MapProvider, Map, useMap} from 'react-map-gl'; function Root() { return ( ); } function NavigateButton() { const {myMapA, myMapB} = useMap(); const onClick = () => { myMapA.flyTo({center: [-122.4, 37.8]}); myMapB.flyTo({center: [-74, 40.7]}); }; return ; } import {MapProvider, Map, useMap} from 'react-map-gl/maplibre'; function Root() { return ( ); } function NavigateButton() { const {myMapA, myMapB} = useMap(); const onClick = () => { myMapA.flyTo({center: [-122.4, 37.8]}); myMapB.flyTo({center: [-74, 40.7]}); }; return ; } See a full example here.","s":"useMap","u":"/react-map-gl/docs/api-reference/use-map","h":"","p":180},{"i":183,"t":"useMap(): {current?: MapRef, [id: string]: MapRef} The hook returns an object that contains all mounted maps under the closest MapProvider. The keys are each map's id and the values are the MapRef. If the hook is used inside a decendent of a Map component, the returned object also contains a current field that references the containing map.","s":"Signature","u":"/react-map-gl/docs/api-reference/use-map","h":"#signature","p":180},{"i":185,"t":"use-map.tsx","s":"Source","u":"/react-map-gl/docs/api-reference/use-map","h":"#source","p":180},{"i":188,"t":"Because Mapbox tokens are required for the client application to make requests to Mapbox servers, you have to distribute it with your app. It is not possible to stop a visitor to your site from scraping the token. The practice outlined below can help you protect your token from being abused. Never commit your token in clear text into GitHub or other source control. In your local dev environment, define the token in an environment variable e.g. MapboxAccessTokenDev=... in the command line, or use something like dotenv and put MapboxAccessTokenDev=... in a .env file. Add .env to .gitignore so it's never tracked. If your app is deployed by a continuous integration pipeline, follow its documentation and set a secret environment variable. Create separate tokens for development (often times on http://localhost), public code snippet (Gist, Codepen etc.) and production (deployed to https://mycompany.com). The public token should be rotated regularly. The production token should have strict scope and URL restrictions that only allows it to be used on a domain that you own. Add the following to your bundler config: Webpack Rollup /// webpack.config.js const {DefinePlugin} = require('webpack'); module.exports = { ... plugins: [ new DefinePlugin({ 'process.env.MapboxAccessToken': JSON.stringify(process.env.NODE_ENV == 'production' ? process.env.MapboxAccessTokenProd : process.env.MapboxAccessTokenDev) }) ] }; /// rollup.config.js const replace = require('@rollup/plugin-replace').default; module.exports = { ... plugins: [ replace({ 'process.env.MapboxAccessToken': JSON.stringify(process.env.NODE_ENV == 'production' ? process.env.MapboxAccessTokenProd : process.env.MapboxAccessTokenDev) }) ] }; react-map-gl automatically picks up process.env.MapboxAccessToken or process.env.REACT_APP_MAPBOX_ACCESS_TOKEN if they are defined. Alternatively, you can use your own variable name (e.g. __SUPER_SECRET_TOKEN__) and pass it in manually with mapboxAccessToken={__SUPER_SECRET_TOKEN__}.","s":"Securing Mapbox Token","u":"/react-map-gl/docs/get-started/tips-and-tricks","h":"#securing-mapbox-token","p":186},{"i":190,"t":"In a moderately complex single-page app, as the user navigates through the UI, a map component may unmount and mount again many times during a session. Consider the following layout: /// Example using Tabs from Material UI {items.map(renderMarker)} {items.map(renderRow)}
Every time the user clicks the \"table\" tab, the map is unmounted. When they click the \"map\" tab, the map is mounted again. As of v2.0, mapbox-gl generates a billable event every time a Map object is initialized. It is obviously not ideal to get billed for just collapsing and expanding part of the UI. In this case, it is recommended that you set the reuseMaps prop to true: {items.map(renderMarker)} This bypasses the initialization when a map is removed then added back.","s":"Minimize Cost from Frequent Re-mounting","u":"/react-map-gl/docs/get-started/tips-and-tricks","h":"#minimize-cost-from-frequent-re-mounting","p":186},{"i":192,"t":"If your application uses externally managed camera state, like with Redux, the number of React rerenders may be very high when the user is interacting with the map. Consider the following setup: import {useSelector, useDispatch} from 'react-redux'; import Map, {Marker} from 'react-map-gl'; function MapView() { const viewState = useSelector((s: RootState) => s.viewState); const vehicles = useSelector((s: RootState) => s.vehicles); const dispatch = useDispatch(); const onMove = useCallback(evt => { dispatch({type: 'setViewState', payload: evt.viewState}); }, []); return ( > {vehicles.map(vehicle => ( // vehicle icon ) )} ); } This component is rerendered on every animation frame when the user is dragging the map. If it's trying to render hundreds of markers, the performance lag will become quite visible. One way to improve the performance is useMemo: const markers = useMemo(() => vehicles.map(vehicle => ( // vehicle icon ) ), [vehicles]); return ( > {markers} ); } This prevents React from rerendering the markers unless they have changed. If your application can do without complicated DOM objects and CSS styling, consider switching to a symbol layer. Layers are rendered in WebGL and are much more performant than markers: const vehiclesGeoJSON = useMemo(() => { return { type: 'FeatureCollection', features: vehicles.map(vehicle => turf.point(vehicle.coordinates, vehicle)) }; }, [vehicles]); return ( > );","s":"Performance with Many Markers","u":"/react-map-gl/docs/get-started/tips-and-tricks","h":"#performance-with-many-markers","p":186},{"i":194,"t":"There are some situations where you want to know if a point is currently visible on the map. Checking this is simple and can be done like so: const mapRef = useRef(); const checkIfPositionInViewport = (lat, lng) => { const bounds = mapRef.current.getBounds(); return bounds.contains([lng, lat]); } return ","s":"Finding out if a point is within the current viewport","u":"/react-map-gl/docs/get-started/tips-and-tricks","h":"#finding-out-if-a-point-is-within-the-current-viewport","p":186},{"i":197,"t":"Release date: June 30 2023 To better accommodate the API divergence between Mapbox and Maplibre, this version adds a new endpoint react-map-gl/maplibre. The new endpoint exports identical components as react-map-gl, but typed for maplibre-gl instead. After switching to this new endpoint, maplibre-gl users no longer need to install mapbox-gl or a placeholder package as dependency. See upgrade guide for an example. Marker, Popup and GeolocateControl components now expose the native instance via React ref.","s":"react-map-gl v7.1","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v71","p":195},{"i":199,"t":"Release date: Feb 4, 2022 v7 is a complete rewrite of the library. It addresses many long-standing issues in v5 and v6 limited by legacy architecture decisions. The most notable results of this redesign are: Performance: minimize the overhead of React, offer the same fast and smooth interaction as the native library Lightweight: the ESM build size is reduced from 219k to 57k Predictability: Components behave the same as their mapbox counterparts. Props are mapped 1:1 from the native options wherever appropriate. Almost all imperative APIs (flyTo, fitBounds etc.) can now be called directly without breaking the React binding. Compatibility: first and third-party plugins! Directly use mapbox-gl-draw, mapbox-gl-geocoder, to name a few. TypeScript compliant: the code base is now entirely written in TypeScript, and all types can be imported. Visit the upgrade guide if you are trying to upgrade from v5 and v6.","s":"react-map-gl v7.0","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v70","p":195},{"i":201,"t":"Release date: Jan 27, 2020","s":"react-map-gl v5.3/v6.1","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v53v61","p":195},{"i":203,"t":"TypeScript and Flow typings are now published with the library More controller customizations. Smooth easing on wheel scroll, three-finger gesture to change pitch, inertia after pan/pinch, and customizable keyboard navigation speed. See the updated interaction options for details. A new eventRecognizerOptions prop is added for fine-tuning the interaction experience. New component: AttributionControl Promoted to official API: MapContext Resolved React error over attempted state update during render GeolocateControl added supports for showAccuracyCircle All controls now support inline styling with a style prop All components and examples have been rewritten as functional components","s":"Highlights","u":"/react-map-gl/docs/whats-new","h":"#highlights","p":195},{"i":205,"t":"Release date: Dec 16, 2020","s":"react-map-gl v6.0","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v60","p":195},{"i":207,"t":"The 6.0 release upgrades its Mapbox GL JS dependency to v2.0. There are important changes to mapbox-gl's license and pricing model in this milestone. If you are NOT using a Mapbox account (e.g. self-hosting map tiles), do NOT upgrade to this version, and consider your options discussed in this document. See upgrade guide for a complete list of breaking changes.","s":"What's Changed","u":"/react-map-gl/docs/whats-new","h":"#whats-changed","p":195},{"i":209,"t":"Release date: Jan 6, 2020","s":"react-map-gl v5.2","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v52","p":195},{"i":211,"t":"New Components: ScaleControl NavigationControl: new label prop GeolocateControl: new label, onGeolocate, auto props New Export: WebMercatorViewport is re-exported from the viewport-mercator-project library for ease of use. It's recommended to import it from react-map-gl instead to avoid future dependency change. New Example: Clusters","s":"Highlights","u":"/react-map-gl/docs/whats-new","h":"#highlights-1","p":195},{"i":213,"t":"Release date: Oct 30, 2019","s":"react-map-gl v5.1","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v51","p":195},{"i":215,"t":"New Components: Layer and Source have been added to provide better React parity with the Mapbox GL JS API. Viewport transition: transitionDuration can be set to 'auto' when using FlyToInterpolator. New Example: Add an example with drawing library react-map-gl-draw.","s":"Highlights","u":"/react-map-gl/docs/whats-new","h":"#highlights-2","p":195},{"i":217,"t":"Release date: May 31, 2019","s":"react-map-gl v5.0","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v50","p":195},{"i":219,"t":"The only change between the 5.0 release and the latest 4.1 release is Mapbox GL JS v1.0. By using this version, you opt into Mapbox's new pricing model, which bills per map load instead of map views. 5.0.x and 4.1.x will continue to update in parallel with otherwise identical features until November 2019 when Mapbox moves all users of 0.xx to a new pricing scheme. For more details, see mapbox's changelog and blog post. Alongside Mapbox GL JS's new milestone, we have relaxed the mapbox-gl dependency from locking minor release (~0.53.0) to major release (^1.0.0). This will allow developers to upgrade faster without waiting for a new release from react-map-gl.","s":"What's Changed","u":"/react-map-gl/docs/whats-new","h":"#whats-changed-1","p":195},{"i":221,"t":"Release date: Mar 14, 2019","s":"react-map-gl v4.1","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v41","p":195},{"i":223,"t":"New Components: FullscreenControl, GeolocateControl have been added to provide better React parity with the Mapbox GL JS API. New callback props InteractiveMap supports more callbacks: onNativeClick","s":"Highlights","u":"/react-map-gl/docs/whats-new","h":"#highlights-3","p":195},{"i":225,"t":"Release date: Nov 5, 2018","s":"react-map-gl v4.0","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v40","p":195},{"i":227,"t":"Relative dimensions Both InteractiveMap and StaticMap now support CSS strings supplied to map width and height props. New onResize callback is fired when the map resizes. React 16 Upgrade to React 16.3 context and ref patterns Babel 7 Upgrade build system to Babel 7, better support for tree-shaking Style diffing Now use Mapbox's native style diffing. Immutable is no longer required. Draggable Markers Marker component now supports a new prop draggable, along with callbacks onDragStart, onDrag, and onDragEnd. 3d Popups Popup component now supports a new prop sortByDepth to enable proper occlusion when multiple popups are used in a tilted map. Interaction states onViewportChange is now called with richer descriptors of the user interaction, including isPanning, isZooming and isRotating. Interactive layers Dropped the requirement for the deprecated interactive property on the layer styles. Use the interactiveLayerIds prop to specify which layers are clickable. New callback props InteractiveMap supports more callbacks: onDblClick onMouseDown onMouseMove onMouseUp onTouchStart onTouchMove onTouchEnd onMouseEnter onMouseLeave onWheel onMouseOut See upgrade guide for breaking changes.","s":"Highlights","u":"/react-map-gl/docs/whats-new","h":"#highlights-4","p":195},{"i":229,"t":"Release date: July, 2018","s":"react-map-gl v3.3","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v33","p":195},{"i":231,"t":"New viewState Property: Makes it possible to specify all map state properties (longitude, latitude, zoom, bearing and pitch) as a single property. New onViewStateChange callback: An alternative callback that matches the new viewState prop.","s":"Highlights","u":"/react-map-gl/docs/whats-new","h":"#highlights-5","p":195},{"i":233,"t":"Realease date: January, 2018","s":"react-map-gl v3.2","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v32","p":195},{"i":235,"t":"Viewport transition: feature equivalent to Mapbox's flyTo and easeTo; smooth transition when using keyboard navigation or the NavigationControl. Better parity of Mapbox interaction: navigation using keyboard and the navigation control matches Mapbox behavior, including smooth transition when zooming and panning. Support for Map Reuse (experimental): A new property reuseMaps is provided for applications that create and destroy maps, to help work around a mapbox-gl resource leak issue that can lead to a browser crash in certain situations. mapbox-gl 0.42.2 New props of the InteractiveMap component: Map creation: transformRequest, reuseMaps Interaction: touchZoom, touchRotate Transition: transitionDuration, transitionInterpolator, transitionEasing, transitionInterruption, onTransitionStart, onTransitionInterrupt, onTransitionEnd","s":"Highlights","u":"/react-map-gl/docs/whats-new","h":"#highlights-6","p":195},{"i":237,"t":"Release date: October 19, 2017","s":"react-map-gl v3.1","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v31","p":195},{"i":239,"t":"Event handling Support right mouse drag to rotate Support keyboard navigation Allow controls and overlays to block map interactions React 16 - react-map-gl is now being tested with React 16, but the React peer dependency requirement is unchanged at >=15.4.x. mapbox-gl v0.40.1 No Token warning: react-map-gl now renders an HTML message if no mapbox token is supplied.","s":"Highlights","u":"/react-map-gl/docs/whats-new","h":"#highlights-7","p":195},{"i":241,"t":"Release date: July 27th, 2017","s":"react-map-gl v3.0","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v30","p":195},{"i":243,"t":"Latest Mapbox GL JS: Bumps Mapbox GL JS to 0.38. Multi-Touch Support: Full support for multi-touch gestures such as pinch-to-zoom and rotate. New Components: The MapGL component has been split into StaticMap and InteractiveMap (the default). Also, Popup, Marker, NavigationControl have been added to provide better React parity with the Mapbox GL JS API. Improved Overlay Components: Supplying viewport props (width height zoom longitude and latitude) are no longer required if you render SVGOverlay, CanvasOverlay or HTMLOverlay as a child of the map. Perspective mode is now supported in all overlays. New Props: maxPitch, minPitch, dragPan, doubleClickZoom, touchZoomRotate, scrollZoom are now provided to allow granular control of map interactivity. Documentation: Significantly expanded and linked with our other geospatial frameworks. Examples: New stand-alone examples to get you started instantly with the new features. Event Handling: New event handling architecture that enables full customization of event handling (experimental).","s":"Highlights","u":"/react-map-gl/docs/whats-new","h":"#highlights-8","p":195},{"i":245,"t":"InteractiveMap (New, MapGL replacement)​ This is a wrapper on top of StaticMap. It takes all the props of StaticMap and additional ones such as onViewportChange, scrollZoom, dragRotate, etc. to control interactivity on the map. See Source Code for more information. StaticMap (New)​ This is the React wrapper around Mapbox GL JS and takes in viewport properties such as width, height, latitude, longitude. Style diffing and updating logic also live here. See Source Code for more information. Overlays​ Three overlays (ScatterplotOverlay, DraggablePointsOverlay, ChoroplethOverlay), have been moved out of the library and are now only provided as examples.","s":"Components","u":"/react-map-gl/docs/whats-new","h":"#components","p":195},{"i":247,"t":"Property Names - some prop names have been modernized, the old ones will still work for now with a warning. Internal Properties such as isHovering, isDragging, startDragLngLat have been removed. These were never meant to be useful publicly and have caused confusions in the past.","s":"Property Changes","u":"/react-map-gl/docs/whats-new","h":"#property-changes","p":195},{"i":249,"t":"fitBounds: fitBounds has been moved to another repository and has been rewritten to provide a more logical interface. For more information, see the Upgrade Guide.","s":"Utilities","u":"/react-map-gl/docs/whats-new","h":"#utilities","p":195},{"i":251,"t":"Date: Jan 17, 2017","s":"react-map-gl v2.0","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v20","p":195},{"i":253,"t":"Latest mapbox-gl: Bump mapbox-gl to v0.31.0 new maxZoom prop - Add maxZoom prop and defaults to 20 New onLoad prop - Add onLoad event handler new onClick prop - Add onClick prop handler (#140)","s":"Highlights","u":"/react-map-gl/docs/whats-new","h":"#highlights-9","p":195},{"i":255,"t":"Perspective Mode - Now supports bearing and pitch properties, per mapbox-gl api documentation. These props default to 0 which means that maps will still be rendered in flat/ortographic mode when they are not provided Support for ES6 imports - The map overlay components (HTMLOverlay, CanvasOverlay, SVGOverlay etc) previously had to be imported via their relative source paths can now be imported directly using `import {SVGOverlay} from 'react-map-gl'.","s":"react-map-gl v1.0","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v10","p":195},{"i":257,"t":"Initial public version","s":"react-map-gl v0.6","u":"/react-map-gl/docs/whats-new","h":"#react-map-gl-v06","p":195},{"i":260,"t":"maplibre-gl users no longer need to install mapbox-gl or a placeholder package as dependency. Change your imports to the new endpoint react-map-gl/maplibre. Components imported from here do not require setting the mapLib prop, and use the types defined by maplibre-gl. map-v7.0.tsx import Map from 'react-map-gl'; import maplibregl from 'maplibre-gl'; function App() { return ; } map-v7.1.tsx import Map from 'react-map-gl/maplibre'; // <- mind the updated import function App() { return } If you installed mapbox-gl from a placeholder such as npm:empty-npm-package@^1.0.0 as suggested by the previous version's documentation, it should be removed from your package.json. The @types/mapbox-gl dependency has relaxed its version constraint. If you use mapbox-gl as the base map library, it's recommended to explicitly list @types/mapbox-gl in your package.json with a version matching that of mapbox-gl (v1 or v2). This package is no longer required by the non-mapbox code path, and may be further demoted to an optional peer dependency in a future release. If you use the Map component as a child of the DeckGL component from deck.gl, upgrade deck.gl to >=8.9.18.","s":"Upgrading to v7.1","u":"/react-map-gl/docs/upgrade-guide","h":"#upgrading-to-v71","p":258},{"i":262,"t":"v7 is a complete rewrite of the library. It is redesigned to be fast, lightweight, fully typed, to behave the same and expose the same APIs as the wrapped map library, and to provide the maximum compatibility with third-party plugins. To take advantages of these new features, you need to make some changes to your code that was previously depending on react-map-gl v5 and v6. If you are using react-map-gl controls (Marker, Popup, NavigationControl etc.) with deck.gl's ContextProvider, do not upgrade to this version. The old approach no longer works with v7. We are moving the support for this use case to a new project that does not depend on mapbox.","s":"Upgrading to v7.0","u":"/react-map-gl/docs/upgrade-guide","h":"#upgrading-to-v70","p":258},{"i":264,"t":"Add mapbox-gl (or a compatible fork) to your package.json. react-map-gl no longer lists a specific map renderer in its dependencies, so you are free to use it with Mapbox v1, v2 or Maplibre. viewport-mercator-project (an alias of @math.gl/web-mercator) is no longer a dependency. You can still install the library on the side as a utility for viewport-related math, but it's no longer required.","s":"Dependencies","u":"/react-map-gl/docs/upgrade-guide","h":"#dependencies","p":258},{"i":266,"t":"InteractiveMap and StaticMap are removed. Instead, import Map. setRTLTextPlugin is removed. Use the Map component's RTLTextPlugin prop (default enabled). MapController is removed. v7.0 has removed its own implementation of user input handling in favor of the native handlers. If you are using a custom implementation of MapController, check if the native handlers offer options to address your application's needs. MapContext and useMapControl are removed. Check out the new API useMap and useControl. The overlay components (HTMLOverlay, CanvasOverlay and SVGOverlay) are removed. Check out this example for implementing similar controls in your own application. LinearInterpolator and FlyToInterpolator are removed. Use map.easeTo() and map.flyTo() instead, see this example.","s":"Module exports","u":"/react-map-gl/docs/upgrade-guide","h":"#module-exports","p":258},{"i":268,"t":"documentation Renamed props for better consistency with the wrapped library: mapboxApiAccessToken is now mapboxAccessToken mapboxApiUrl is now baseApiUrl preventStyleDiffing (default false) is replaced with styleDiffing (default true) mapStyle should be explicitly specified. The default value has changed from \"mapbox://styles/mapbox/light-v9\" to an empty style. The following props are removed and apps should use style instead: width height visible onViewportChange, onViewStateChange and onInteractionStateChange are removed. You can either use Map as an uncontrolled component with the new initialViewState prop, or if you need to manage the camera state externally (e.g. in Redux), use the onMove callback instead. See examples in state management. transition* props are removed. Use map.easeTo() and map.flyTo() instead, see this example. mapOptions is removed. Almost all of the options for the native Map class are exposed as props. onHover is removed. Use onMouseMove or onMouseEnter. The event argument is changed for all interaction callbacks. See documentation for details. getCursor is removed as part of the effort to get Map behave the same as the native component. To set the cursor, use the cursor prop. Follow this example to change cursor on hover. touchAction and eventRecognizerOptions are removed. Check out the cooperativeGestures prop.","s":"Map","u":"/react-map-gl/docs/upgrade-guide","h":"#map","p":258},{"i":270,"t":"capture* props are removed. *label props are removed. Use Map's locale prop. All map controls' props are now strictly aligned with their mapbox-gl counterparts. In heading this direction, we are able to remove a significant amount of custom code and have the components behave more predictably for developers switching from the native library. If your application is relying on an old feature that is no longer supported, please open a topic on Discussion so we can review on a case-by-case basis.","s":"Other components","u":"/react-map-gl/docs/upgrade-guide","h":"#other-components","p":258},{"i":272,"t":"MapContext is now an official API. The experimental _MapContext export will be removed in a future release. react-virtualized-auto-sizer is no longer a dependency. Inertia has been enabled by default on the map controller. To revert to the behavior in previous versions, set the interaction options: const CONTROLLER_OPTS = { dragPan: {inertia: 0}, dragRotate: {inertia: 0}, touchZoom: {inertia: 0} }; Source and Layer components no longer expose imperative methods via ref as part of the migration to functional components. This is to comply with the pattern recommended by the latest React. If you used to call sourceRef.getSource(), it can be replaced with mapRef().getMap().getSource(sourceId). If you used to call layerRef.getLayer(), it can be replaced with mapRef().getMap().getLayer(layerId).","s":"Upgrading to v5.3/v6.1","u":"/react-map-gl/docs/upgrade-guide","h":"#upgrading-to-v53v61","p":258},{"i":274,"t":"A valid Mapbox access token is always required. The default value of InteractiveMap's maxPitch prop is changed to 85 from 60. mapbox-gl v2 introduced a breaking change to the build system. Transpiling it may result in a crash in the production build with the message m is not defined. Find solutions in this thread.","s":"Upgrading to v6","u":"/react-map-gl/docs/upgrade-guide","h":"#upgrading-to-v6","p":258},{"i":276,"t":"onChangeViewport is removed, use onViewportChange instead Immutable.js is no longer a dependency Export experimental.MapControls is removed, use MapController instead InteractiveMap's mapControls prop is renamed to controller Removed support for the deprecated interactive property on the layer styles. Use the interactiveLayerIds prop to specify which layers are clickable.","s":"Upgrading to v4","u":"/react-map-gl/docs/upgrade-guide","h":"#upgrading-to-v4","p":258},{"i":278,"t":"The latest mapbox-gl release requires stylesheet to be included at all times. See Get Started for information about styling. Immutable.js is no longer a hard dependency and will be removed in the next major release. If you are importing immutable in your application, it is recommended that you explicitly list it in the application's dependencies.","s":"Upgrading to v3.2","u":"/react-map-gl/docs/upgrade-guide","h":"#upgrading-to-v32","p":258},{"i":280,"t":"v3 is a major upgrade of react-map-gl. While we have tried to gently deprecated any changed or removed features, a few breaking changes could not be avoided.","s":"Upgrading to v3","u":"/react-map-gl/docs/upgrade-guide","h":"#upgrading-to-v3","p":258},{"i":282,"t":"The Node Version Requirement for building react-map-gl is now >=v6.4.0. Using prebuilt react-map-gl does NOT has this limitation. This is introduced by Mapbox GL JS v0.38.0","s":"Version Requirements","u":"/react-map-gl/docs/upgrade-guide","h":"#version-requirements","p":258},{"i":284,"t":"Two Map Components - v3 now splits the Map component into two React components: StaticMap and InteractiveMap. InteractiveMap is the default export, and designed to be as compatible as possible with the v2 default component. onChangeViewport callback now includes width and height.​ The viewport parameter passed to the onChangeViewport callback now includes width and height. Application code that composed the viewport with width and height may have to be updated. Please double check your render code if you relied on this behavior. // BAD: 'width' and 'height' below will be overridden by what's in the 'viewport' object // GOOD: 'width' and 'height' below will override the values in 'viewport' ","s":"MapGL Component","u":"/react-map-gl/docs/upgrade-guide","h":"#mapgl-component","p":258},{"i":286,"t":"Some Overlays Moved to Examples - Some less frequently used overlays (DraggablePointsOverlay, ChoroplethOverlay, ScatterplotOverlay), have been moved to examples. Most users are now using mapbox styles or deck.gl layers and removing these overlays reduces the size of the react-map-gl library for the majority of users that don't need them. If you still use them, simply copy the overlay source file(s) into your application. Overlays must be Children of the Map - Overlays must now be rendered as children of the main react-map-gl component to automatically sync with the map viewport.","s":"Overlays","u":"/react-map-gl/docs/upgrade-guide","h":"#overlays","p":258},{"i":288,"t":"The fitBounds utility has been moved to the math.gl library. The function can now be called as follows: import WebMercatorViewport from 'viewport-mercator-project'; const viewport = new WebMercatorViewport({width: 600, height: 400}); const bound = viewport.fitBounds( [[-73.9876, 40.7661], [-72.9876, 41.7661]], {padding: 20, offset: [0, -40]} ); // => bounds: instance of WebMercatorViewport // {longitude: -73.48760000000007, latitude: 41.268014439447484, zoom: 7.209231188444142}","s":"fitBounds utility function","u":"/react-map-gl/docs/upgrade-guide","h":"#fitbounds-utility-function","p":258},{"i":290,"t":"We have started to deprecate a few React props. In all the cases below, the old props will still work (you'll get a warning in the console), but they will likely be removed in the next major version of react-map-gl so you should start using the new props as soon as possible. Old Prop New Prop onChangeViewport() onViewportChange() onHoverFeatures() onHover() onClickFeatures() onClick() perspectiveEnabled [default: false] dragRotate [default: true]","s":"Deprecations","u":"/react-map-gl/docs/upgrade-guide","h":"#deprecations","p":258},{"i":292,"t":"v2 is API compatible with v1, however if you are still using v1 of react-map-gl, make sure that you first upgrade: Your node version to v4 or higher Your react version to 15.4 or higher. Background: mapbox-gl 0.31.0 introduced a hard dependency on Node >= v4.","s":"Upgrading to v2","u":"/react-map-gl/docs/upgrade-guide","h":"#upgrading-to-v2","p":258},{"i":294,"t":"(Upgrading from 0.6.x) Importing Overlays - The map overlay components (HTMLOverlay, CanvasOverlay, SVGOverlay etc) are now named exports. They previously had to be imported via their relative source paths: // v1.0 import MapGL, {SVGOverlay} from 'react-map-gl'; // v0.6 import MapGL from 'react-map-gl'; import SVGOverlay from 'react-map-gl/src/api-reference/svg-overlay';. Map State - The map state reported by onViewportChanged will now contain additional state fields (tracking not only pitch and bearing needed for perspective mode, but also transient information about how the projection is being changed by the user). This information must be passed back to the react-map-gl component in the next render. To simplify and future proof applications, it is recommended to simply save the entire mapState in your app store whenever it changes and then pass it back to the component rather than trying to keep track of individual fields (like longitude, latitude and zoom).","s":"Upgrading to v1","u":"/react-map-gl/docs/upgrade-guide","h":"#upgrading-to-v1","p":258},{"i":296,"t":"There are two ways to use a Map: Uncontrolled: The application sets the initial view state (Camera options) when the map is mounted, and the component automatically makes changes to the view states afterwards. This mode works very similarly to the mapbox-gl Map class. Controlled: The application manages the view state, and pass it to the map via props. The map invokes a callback with a new view state during user interaction transition, and the application can decide what to do with it. This mode is the most powerful when an application has other components that need to interact with the map, or implements its own user input and data handling logic.","s":"State Management","u":"/react-map-gl/docs/get-started/state-management","h":"","p":295},{"i":298,"t":"You may clone a full app configuration for this example here. import * as React from 'react'; import Map from 'react-map-gl'; function App() { return ; }","s":"Uncontrolled Map","u":"/react-map-gl/docs/get-started/state-management","h":"#uncontrolled-map","p":295},{"i":300,"t":"You may clone a full app configuration for this example here. import * as React from 'react'; import Map from 'react-map-gl'; function App() { const [viewState, setViewState] = React.useState({ longitude: -100, latitude: 40, zoom: 3.5 }); return setViewState(evt.viewState)} mapStyle=\"mapbox://styles/mapbox/streets-v9\" />; } A real-world application likely uses more complicated state flows: Using map with a state store (Redux) example Using map with SSR (Next.js) example","s":"Controlled Map","u":"/react-map-gl/docs/get-started/state-management","h":"#controlled-map","p":295},{"i":302,"t":"Map offers props that set basic constraints for the camera, e.g. maxBounds, minZoom, maxPitch. If you need more complicated logic to constrain the camera, you may use it as a controlled component. The following example restricts the map center inside a GeoJSON geofence: import * as React from 'react'; import Map from 'react-map-gl'; // npm install @turf/turf import * as turf from '@turf/turf'; // A circle of 5 mile radius of the Empire State Building const GEOFENCE = turf.circle([-74.0122106, 40.7467898], 5, {units: 'miles'}); function App() { const [viewState, setViewState] = React.useState({ longitude: -100, latitude: 40, zoom: 3.5 }); const onMove = React.useCallback(({viewState}) => { const newCenter = [viewState.longitude, viewState.latitude]; // Only update the view state if the center is inside the geofence if (turf.booleanPointInPolygon(newCenter, GEOFENCE)) { setViewState(newCenter); } }, []) return ; }","s":"Custom Camera Constraints","u":"/react-map-gl/docs/get-started/state-management","h":"#custom-camera-constraints","p":295}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/2",[0,3.442,1,3.442,2,2.467,3,3.471,4,1.246,5,0.753,6,1.435,7,3.059,8,0.692,9,1.549,10,4.189,11,2.341,12,2.261,13,3.059,14,1.067,15,4.628,16,4.876,17,3.903,18,1.448,19,3.331,20,2.928,21,2.806,22,4.184,23,2.454,24,2.806,25,6.138,26,2.341,27,2.14,28,2.341,29,3.059,30,1.517,31,2.618,32,1.913,33,2.341,34,3.442,35,3.903,36,2.14,37,1.517,38,2.234,39,3.059,40,2.806,41,2.057,42,3.442,43,2.341,44,3.067,45,2.341,46,2.618,47,1.981,48,2.057,49,2.618,50,2.467,51,1.259,52,2.057,53,2.806,54,2.806,55,1.232,56,2.234,57,2.341]],["t/4",[4,1.257,5,0.827,6,1.166,8,1.458,9,1.121,18,0.85,23,1.206,38,1.957,44,2.774,47,2.673,48,1.802,49,2.293,50,2.161,58,1.676,59,3.016,60,3.785,61,3.016,62,1.875,63,2.458,64,2.293,65,1.571,66,2.458,67,3.016,68,2.458,69,3.016,70,4.127,71,2.68,72,1.48,73,4.616,74,3.016,75,3.259,76,4.643,77,3.016,78,1.439,79,1.957,80,3.016,81,2.458,82,1.103,83,2.458,84,3.016,85,2.68,86,3.016,87,2.293,88,1.48,89,4.643,90,1.957,91,3.016,92,2.155,93,2.293,94,4.126,95,1.48,96,1.48,97,1.439,98,2.68,99,3.52,100,2.293,101,2.458,102,2.161,103,1.363,104,1.875,105,2.458,106,3.016,107,1.736,108,1.676,109,2.68,110,2.293,111,2.293,112,3.016,113,3.016,114,2.952,115,3.785,116,3.016,117,2.68,118,2.293,119,1.802,120,3.016,121,4.643,122,2.68,123,2.458,124,3.016,125,3.016,126,3.016,127,2.458,128,2.458,129,2.68,130,2.458,131,2.68,132,3.016,133,1.802,134,2.68,135,2.293,136,1.152,137,1.957,138,2.458,139,2.68,140,0.916,141,1.957,142,2.458,143,2.68,144,1.524,145,3.016,146,1.802]],["t/6",[4,1.116,5,0.726,6,1.035,9,0.77,10,2.515,12,1.925,33,2.972,36,2.716,73,3.562,75,2.515,78,2.909,82,1.597,114,2.028,137,3.957,139,3.883,140,2.134,146,2.61,147,3.883,148,3.562,149,2.716,150,3.322,151,2.972,152,3.883,153,4.369,154,3.562,155,4.369,156,4.369,157,4.558,158,3.883,159,3.776,160,4.369,161,3.35,162,4.147,163,2.428,164,4.369,165,2.349,166,3.883,167,4.369,168,3.322,169,4.369,170,3.562,171,3.562,172,2.207,173,3.883,174,2.61,175,3.562,176,3.883,177,4.369,178,2.972,179,4.369,180,4.369,181,3.883,182,3.322,183,3.322,184,3.322,185,3.131,186,3.562,187,3.883]],["t/8",[4,1.518,5,0.877,6,0.681,8,0.806,9,1.012,14,1.778,20,1.913,130,4.678,188,2.155,189,1.813,190,2.395,191,6.31,192,1.723,193,1.807,194,2.223,195,1.968,196,2.01,197,1.928,198,2.308,199,1.766,200,2.663,201,2.053,202,3.085,203,2.144,204,3.189,205,2.144,206,3.303,207,1.913,208,1.813,209,5.099,210,1.968,211,5.099,212,5.738,213,5.738,214,1.766,215,2.228]],["t/11",[103,3.233,216,2.932,217,4.446,218,3.844,219,4.116,220,4.641,221,5.125]],["t/13",[5,0.572,8,1.111,9,0.974,14,1.713,18,1.012,37,2.435,58,3.072,65,2.878,75,3.181,108,3.969,136,2.112,191,4.506,192,2.375,193,1.65,210,1.896,222,2.375,223,3.181,224,2.712,225,2.435,226,5.527,227,5.527,228,4.506,229,2.499,230,2.878,231,4.397,232,3.969,233,4.918,234,3.961,235,2.971]],["t/15",[211,6.751,236,5.168]],["t/17",[4,1.553,5,0.895,6,0.737,8,0.873,9,1.071,14,1.882,20,2.072,188,2.335,189,1.963,190,2.595,192,1.866,193,1.806,194,2.303,195,2.083,196,2.127,197,2.04,198,2.5,199,1.914,200,2.819,201,2.173,202,3.264,203,2.269,204,3.375,205,2.269,206,3.495,207,2.072,208,1.963,214,1.914,215,2.414,237,4.766]],["t/20",[103,3.233,216,2.932,217,4.446,218,3.844,219,4.116,220,4.641,221,5.125]],["t/22",[5,0.475,78,3.438,90,4.678,95,2.252,97,3.438,114,2.928,133,2.742,161,3.882,193,1.605,197,2.422,230,4.042,237,3.769,238,4.078,239,6.187,240,5.605,241,5.535,242,6.405,243,5.142,244,4.078,245,4.078,246,3.289,247,4.589,248,3.741,249,4.589,250,5.605,251,2.41,252,3.49,253,4.078,254,4.589,255,3.741]],["t/24",[5,0.559,8,1.086,9,0.953,14,1.675,18,0.989,37,2.381,58,3.003,65,2.814,75,3.111,108,3.911,136,2.065,192,2.322,193,1.636,210,1.854,222,2.322,223,3.111,224,2.652,225,2.381,228,4.406,229,2.443,230,2.814,231,4.35,232,3.911,233,4.866,234,3.873,235,2.905,237,3.229,256,5.404,257,4.802,258,5.404,259,4.802,260,5.404]],["t/26",[4,1.55,5,0.858,6,1.088,9,0.955,14,1.679,18,0.678,43,3.686,79,2.404,119,2.213,136,2.07,151,2.52,157,2.404,159,1.991,161,1.767,163,2.059,165,1.991,193,1.816,194,2.522,195,1.859,196,1.898,197,1.821,199,1.632,214,1.632,237,4.482,252,4.12,261,2.303,262,4.12,263,6.265,264,2.387,265,2.655,266,2.515,267,5.419,268,3.704,269,4.815,270,5.419,271,5.419,272,5.419,273,2.817,274,3.704]],["t/28",[236,5.168,242,6.751]],["t/30",[4,1.487,5,0.871,6,0.819,8,0.638,9,1.03,14,0.983,18,0.581,20,1.514,23,2.611,47,1.826,192,2.074,193,1.824,194,2.248,195,1.656,196,2.047,197,1.622,198,1.826,199,1.398,200,2.241,201,1.727,203,1.804,205,1.804,207,1.514,208,1.434,214,2.127,215,1.763,264,2.877,266,2.241,275,1.826,276,3.571,277,5.802,278,6.53,279,2.779,280,4.828,281,5.802,282,4.828,283,4.828,284,4.828,285,3.935,286,3.671,287,4.828,288,2.884,289,3.133,290,3.133]],["t/32",[8,1.549,9,1.099,97,2.974,140,2.342,216,2.184,251,2.382,276,3.577,291,2.974,292,4.741,293,3.589,294,5.54,295,5.86,296,4.741,297,4.468,298,3.876,299,5.54,300,5.54,301,5.083,302,5.083]],["t/34",[18,1.027,30,2.473,90,3.642,140,2.191,142,4.575,210,1.925,224,2.754,229,2.537,251,2.144,264,3.177,276,3.904,279,4.151,291,2.677,303,4.575,304,4.987,305,4.267,306,4.575,307,3.817,308,3.489,309,4.575,310,4.987,311,4.022,312,4.987,313,4.267,314,4.987,315,4.267,316,3.643,317,4.987,318,4.575]],["t/36",[5,0.429,8,1.576,9,0.731,18,1.25,23,3.348,28,2.82,30,1.827,88,2.034,111,3.153,117,3.684,140,1.786,146,2.477,178,2.82,188,2.229,216,2.059,222,1.781,224,2.034,230,2.159,235,2.229,251,1.584,264,1.827,276,4.095,279,3.929,291,1.978,293,2.386,306,3.38,307,3.997,316,2.969,319,5.877,320,3.684,321,4.146,322,3.684,323,4.146,324,4.146,325,3.38,326,3.38,327,2.82,328,2.578,329,5.877,330,4.146,331,3.153,332,3.684,333,4.146,334,3.684,335,5.877,336,2.971,337,4.146,338,4.146,339,2.82,340,3.153,341,4.146,342,4.146]],["t/38",[343,7.678]],["t/40",[4,1.553,5,0.895,6,0.737,8,0.873,9,1.071,14,1.882,20,2.072,188,2.335,189,1.963,190,2.595,192,1.866,193,1.806,194,2.303,195,2.083,196,2.127,197,2.04,198,2.5,199,1.914,200,2.819,201,2.173,202,3.264,203,2.269,204,3.375,205,2.269,206,3.495,207,2.072,208,1.963,214,1.914,215,2.414,344,7.088]],["t/43",[103,3.233,216,2.932,217,4.446,218,3.844,219,4.116,220,4.641,221,5.125]],["t/45",[5,0.728,8,1.086,18,0.989,58,3.003,75,3.111,103,2.443,108,4.35,136,2.065,193,1.544,210,2.414,222,2.322,223,3.111,224,2.652,230,2.814,231,4.35,232,3.911,233,4.375,234,3.873,235,2.905,279,3.111,313,5.352,316,2.73,345,5.404,346,4.406,347,7.038,348,4.375,349,5.352]],["t/47",[236,5.168,350,7.598]],["t/49",[4,0.961,5,0.881,6,0.891,8,1.388,48,3.136,53,4.279,55,1.878,72,2.575,92,3.205,102,3.762,144,3.488,162,3.57,188,2.822,193,1.784,194,1.595,195,1.8,197,1.764,199,2.313,331,3.991,351,5.249,352,5.249,353,4.664,354,3.762,355,6.29,356,4.664,357,5.249,358,5.249,359,3.762,360,3.57]],["t/51",[18,1.391,361,6.194]],["t/53",[4,1.482,5,0.858,6,0.629,8,1.089,9,0.955,14,1.679,18,0.678,20,1.767,92,1.719,188,1.991,189,1.675,190,2.213,192,1.592,193,1.785,194,2.142,195,1.859,196,1.898,197,1.821,198,2.132,199,1.632,200,2.515,201,2.523,202,3.79,203,2.025,204,3.011,205,2.025,206,3.119,207,1.767,208,1.675,210,1.271,214,1.632,215,2.059,224,2.659,336,2.655,362,4.551,363,4.815,364,4.815,365,5.419,366,5.419,367,4.12,368,2.132,369,2.655]],["t/56",[5,0.842,9,0.564,14,0.992,30,2.141,51,1.17,103,1.447,150,4.988,163,2.701,172,2.455,174,2.903,192,1.375,193,1.465,201,1.739,203,1.816,210,2.419,216,1.702,217,1.99,218,1.721,219,1.842,220,3.154,230,2.531,232,1.779,235,3.526,362,4.148,369,3.483,370,2.609,371,2.294,372,2.294,373,1.842,374,2.177,375,3.652,376,3.962,377,3.962,378,3.695,379,3.996,380,2.177,381,1.527,382,3.201,383,2.177,384,2.844,385,2.844,386,2.434,387,3.201,388,4.288,389,5.321,390,4.318,391,2.434,392,2.177,393,5.874,394,3.416,395,2.844,396,2.609,397,2.844,398,4.797,399,2.294,400,3.201,401,2.609,402,2.844,403,5.874,404,2.609,405,2.077,406,3.201,407,2.609]],["t/58",[52,3.327,161,4,193,1.654,239,6.377,241,5.704,325,4.54,362,2.994,370,6.473,373,4.57,374,5.401,408,4.235,409,4.54,410,3.991,411,4.54,412,7.055,413,4.54,414,4.54]],["t/60",[8,1.297,9,1.138,14,2.001,18,1.182,37,2.844,58,3.588,65,3.362,75,3.716,87,4.909,192,2.774,193,1.273,222,2.774,223,3.716,224,3.167,225,2.844,286,4.909,362,3.47,376,5.263,415,6.456]],["t/62",[4,1.478,5,0.814,6,0.979,9,0.837,14,1.472,18,0.569,79,2.015,119,1.855,151,2.112,157,2.015,159,1.669,161,1.481,163,1.726,165,1.669,193,1.866,194,2.393,195,1.629,196,1.664,197,2.17,199,1.368,201,1.699,214,1.368,261,1.931,262,3.611,265,2.226,266,3.406,273,2.361,288,2.837,362,3.741,394,2.473,416,5.738,417,5.738,418,4.749,419,3.106,420,3.106,421,3.871,422,4.749,423,4.749,424,4.22,425,4.749,426,4.749,427,4.749,428,3.611,429,4.749,430,4.749,431,3.106,432,3.106]],["t/64",[433,7.678]],["t/66",[4,1.532,5,0.847,6,0.601,8,0.712,9,0.925,14,1.625,20,1.69,188,1.904,189,1.601,190,2.116,192,1.522,193,1.813,194,2.343,195,1.799,196,1.837,197,1.762,198,2.039,199,1.561,200,2.434,201,2.469,202,3.709,203,1.959,204,2.914,205,1.959,206,3.018,207,1.69,208,1.601,214,1.561,215,1.969,266,2.434,363,4.659,364,4.659,394,4.156,434,5.244,435,6.9,436,5.244,437,5.244,438,4.659,439,5.244,440,3.133]],["t/69",[5,0.365,90,2.288,103,2.814,108,3.46,165,1.895,172,3.145,192,1.515,193,1.702,201,1.261,203,1.317,210,1.792,216,1.83,217,2.192,218,3.346,219,2.029,220,3.391,222,1.515,230,2.721,231,3.46,232,3.826,233,4.28,293,2.029,299,3.133,307,2.398,316,3.478,368,3.583,369,3.744,375,3.248,376,5.075,377,5.992,378,4.733,379,2.398,380,2.398,381,1.682,383,2.398,384,3.133,385,4.643,386,2.681,394,3.242,396,2.874,397,3.133,441,2.288,442,3.133,443,2.526,444,3.525,445,3.525,446,2.874,447,3.525,448,3.525,449,3.525,450,2.874,451,2.526,452,2.192,453,3.525,454,6.884,455,2.874,456,3.133,457,2.106,458,3.133,459,3.525,460,2.526,461,2.288]],["t/71",[15,4.241,95,3.059,102,4.468,161,3.676,193,1.52,239,5.86,241,5.242,373,3.589,394,4.013,410,4.468,428,4.741,438,5.54,462,6.235,463,6.848,464,7.707,465,5.54]],["t/73",[8,1.297,9,1.138,14,2.001,18,1.182,37,2.844,58,3.588,65,3.362,75,3.716,192,2.774,193,1.273,222,2.774,223,3.716,224,3.167,225,2.844,394,3.362,465,5.736,466,6.456,467,6.456,468,6.456]],["t/75",[4,1.554,5,0.861,6,1.094,9,0.963,14,1.692,18,0.685,79,2.429,119,2.236,151,2.545,157,2.429,159,2.012,161,1.785,163,2.08,165,2.012,193,1.799,194,2.529,195,1.873,196,1.912,197,1.834,199,1.649,201,1.953,214,1.649,261,2.327,262,4.151,263,6.295,265,2.682,266,2.534,273,2.846,288,3.261,394,4.229,424,4.851,469,5.459,470,3.742,471,5.459,472,5.459,473,5.459,474,5.459,475,3.742]],["t/77",[476,7.678]],["t/79",[4,1.559,5,0.881,6,0.986,8,0.819,9,1.024,14,1.799,20,1.945,188,2.191,189,1.843,190,2.435,192,1.752,193,1.812,194,2.239,195,1.992,196,2.034,197,1.951,198,2.346,199,1.796,200,2.695,201,2.078,203,2.17,205,2.17,207,1.945,208,1.843,210,1.398,214,1.796,215,2.266,288,3.469,289,3.768,290,3.768,477,2.646,478,4.161,479,5.16,480,4.734,481,3.469,482,4.734]],["t/81",[5,0.877,8,1.154,9,1.013,12,2.531,14,1.78,37,2.531,140,2.224,173,6.505,174,3.432,189,3.309,190,3.432,192,2.468,193,1.133,210,1.97,225,2.531,483,5.745,484,4.551,485,4.117,486,4.683,487,5.745,488,5.745,489,5.745,490,4.368,491,5.745,492,4.368,493,3.432]],["t/83",[5,0.793,103,3.465,202,4.121,210,2.63,216,2.166,217,3.843,218,3.323,230,3.22,235,3.323,264,2.724,279,4.413,316,3.873,389,4.43,461,4.012,481,3.693,494,6.249,495,4.012]],["t/85",[5,0.596,9,0.837,41,1.855,48,1.855,55,1.111,56,2.015,62,1.931,65,2.473,82,1.135,92,2.204,97,2.265,133,1.855,137,2.015,189,1.404,193,1.137,205,1.16,210,2.215,216,2.885,222,2.775,251,1.187,275,1.788,291,2.265,292,4.91,293,3.717,296,2.361,298,1.931,305,2.361,316,2.399,327,2.112,348,1.931,371,3.403,372,2.226,373,3.319,381,1.481,383,2.112,396,3.871,421,2.532,495,2.015,496,6.183,497,2.829,498,5.738,499,4.132,500,2.532,501,2.76,502,4.22,503,2.76,504,2.76,505,4.224,506,4.385,507,2.76,508,5.766,509,3.106,510,4.749,511,3.106,512,3.106,513,3.106,514,3.106,515,4.749,516,3.106,517,3.106,518,3.106,519,3.106,520,3.106,521,3.106,522,3.106,523,2.226,524,2.532,525,3.106,526,2.532,527,3.106,528,3.106,529,2.76,530,2.76,531,3.106,532,2.76,533,2.015,534,2.532,535,3.106,536,6.183]],["t/87",[5,0.898,8,0.52,18,0.754,55,0.926,70,1.68,82,0.946,114,1.912,140,0.786,172,2.081,175,2.11,200,1.912,201,2.434,203,2.542,205,2.767,210,2.829,219,1.49,225,1.815,248,2.11,257,2.3,349,1.968,368,2.954,375,5.309,378,1.968,379,3.979,380,1.76,381,1.965,383,3.979,388,1.438,390,2.3,398,2.561,399,5.823,401,3.358,402,2.3,405,3.796,460,2.952,532,2.3,537,5.468,538,1.76,539,1.546,540,2.588,541,2.3,542,1.855,543,2.11,544,4.448,545,3.66,546,2.588,547,2.588,548,2.588,549,2.588,550,3.66,551,4.448,552,4.229,553,3.132,554,4.119,555,2.588,556,4.56,557,2.588,558,2.3,559,3.66,560,2.11,561,2.3,562,3.66,563,4.119,564,2.588,565,2.3,566,1.968,567,2.3,568,2.3]],["t/89",[5,0.274,9,1.27,14,2.315,32,3.822,41,4.464,55,2.313,96,3.535,103,1.2,174,3.544,193,1.613,205,2.217,210,2.639,216,0.93,222,1.806,223,1.528,225,3.292,276,1.232,316,1.341,326,2.164,368,2.419,369,1.902,371,5.354,373,4.941,374,3.548,379,1.805,381,3.564,392,1.805,398,2.612,410,3.011,446,2.164,539,1.586,552,1.65,569,2.654,570,2.358,571,2.654,572,2.358,573,2.358,574,2.654,575,2.018,576,2.654,577,2.164,578,2.164,579,5.933,580,2.654,581,3.195,582,2.654,583,2.654,584,2.164,585,2.358,586,2.654,587,2.654,588,2.654,589,2.358,590,2.358,591,2.654,592,2.018,593,2.654,594,2.358,595,4.202,596,2.654,597,4.202,598,3.734,599,1.902,600,2.682,601,2.654,602,2.654,603,2.654,604,1.722,605,2.164]],["t/91",[5,0.786,8,0.515,18,0.469,23,0.587,32,4.661,43,2.048,44,0.473,48,3.165,52,0.876,55,0.916,58,0.44,60,0.645,64,0.601,65,1.334,70,0.513,72,1.257,82,0.289,90,0.513,92,0.681,95,1.477,96,2.275,97,1.222,99,2.719,102,1.47,103,2.924,104,2.119,114,1.189,136,0.979,137,1.331,140,0.778,144,1.036,157,1.662,161,3.76,168,1.948,178,0.998,193,1.57,201,0.283,203,0.296,205,1.822,210,0.271,216,0.277,230,0.412,231,0.44,239,0.601,241,5.361,243,0.645,244,0.703,246,0.567,251,1.947,276,2.365,311,0.567,313,0.601,322,2.675,325,1.196,336,0.567,340,0.601,349,0.601,360,1.395,368,3.784,374,1.395,398,1.275,405,1.662,408,0.601,409,2.454,410,0.567,411,0.645,413,0.645,414,0.645,428,0.601,446,3.78,457,2.913,494,4.47,495,0.513,497,0.388,538,2.048,539,0.473,544,0.601,551,1.56,552,1.592,553,1.56,562,0.703,570,2.276,578,1.672,592,3.875,594,1.303,599,1.051,600,2.872,606,0.703,607,0.703,608,0.703,609,0.703,610,0.601,611,0.791,612,2.443,613,3.765,614,0.791,615,0.601,616,0.703,617,0.791,618,0.791,619,0.703,620,2.051,621,0.791,622,3.603,623,0.791,624,0.601,625,0.952,626,0.791,627,2.454,628,0.703,629,0.703,630,0.791,631,0.703,632,4.12,633,4.374,634,4.374,635,4.12,636,2.561,637,3.78,638,3.009,639,4.12,640,0.703,641,0.84,642,0.791,643,0.601,644,1.303,645,0.912,646,0.645,647,1.467,648,1.672,649,0.645,650,0.703,651,1.467,652,0.703,653,0.703,654,0.791,655,0.791,656,0.791,657,0.703,658,0.791,659,0.703,660,0.703,661,0.703,662,0.703,663,2.276,664,0.791,665,0.703,666,0.791,667,0.703,668,0.791,669,0.791,670,0.791,671,0.791,672,5.025,673,2.561,674,4.154,675,0.601,676,3.01,677,2.289,678,0.791,679,2.561,680,2.561,681,2.088,682,2.561,683,2.088,684,0.791,685,0.791,686,0.791,687,0.791,688,0.791,689,0.791,690,0.791,691,0.791,692,0.791,693,0.791,694,0.791,695,0.791,696,0.791,697,0.791,698,1.303,699,0.791,700,0.791,701,0.791,702,0.791,703,0.703,704,0.601,705,0.791,706,0.791,707,1.303,708,1.303,709,1.823,710,0.791,711,0.791,712,0.473,713,0.791]],["t/93",[3,0.791,4,1.263,5,0.878,6,1.231,8,1.005,9,0.963,12,1.65,14,0.514,18,0.686,20,1.359,28,1.938,29,1.474,31,1.261,32,0.922,35,1.261,37,0.731,41,0.991,43,3.403,44,0.991,45,1.128,46,1.261,51,1.042,55,0.594,64,1.261,65,0.864,68,1.352,72,0.814,75,1.64,78,0.791,82,0.607,88,0.814,101,1.352,137,1.849,140,1.35,146,1.702,151,3.022,161,0.791,163,3.036,172,2.245,174,0.991,182,2.167,185,2.042,189,0.75,192,1.224,193,1.46,194,2.097,195,1.285,196,1.312,197,1.258,199,0.731,200,0.77,209,1.474,210,2.212,214,0.731,216,0.581,223,0.955,224,1.398,225,1.65,229,0.75,231,0.922,232,0.922,265,1.189,275,0.955,291,1.786,297,1.189,303,1.352,307,1.128,316,2.245,327,2.547,332,1.474,353,1.474,367,1.261,368,1.64,371,1.189,372,2.684,373,1.64,375,2.762,379,1.128,381,0.791,407,1.352,450,1.352,460,1.189,478,1.189,484,1.031,524,1.352,537,2.042,541,3.328,598,1.474,609,1.474,610,1.261,624,1.261,625,1.849,641,0.679,643,1.261,645,1.771,714,1.474,715,1.352,716,1.261,717,1.659,718,1.474,719,1.474,720,2.849,721,1.659,722,1.659,723,4.443,724,1.659,725,1.659,726,1.352,727,1.352,728,1.659,729,1.474,730,2.849,731,1.659,732,1.659,733,1.659,734,1.659,735,1.352,736,1.474,737,2.849,738,1.659,739,1.659,740,1.261,741,1.189,742,1.474,743,1.474,744,2.323,745,2.323,746,1.474,747,1.474,748,2.849,749,1.474,750,1.659,751,1.659,752,1.189,753,1.261,754,2.532,755,1.474,756,1.659,757,1.659,758,1.474,759,1.474,760,1.659,761,1.659,762,1.474,763,1.659,764,1.659,765,4.443,766,1.659,767,1.659,768,2.323,769,1.659,770,1.659,771,1.659,772,1.474,773,1.659,774,1.659,775,1.659,776,1.352,777,1.474,778,1.352,779,1.352,780,1.352,781,2.532,782,2.849,783,1.474,784,1.189,785,1.659,786,1.474,787,2.849,788,1.659,789,1.659,790,1.659,791,1.474,792,1.474,793,1.659,794,1.474,795,1.659,796,1.352,797,1.659,798,1.659,799,0.892,800,1.659]],["t/95",[4,1.549,5,0.835,6,0.762,8,0.58,9,0.971,14,1.706,19,1.872,79,1.872,81,3.657,82,1.055,97,1.376,114,1.339,119,1.723,140,1.363,146,1.723,151,1.962,157,3.573,159,1.551,161,2.14,162,1.962,163,1.603,165,2.412,166,3.987,170,2.352,186,2.352,187,2.563,193,1.854,194,2.336,195,1.539,196,1.572,197,1.85,199,1.977,214,1.977,216,1.01,251,1.102,261,2.789,262,3.411,264,1.977,266,2.883,359,2.067,381,2.14,417,5.519,499,2.067,747,2.563,801,4.821,802,3.987,803,4.486,804,4.486,805,3.987,806,4.486,807,2.067,808,2.885,809,1.872,810,2.563,811,2.885,812,4.486,813,2.885,814,2.885,815,1.872,816,2.885]],["t/97",[361,6.259]],["t/99",[4,1.553,5,0.895,6,0.737,8,0.873,9,1.071,14,1.882,20,2.072,188,2.335,189,1.963,190,2.595,192,1.866,193,1.806,194,2.303,195,2.083,196,2.127,197,2.04,198,2.5,199,1.914,200,2.819,201,2.173,202,3.264,203,2.269,204,3.375,205,2.269,206,3.495,207,2.072,208,1.963,214,1.914,215,2.414,817,5.426]],["t/102",[103,3.233,216,2.932,217,4.446,218,3.844,219,4.116,220,4.641,221,5.125]],["t/104",[5,0.567,8,1.102,9,0.967,14,1.7,18,1.004,37,2.417,58,3.049,65,2.857,75,3.157,108,4.381,136,2.096,192,2.357,193,1.645,210,1.882,222,2.357,223,3.157,224,2.691,225,2.417,228,4.472,229,2.48,230,2.857,231,4.381,232,3.949,233,4.418,234,3.931,235,2.949,817,3.731,818,5.486,819,5.486,820,5.486]],["t/106",[236,5.168,821,5.168]],["t/108",[4,1.121,5,0.828,6,1.196,18,0.805,47,2.53,51,1.607,55,1.573,82,1.607,100,3.342,119,2.626,135,3.342,136,2.339,193,1.81,194,1.86,195,2.1,196,1.54,197,2.057,200,2.04,201,1.573,203,1.643,205,1.643,208,1.987,230,2.289,232,2.443,288,2.626,289,2.853,290,2.853,348,2.733,373,3.524,379,2.99,440,2.626,727,3.583,822,6.261,823,2.626,824,4.396,825,4.396,826,4.396,827,4.396,828,4.396,829,4.396,830,4.396,831,4.396,832,4.396,833,4.396,834,4.396,835,4.396]],["t/110",[5,0.89,47,2.742,108,2.648,119,1.863,136,2.664,141,2.024,161,2.758,163,3.213,193,1.798,197,1.048,225,2.851,230,3.631,231,2.648,232,2.648,233,2.962,235,1.677,241,4.742,265,5.791,328,1.939,381,1.488,452,1.939,486,2.542,497,2.338,507,2.771,628,5.137,716,6.145,745,2.542,801,5.791,836,5.781,837,5.781,838,7.181,839,6.972,840,5.137,841,5.781,842,4.765,843,3.119]],["t/112",[18,1.391,236,5.168]],["t/114",[4,1.553,5,0.895,6,0.737,8,0.873,9,1.071,14,1.882,20,2.072,188,2.335,189,1.963,190,2.595,192,1.866,193,1.806,194,2.303,195,2.083,196,2.127,197,2.04,198,2.5,199,1.914,200,2.819,201,2.173,202,3.264,203,2.269,204,3.375,205,2.269,206,3.495,207,2.072,208,1.963,214,1.914,215,2.414,844,7.088]],["t/117",[87,4.585,103,2.726,136,2.304,193,1.489,202,3.241,210,2.589,216,2.644,217,3.748,218,3.241,219,3.47,220,3.913,221,4.321,316,3.046,380,4.101,456,5.357,458,5.357,460,4.321,845,6.029,846,6.152,847,6.029,848,7.547,849,6.029]],["t/119",[5,0.629,8,1.222,18,1.113,58,3.379,75,3.499,108,4.596,136,2.323,193,1.631,210,2.085,222,2.612,223,3.499,224,2.983,230,3.166,231,4.596,232,4.216,233,4.716,234,4.357,235,3.268]],["t/121",[87,5.777,236,5.168]],["t/123",[4,1.309,5,0.739,6,1.214,18,1.309,194,2.173,229,3.233,264,3.151,850,5.438]],["t/125",[5,0.823,8,1.321,55,2.351,136,2.511,163,3.652,261,4.086,276,3.051,493,3.926,801,4.71,823,4.755,838,5.84,851,5.703,852,6.572,853,4.47]],["t/127",[9,1.506,23,2.802,55,0.885,216,3.082,255,2.017,264,1.09,276,3.58,277,2.198,281,3.531,292,4.748,293,5.064,298,5.31,381,4.221,496,3.531,498,3.531,499,1.773,502,7.589,505,2.287,536,3.531,648,2.017,741,1.773,742,4.425,854,2.474,855,8.46,856,2.017,857,1.881,858,2.474,859,2.474,860,2.474,861,2.474,862,2.474,863,2.474,864,2.474,865,2.198,866,2.474,867,2.474,868,2.198,869,2.474,870,2.474,871,2.474,872,1.606,873,2.474,874,2.198,875,2.474,876,2.474,877,2.017,878,2.474,879,2.474,880,2.474,881,2.474,882,2.198]],["t/129",[48,3.632,108,4.596,229,2.748,231,4.596,232,4.596,233,5.141,375,5.384,380,5.89,381,2.9,550,5.402,638,3.945,840,5.402]],["t/131",[5,0.734,12,1.657,23,1.504,93,4.167,103,1.7,111,4.167,114,1.746,193,1.081,201,2.313,203,2.415,205,2.048,222,1.616,229,2.477,276,2.544,293,2.165,311,2.696,316,3.265,326,5.789,349,2.86,375,5.182,378,2.86,380,2.559,381,3.976,383,3.727,398,2.338,401,4.467,405,3.556,443,2.696,457,3.274,545,3.343,551,2.86,552,3.407,553,2.86,558,3.343,600,1.7,638,3.556,872,2.441,883,4.869,884,3.762,885,5.48,886,5.48,887,3.343,888,4.869,889,3.762,890,4.869,891,3.762,892,3.762,893,3.762,894,3.762,895,3.762,896,3.762,897,3.762,898,3.762,899,3.762,900,3.343,901,3.762,902,2.559]],["t/133",[9,1.497,14,2.631,23,3.395,55,2.944,103,3.72,193,1.675,229,2.142,264,2.087,367,3.603,625,4.184,648,3.862,741,3.395,851,3.395,872,3.075,874,4.21,877,5.256,903,4.21,904,4.738,905,6.448,906,6.448,907,6.448,908,4.738,909,3.862,910,4.738,911,6.448,912,4.21]],["t/135",[5,0.73,9,1.403,14,2.466,18,0.35,23,1.285,28,1.3,32,2.31,51,0.699,55,1.15,95,1.576,99,1.188,114,0.887,162,1.3,182,1.453,189,0.864,193,1.699,216,0.669,229,3.548,237,2.484,240,1.698,241,2.828,245,1.698,246,3.493,250,1.698,251,0.73,264,3.55,293,1.1,316,4.071,362,2.235,367,1.453,369,2.979,371,3.493,375,1.188,381,3.744,394,0.995,409,1.558,412,1.698,443,1.369,457,3.518,463,1.698,495,1.24,538,1.3,600,1.452,622,1.3,625,1.24,629,1.698,632,1.698,638,5.093,645,1.188,660,1.698,663,1.698,672,1.698,698,1.698,707,1.698,708,1.698,709,1.698,752,1.369,799,1.027,853,1.3,883,5.84,890,1.698,900,2.855,902,2.185,903,1.698,913,7.959,914,5.435,915,3.213,916,4.157,917,4.157,918,1.911,919,1.911,920,1.558,921,1.911,922,3.213,923,1.911,924,1.911,925,1.911,926,1.911,927,3.213,928,1.911,929,1.911,930,1.911,931,1.911,932,1.911,933,1.911,934,1.558,935,1.911,936,1.558,937,1.698,938,1.911,939,1.911]],["t/137",[40,5.61,51,2.516,54,5.61,252,5.233,404,5.61,645,4.278,784,4.931,940,6.882,941,6.882,942,6.115,943,6.882,944,6.882]],["t/139",[4,0.954,5,0.539,6,0.885,18,1.258,23,2.084,30,2.296,50,3.735,56,3.382,62,3.24,70,3.382,193,1.517,252,3.963,354,4.925,937,4.631,945,6.107,946,6.107,947,4.248,948,5.211,949,5.211,950,7.114,951,2.633,952,5.211,953,5.211,954,5.211,955,7.253,956,6.107,957,5.211,958,4.631]],["t/141",[15,5.27,33,4.278,40,5.127,176,5.588,189,2.843,251,2.403,320,5.588,542,4.507,600,2.843,605,5.127,624,4.782,799,3.381,936,5.127,945,6.884,946,5.588,959,6.289,960,6.289,961,6.289,962,5.588,963,3.381]],["t/143",[8,0.997,13,4.41,27,3.086,36,3.086,51,2.432,78,3.174,97,2.368,146,2.965,243,4.046,251,1.896,328,4.136,395,4.41,492,3.774,493,3.975,504,4.41,600,2.244,605,4.046,615,3.774,641,2.032,799,2.668,809,3.221,846,4.046,936,4.046,950,4.046,955,6.118,964,4.963,965,5.424,966,6.653,967,4.963,968,3.557,969,4.963,970,4.963,971,4.963,972,4.963,973,4.963,974,4.046,975,4.046,976,4.963,977,4.046,978,4.046,979,4.046,980,4.963,981,4.963,982,3.557,983,4.963]],["t/145",[3,3.283,4,1.26,5,0.712,6,1.168,229,3.111,440,4.111,641,2.817,984,6.882,985,6.115,986,6.882,987,5.61,988,6.882]],["t/147",[55,2.534,441,4.596,989,5.385,990,7.082,991,7.082,992,7.082,993,7.082,994,6.293,995,7.082]],["t/149",[4,1.284,5,0.725,6,1.191,56,4.552,989,5.333,994,6.232,996,6.232,997,7.014,998,7.014,999,6.232]],["t/151",[4,1.004,5,0.567,6,0.931,28,3.731,133,3.277,143,4.874,165,2.949,199,2.417,308,3.41,404,5.793,441,3.56,484,4.418,703,6.315,784,3.931,974,4.472,985,4.874,987,4.472,989,4.171,996,4.874,999,6.315,1000,5.486,1001,5.486,1002,5.486,1003,5.486,1004,4.874,1005,4.874,1006,4.874,1007,5.486,1008,5.486,1009,4.874,1010,5.486,1011,7.106,1012,4.472,1013,5.486]],["t/153",[4,1.272,5,0.718,6,1.179,54,5.663,799,3.734,1014,5.663,1015,6.173,1016,6.947,1017,6.947,1018,6.947,1019,6.947]],["t/156",[4,1.251,5,0.756,6,0.878,8,0.698,9,0.911,18,0.636,23,3.062,44,4.084,82,1.27,97,1.658,133,3.088,159,1.868,193,1.8,194,2.077,195,1.192,196,1.217,197,1.168,200,1.613,201,1.243,203,1.299,205,1.299,216,1.217,264,3.374,266,2.399,276,3.555,279,2,285,2.833,286,2.642,288,2.076,289,2.255,290,2.255,293,2,307,2.364,443,2.49,457,3.088,523,2.49,600,2.337,627,2.833,853,2.364,856,4.214,857,4.693,872,4.436,1020,3.475,1021,5.032,1022,2.833,1023,4.593,1024,2.833,1025,3.088,1026,3.088,1027,3.475,1028,3.475,1029,3.088,1030,2.833,1031,3.088,1032,3.704]],["t/158",[5,0.78,55,2.157,82,2.204,99,3.748,107,3.47,108,3.351,127,4.915,150,4.585,161,2.876,218,3.241,222,2.591,251,2.304,346,4.915,348,3.748,440,3.602,600,2.726,615,4.585,616,5.357,823,3.602,851,4.321,909,4.915,1033,5.357,1034,6.029,1035,6.029,1036,6.029,1037,6.029]],["t/160",[4,1.18,5,0.49,6,0.804,7,4.21,12,2.087,18,1.18,38,3.075,41,2.831,44,4.7,50,3.395,60,6.708,63,3.862,64,3.603,66,3.862,105,3.862,107,2.727,110,4.903,122,4.21,144,2.394,189,2.142,295,4.903,441,3.075,457,2.831,600,2.142,712,2.831,741,3.395,872,3.075,912,5.729,982,3.395,989,3.603,1022,3.862,1038,4.738,1039,4.738,1040,4.21,1041,4.21,1042,4.738,1043,4.738,1044,4.738,1045,4.21,1046,4.21,1047,4.738,1048,4.738,1049,4.738,1050,5.729,1051,4.738,1052,4.738,1053,4.738]],["t/162",[3,1.547,4,1.084,5,0.801,6,1.121,8,0.652,9,1.492,10,1.867,14,1.005,15,2.206,16,2.324,18,1.366,19,2.105,20,3.898,22,4.002,23,1.297,24,2.644,30,2.163,31,2.466,32,1.803,33,2.206,43,2.206,44,1.938,45,2.206,46,3.732,47,1.867,52,1.938,55,1.756,82,1.795,88,2.906,92,1.506,111,2.466,131,2.882,135,2.466,140,0.986,172,2.48,196,1.719,199,2.609,216,1.136,223,1.867,291,3.15,318,2.644,327,2.206,339,2.206,386,2.466,485,2.324,505,1.867,526,2.644,551,2.466,625,3.843,683,2.644,715,2.644,719,2.882,735,4.002,794,2.882,796,4.002,951,1.639,1054,3.244,1055,3.244,1056,3.244,1057,3.244,1058,3.244,1059,4.909,1060,2.882,1061,3.244,1062,3.244,1063,3.244,1064,2.882,1065,3.244,1066,3.244,1067,2.644,1068,3.244,1069,3.244,1070,4.362,1071,3.244,1072,3.244,1073,2.105,1074,2.882]],["t/164",[3,1.451,4,0.557,5,0.809,6,1.17,8,0.611,9,1.336,14,0.942,15,3.179,16,2.179,18,1.469,19,1.973,23,2.756,27,1.89,28,2.068,30,1.34,35,2.312,36,1.89,37,1.34,46,4.857,47,1.75,50,2.179,52,1.817,55,1.088,82,2.081,88,1.492,92,1.412,97,1.451,140,1.42,183,2.312,184,2.312,189,1.375,193,1.707,195,1.603,197,1.022,216,1.637,225,1.34,266,1.412,275,1.75,298,1.89,327,3.871,392,2.068,457,1.817,499,2.179,503,5.675,505,1.75,523,2.179,600,1.375,610,2.312,625,4.918,641,1.245,674,2.479,712,2.792,715,2.479,823,2.792,877,3.809,963,1.635,1060,2.702,1075,2.479,1076,3.041,1077,3.041,1078,2.479,1079,3.041,1080,3.349,1081,3.041,1082,3.349,1083,3.041,1084,3.041,1085,3.041,1086,4.673,1087,3.041,1088,4.152,1089,4.673,1090,3.041,1091,3.041,1092,3.041,1093,3.041]],["t/166",[4,1.395,5,0.825,6,0.869,8,0.826,9,0.455,14,0.799,18,0.472,23,2.849,44,2.454,47,1.484,103,1.166,193,1.833,194,2.247,195,1.409,196,1.793,197,1.38,200,1.907,201,1.47,203,1.535,205,1.535,207,1.23,208,1.166,214,1.81,215,1.433,264,3.576,266,2.71,275,1.484,276,2.959,279,2.364,285,3.349,286,3.124,288,3.488,289,3.789,290,2.666,443,2.944,457,3.488,600,2.639,727,2.102,856,4.759,857,5.164,872,3.789,1021,5.537,1022,3.349,1023,5.188,1024,3.349,1025,3.65,1026,3.65,1029,3.65,1030,3.349,1031,3.65,1094,2.292]],["t/168",[8,1.313,9,0.852,18,0.885,23,3.415,30,2.129,90,3.136,97,2.305,140,2.41,142,3.939,210,1.657,224,2.371,229,2.184,251,2.496,264,2.879,279,3.761,291,3.117,292,3.674,293,2.781,294,4.294,297,3.463,298,3.004,300,4.294,301,3.939,303,3.939,304,4.294,305,3.674,306,3.939,307,3.287,308,3.004,309,3.939,310,4.294,311,3.463,312,4.294,313,3.674,314,4.294,315,3.674,316,3.301,317,4.294,318,3.939,534,3.939,882,4.294,1095,4.832,1096,4.832]],["t/169",[1097,7.678]],["t/171",[52,4.358,82,2.667,505,4.198,612,5.227,1098,5.946,1099,6.481]],["t/173",[4,1.562,5,0.839,6,1.527,9,1.304,14,2.292,18,1.068,30,2.571,193,1.459,354,4.182,753,5.623,1100,5.836,1101,5.186,1102,5.299,1103,5.03,1104,5.186]],["t/175",[4,1.505,5,0.85,6,0.724,9,1.223,14,1.322,20,3.308,55,1.527,193,1.813,194,2.286,195,2.057,196,2.101,197,2.015,198,2.456,199,1.88,200,2.784,201,2.146,203,2.241,205,2.241,207,2.036,208,1.929,214,1.88,215,2.372,288,3.583,289,3.892,290,3.892,291,2.036,478,4.298,479,5.329,480,4.889,481,3.583,482,4.889,1105,3.479]],["t/177",[3,2.77,4,0.746,5,0.6,6,1.375,8,0.819,9,1.428,12,1.796,14,2.509,18,0.746,30,1.796,88,2,133,3.469,189,1.843,193,1.145,194,1.764,196,1.428,218,2.191,362,2.191,394,2.123,452,2.534,478,4.161,484,3.61,643,3.1,645,2.534,712,2.435,729,5.16,778,3.323,779,3.323,821,2.773,950,4.734,975,4.734,1045,3.622,1098,4.734,1102,4.161,1106,6.01,1107,2.773,1108,4.077,1109,3.622,1110,4.077,1111,4.077,1112,7.37,1113,5.807,1114,5.807,1115,5.807,1116,4.077,1117,4.077,1118,4.077,1119,4.077,1120,4.077,1121,4.077]],["t/179",[4,1.522,5,0.891,6,1.2,9,1.385,16,5.068,140,1.654,193,1.7,194,2.387,195,1.868,196,1.907,197,1.829,216,1.907,219,3.134,478,3.902,712,3.253,716,4.14,753,4.14,1102,3.902,1103,3.703,1122,5.445,1123,5.445,1124,5.445,1125,5.445]],["t/181",[4,1.01,5,0.895,6,0.645,8,0.47,9,0.67,14,1.177,18,0.428,55,0.837,82,0.855,92,1.763,102,1.676,103,1.058,119,2.269,193,1.9,194,1.677,195,2.447,197,2.397,214,1.673,266,3.311,275,1.347,288,3.297,289,3.581,331,1.779,348,1.454,355,5.582,356,4.903,359,5.284,408,4.196,428,4.196,440,1.398,492,2.888,495,3.111,823,1.398,1126,3.798,1127,6.499,1128,3.798,1129,5.518,1130,2.079,1131,2.079,1132,3.798,1133,3.798,1134,3.798,1135,3.798,1136,3.798,1137,3.798,1138,3.798,1139,3.798]],["t/183",[5,0.827,8,1.137,18,1.035,90,3.67,103,3.616,119,4.33,137,3.67,174,3.379,197,2.435,224,2.775,279,4.172,311,4.053,316,2.857,340,4.3,355,4.61,359,4.053,381,3.457,442,5.025,492,4.3,495,4.703,638,3.67,639,5.025,801,5.732,1140,5.656]],["t/185",[18,1.391,361,6.194]],["t/188",[4,0.506,5,0.286,6,0.469,9,0.765,18,0.981,20,3.615,23,1.105,30,1.218,36,1.719,47,1.591,51,1.011,56,1.794,72,1.356,81,2.254,85,2.457,136,1.056,138,3.538,141,1.794,172,1.397,185,3.11,193,1.792,196,1.52,229,1.962,266,2.014,275,1.591,298,2.698,302,2.254,308,1.719,327,1.88,339,2.952,386,2.102,391,2.102,398,1.719,450,2.254,451,1.981,452,2.698,485,1.981,493,1.652,539,1.652,542,1.981,624,2.102,645,1.719,768,2.254,777,2.457,778,2.254,779,2.254,783,2.457,791,2.457,792,2.457,796,4.367,799,1.486,865,2.457,947,2.254,958,2.457,965,3.538,974,2.254,1004,2.457,1046,2.457,1070,4.76,1078,2.254,1082,1.981,1105,2.254,1141,2.765,1142,2.765,1143,2.765,1144,2.765,1145,2.765,1146,2.765,1147,2.765,1148,2.765,1149,2.765,1150,2.765,1151,2.765,1152,4.34,1153,2.765,1154,2.765,1155,4.34,1156,2.765,1157,2.457,1158,4.34,1159,2.765,1160,2.765,1161,2.765,1162,2.765,1163,2.765,1164,2.765,1165,5.392,1166,2.765,1167,2.765,1168,2.765,1169,2.457,1170,2.765,1171,2.765,1172,2.765,1173,4.34,1174,2.765,1175,4.34,1176,5.357,1177,4.34,1178,4.34,1179,4.34,1180,2.765,1181,3.3,1182,2.765,1183,2.765,1184,2.765,1185,2.765,1186,2.765,1187,2.765,1188,2.765]],["t/190",[5,0.884,6,0.613,8,0.726,9,0.637,18,0.661,31,2.747,32,2.008,33,2.457,38,2.345,49,2.747,71,3.21,82,1.321,95,2.61,101,5.148,140,1.098,172,1.825,181,3.21,193,1.465,196,1.265,207,2.538,208,2.405,224,2.61,229,1.633,328,2.246,373,2.079,381,1.723,410,3.812,441,2.345,455,2.945,497,1.773,537,3.812,643,2.747,645,3.926,677,2.747,744,4.337,745,4.337,749,4.727,758,6.598,759,3.21,821,2.457,982,2.589,1073,2.345,1075,2.945,1189,3.613,1190,3.613,1191,3.21,1192,3.613,1193,5.32,1194,3.613,1195,5.32,1196,3.613,1197,3.613,1198,6.315,1199,3.613,1200,5.32,1201,7.767,1202,5.32,1203,6.315,1204,3.613,1205,3.613,1206,3.613,1207,3.21,1208,3.21,1209,3.613,1210,3.21]],["t/192",[4,1.014,5,0.785,6,0.4,8,0.473,18,0.431,19,1.528,23,1.527,48,1.407,70,1.528,72,1.873,92,1.772,95,1.873,96,1.155,99,1.464,105,1.919,114,1.093,118,2.903,141,1.528,144,1.189,193,1.852,194,1.16,195,0.808,197,1.861,207,2.297,208,2.177,216,0.825,218,1.266,229,1.064,251,0.9,264,1.037,266,3.026,276,2.235,279,1.355,295,3.662,346,1.919,362,4.082,374,1.601,375,1.464,381,1.123,416,4.279,599,1.687,600,1.064,619,2.092,627,1.919,638,1.528,675,1.79,704,1.79,741,1.687,743,5.41,768,1.919,776,1.919,868,2.092,902,3.768,962,2.092,982,2.736,1009,2.092,1021,1.919,1030,1.919,1033,4.922,1040,2.092,1067,1.919,1099,2.092,1191,2.092,1211,4.815,1212,2.092,1213,2.354,1214,3.818,1215,2.354,1216,3.818,1217,3.818,1218,2.354,1219,6.866,1220,2.354,1221,2.354,1222,2.354,1223,2.354,1224,1.919,1225,2.354,1226,2.354,1227,4.279,1228,4.815,1229,3.818,1230,3.818,1231,3.818,1232,1.79,1233,2.354,1234,2.354,1235,2.354,1236,2.092,1237,2.354,1238,1.919,1239,1.919,1240,2.354,1241,2.354,1242,2.354,1243,2.354,1244,2.354,1245,2.354,1246,2.354]],["t/194",[5,0.753,53,4.646,193,1.815,197,2.447,266,3.726,457,3.405,495,3.699,544,4.334,599,4.085,801,4.085,802,5.065,805,5.065,887,5.065,888,6.472,1032,4.085,1247,5.065,1248,5.7,1249,5.7,1250,5.7,1251,5.7,1252,5.7,1253,5.7]],["t/197",[3,2.26,4,1.342,5,0.667,6,1.335,8,1.296,9,1.137,14,2.271,51,2.679,55,1.695,57,3.223,78,2.26,82,1.732,88,2.325,95,2.325,149,2.946,159,2.547,163,2.633,165,2.547,214,2.087,237,2.831,261,2.946,264,2.087,315,3.603,362,2.547,394,2.467,452,2.946,477,3.075,533,3.075,641,1.94,780,3.862,807,3.395,951,2.394,963,2.547,1103,3.223,1239,3.862,1254,2.394,1255,4.738,1256,4.21,1257,4.738,1258,4.738,1259,4.738,1260,4.21,1261,6.512,1262,4.21,1263,2.633,1264,2.199]],["t/199",[4,1.011,5,0.393,6,0.937,8,0.764,9,1.146,11,2.585,12,2.432,18,0.696,19,2.467,49,2.89,57,2.585,58,2.112,62,2.363,78,1.813,79,2.467,96,1.865,100,2.89,109,3.377,129,3.377,140,1.155,152,3.377,158,3.377,159,2.968,161,1.813,162,3.755,168,2.89,178,3.755,183,2.89,184,2.89,185,2.724,189,1.718,194,1.155,225,1.675,264,1.675,295,2.89,451,2.724,490,2.89,526,3.098,539,2.271,612,2.724,641,1.556,681,3.098,704,2.89,772,3.377,799,2.043,809,2.467,810,3.377,850,4.198,977,3.098,1006,3.377,1232,2.89,1254,1.92,1263,3.068,1264,2.563,1265,3.801,1266,3.801,1267,3.801,1268,3.377,1269,3.377,1270,3.377,1271,3.377,1272,4.906,1273,4.906,1274,3.377,1275,3.801,1276,3.377,1277,3.377,1278,3.801,1279,3.377,1280,3.098,1281,3.377,1282,3.801,1283,3.377,1284,3.801,1285,3.801,1286,3.377,1287,2.89,1288,3.377,1289,3.801,1290,3.098,1291,3.801,1292,3.098,1293,3.801,1294,3.377,1295,3.801]],["t/201",[641,3.016,1254,3.722,1296,6.006,1297,7.368,1298,6.006]],["t/203",[4,0.82,8,1.43,12,1.972,37,2.732,51,2.267,55,1.602,78,2.135,82,1.637,92,2.078,96,3.043,97,2.958,114,2.078,128,3.649,136,2.369,140,1.884,144,2.262,148,3.649,191,3.649,195,1.536,216,2.172,225,1.972,237,2.674,246,3.208,251,1.71,259,3.978,264,1.972,301,3.649,328,3.855,534,3.649,552,2.783,581,3.404,585,3.978,661,3.978,677,3.404,786,3.978,821,3.045,823,2.674,850,3.404,853,3.045,987,3.649,1264,2.878,1280,3.649,1299,3.978,1300,3.978,1301,4.477,1302,3.978,1303,3.978,1304,4.477,1305,4.477,1306,4.477,1307,3.978,1308,4.477,1309,4.477,1310,4.477,1311,4.477,1312,3.978,1313,3.649,1314,4.477]],["t/205",[641,3.016,740,5.602,1254,3.722,1298,6.006,1315,7.368]],["t/207",[3,2.657,5,0.576,6,0.945,9,1.4,10,3.206,18,1.02,35,4.235,55,1.993,57,3.788,68,4.54,194,1.692,225,2.454,251,2.742,339,3.788,484,3.462,493,3.327,612,3.991,625,3.614,641,2.28,781,4.949,809,3.614,951,2.814,979,4.54,982,3.991,1075,4.54,1263,4.413,1316,5.569,1317,5.569,1318,4.949,1319,4.949,1320,5.569,1321,4.949]],["t/209",[641,3.016,1254,3.722,1296,6.006,1298,6.006,1322,7.368]],["t/211",[4,1.012,5,0.572,6,0.938,8,1.111,12,2.435,18,1.012,51,3.165,82,2.021,140,2.17,141,3.587,194,1.679,237,3.302,238,4.911,251,2.112,297,3.961,388,3.072,389,3.961,477,4.634,505,3.181,506,4.203,533,3.587,817,3.759,844,4.911,951,2.792,978,5.822,1073,3.587,1080,3.961,1299,4.911,1323,4.911,1324,5.527,1325,5.527]],["t/213",[641,3.016,1254,3.722,1256,6.547,1326,7.368,1327,5.602]],["t/215",[4,1.361,5,0.608,6,1.262,8,1.182,9,1.037,10,3.386,12,2.592,18,1.077,23,2.353,51,2.717,78,2.806,82,2.717,100,5.651,149,3.658,172,2.972,276,2.731,291,2.806,328,3.658,388,3.27,389,4.216,452,3.658,622,4.002,1328,4.474,1329,5.228,1330,5.228]],["t/217",[641,3.047,1254,3.76,1327,5.659,1331,7.443]],["t/219",[3,2.024,4,0.777,5,0.715,6,1.274,9,1.323,10,2.442,18,0.777,19,2.753,27,2.637,39,3.77,43,2.886,45,4.063,51,2.743,55,1.518,56,2.753,95,2.082,97,2.024,104,2.637,144,2.143,251,1.621,253,3.77,275,2.442,315,3.226,524,3.458,533,2.753,538,2.886,600,1.918,641,3.237,683,3.458,853,2.886,951,2.143,979,3.458,1078,3.458,1207,3.77,1260,3.77,1263,2.358,1318,5.307,1319,3.77,1327,3.226,1332,4.242,1333,4.242,1334,3.77,1335,4.242,1336,3.77,1337,4.242,1338,4.242,1339,4.242,1340,4.242,1341,4.242,1342,4.242,1343,4.242,1344,4.242,1345,4.242,1346,4.242,1347,4.242,1348,3.77,1349,4.242,1350,3.04,1351,4.242,1352,4.242,1353,4.242]],["t/221",[290,4.781,641,3.016,1254,3.722,1327,5.602,1354,7.368]],["t/223",[4,1.161,6,1.077,8,1.275,9,1.118,10,3.651,37,2.795,51,2.848,78,3.026,140,1.927,144,3.205,149,3.944,237,3.79,291,3.026,328,3.944,344,5.637,604,5.055,1328,4.824,1355,4.117,1356,6.343]],["t/225",[641,3.016,1254,3.722,1357,7.368,1358,6.547,1359,6.006]],["t/227",[4,0.896,5,0.611,8,0.983,18,1.081,30,2.155,37,3.119,41,1.929,45,2.196,51,2.409,55,1.155,57,2.196,62,2.008,95,1.584,96,3.233,98,2.869,114,1.499,140,2.151,144,1.631,149,2.008,154,2.632,159,1.736,161,1.54,216,2.069,218,1.736,222,1.387,235,1.736,251,1.234,261,2.008,276,2.741,296,3.72,305,2.455,316,1.631,331,2.455,362,2.63,368,1.859,370,3.988,394,3.076,411,2.632,413,2.632,414,2.632,461,2.096,481,1.929,500,2.632,553,2.455,592,2.455,604,4.276,606,2.869,607,2.869,631,2.869,640,2.869,644,2.869,646,2.632,649,2.632,650,2.869,652,2.869,653,2.869,657,2.869,659,2.869,662,2.869,665,2.869,667,2.869,712,1.929,714,2.869,740,2.455,809,2.096,963,1.736,968,2.314,1050,2.869,1101,2.869,1263,3.282,1264,3.286,1355,3.175,1360,3.229,1361,2.314,1362,2.632,1363,4.892,1364,4.892,1365,2.869,1366,3.229,1367,3.229,1368,3.229,1369,3.229,1370,2.314,1371,3.229,1372,3.229,1373,3.229,1374,3.229,1375,3.229,1376,3.229,1377,2.869]],["t/229",[641,3.047,1254,3.76,1359,6.067,1378,6.614]],["t/231",[5,0.634,36,3.811,51,3.035,114,2.846,140,1.863,201,2.194,203,2.291,205,2.291,222,3.567,308,3.811,368,3.529,392,4.17,405,3.978,455,4.998,552,3.811,604,4.949,902,5.187,1105,4.998,1379,5.447]],["t/233",[1254,3.76,1359,6.067,1380,7.443,1381,7.443]],["t/235",[5,0.717,6,1.018,8,0.858,9,1.326,18,1.098,37,1.88,45,2.903,47,2.456,51,2.193,72,2.094,96,2.943,136,1.63,140,1.297,146,2.549,149,2.653,186,3.479,205,1.595,222,1.833,291,2.036,302,3.479,388,2.372,392,2.903,407,3.479,560,3.479,578,3.479,581,4.56,600,1.929,610,3.245,622,5.117,681,3.479,712,2.549,744,4.889,754,3.792,817,2.903,821,4.717,956,3.792,977,3.479,1064,3.792,1074,3.792,1088,3.792,1107,2.903,1247,3.792,1280,4.889,1328,3.245,1329,3.792,1355,2.769,1382,4.267,1383,3.479,1384,4.267,1385,3.792,1386,4.267,1387,4.267,1388,3.792,1389,4.267,1390,4.267,1391,4.267,1392,4.267,1393,4.267,1394,4.267,1395,4.267]],["t/237",[641,3.016,1254,3.722,1396,7.368,1397,7.368,1398,6.006]],["t/239",[4,1.552,5,0.792,6,1.301,9,1.206,20,3.263,30,2.28,32,2.876,37,3.014,92,2.402,96,2.539,107,2.978,123,4.218,136,1.977,231,2.876,275,2.978,374,3.52,398,3.217,542,3.708,581,3.935,635,4.598,740,5.201,821,3.52,909,4.218,934,4.218,951,2.614,955,4.218,1264,3.175,1362,4.218,1399,3.935,1400,5.175,1401,5.175,1402,5.175,1403,5.175,1404,4.218]],["t/241",[641,3.016,1254,3.722,1378,6.547,1398,6.006,1405,7.368]],["t/243",[4,0.665,5,0.552,6,1.075,8,1.273,9,1.117,10,3.645,27,2.257,30,1.6,32,3.52,37,2.79,41,2.169,51,2.72,52,2.169,65,1.891,66,2.96,78,1.732,82,1.952,92,1.685,96,1.781,107,3.073,136,1.387,140,1.622,149,2.257,201,1.299,203,1.357,205,1.995,210,1.245,275,2.09,291,2.547,328,2.257,336,2.602,348,3.319,362,1.952,388,2.018,394,1.891,398,2.257,461,2.356,481,2.169,493,2.169,565,3.226,566,2.761,572,3.226,577,2.96,584,2.96,589,3.226,590,3.226,600,1.641,726,2.96,817,2.47,823,2.169,963,1.952,975,2.96,1041,3.226,1208,3.226,1236,3.226,1264,2.478,1271,3.226,1276,3.226,1302,3.226,1328,2.761,1355,2.356,1361,2.602,1362,2.96,1383,2.96,1399,4.816,1406,3.226,1407,3.631,1408,5.339,1409,5.339,1410,2.761,1411,2.761,1412,2.761,1413,2.761,1414,2.96,1415,2.761,1416,3.631,1417,3.631,1418,3.631,1419,3.631]],["t/245",[4,0.845,5,0.478,6,0.784,9,0.814,10,2.658,12,2.035,23,2.533,48,2.759,51,2.316,55,2.267,65,3.299,82,1.688,96,2.266,97,2.203,104,2.871,107,3.647,108,2.567,133,2.759,135,4.818,136,1.764,140,1.403,144,3.201,201,1.652,203,1.726,216,1.618,222,1.984,291,2.203,296,3.512,360,4.309,388,2.567,440,2.759,461,2.997,481,2.759,539,2.759,560,3.765,575,3.512,584,3.765,637,3.765,784,4.54,799,3.406,1181,3.512,1264,2.144,1300,4.104,1355,2.997,1361,5.183,1370,3.309,1410,3.512,1420,3.512,1421,4.618,1422,4.104,1423,4.104,1424,4.104]],["t/247",[2,4.393,18,1.122,48,3.662,65,3.193,138,4.998,140,1.863,170,4.998,222,3.277,451,5.465,497,3.008,746,5.447,815,3.978,1107,4.17,1264,2.846,1404,4.998,1425,6.13,1426,6.13,1427,6.13,1428,6.13,1429,6.13,1430,6.13,1431,6.13,1432,6.13]],["t/249",[55,2.395,57,4.552,104,4.16,144,4.065,148,5.456,182,5.089,291,3.192,360,4.552,674,5.456,1005,5.947,1263,3.719,1290,6.559,1420,5.089]],["t/251",[1254,3.76,1296,6.067,1398,6.067,1433,7.443]],["t/253",[6,1.262,9,1.31,27,3.658,32,3.27,51,2.978,140,2.682,175,6.059,210,2.018,408,5.651,452,5.065,608,6.604,1406,5.228,1434,5.883,1435,5.228,1436,6.604,1437,5.883]],["t/255",[4,0.947,5,0.792,6,1.161,8,1.04,9,0.912,18,0.947,23,2.069,37,3.014,78,2.468,92,2.402,107,2.978,140,1.572,162,3.52,165,2.782,194,2.477,210,1.775,222,2.223,235,2.782,291,2.468,399,3.708,405,3.358,493,3.091,539,3.091,552,3.217,815,3.358,1264,3.175,1336,4.598,1411,5.201,1412,3.935,1413,3.935,1414,4.218,1415,5.201,1438,5.175,1439,5.175,1440,5.175,1441,4.218,1442,4.218]],["t/257",[3,3.587,537,5.389,965,6.13]],["t/260",[3,2.215,4,1.037,5,0.86,6,1.411,8,1.138,9,1.279,12,1.329,14,1.755,17,2.293,18,1.037,21,2.458,24,2.458,26,2.051,30,2.046,33,2.051,51,1.103,65,1.571,88,1.48,95,1.48,97,1.439,110,3.531,123,2.458,140,0.916,141,3.013,171,2.458,172,1.524,189,1.363,193,1.612,194,2.204,195,1.593,196,1.626,197,1.56,210,1.034,214,2.046,225,2.046,246,2.161,251,1.152,264,1.329,273,2.293,298,2.887,336,2.161,392,2.051,440,1.802,484,1.875,493,1.802,497,1.48,641,1.235,716,3.531,718,2.68,780,3.785,799,1.621,850,2.293,951,2.86,963,2.496,1015,2.68,1073,1.957,1080,2.161,1102,2.161,1103,3.158,1104,4.126,1261,2.68,1262,4.126,1263,1.676,1348,2.68,1442,2.458,1443,3.016,1444,3.016,1445,4.643,1446,4.643,1447,3.016,1448,3.016,1449,3.016,1450,3.016,1451,3.016,1452,4.126,1453,2.458,1454,3.016,1455,3.016,1456,3.016,1457,3.016]],["t/262",[2,3.309,3,2.203,4,1.16,5,0.748,6,1.075,9,0.814,11,3.141,12,2.791,18,1.16,37,2.035,38,2.997,51,2.316,73,3.765,78,2.203,88,2.266,104,2.871,136,1.764,178,4.309,183,3.512,184,3.512,185,3.309,188,2.483,251,1.764,264,2.035,291,2.203,308,2.871,362,2.483,394,2.405,460,3.309,505,2.658,539,2.759,600,2.088,612,3.309,784,3.309,799,2.483,807,3.309,817,3.141,951,3.201,963,2.483,1107,3.141,1263,2.567,1268,5.63,1269,4.104,1272,4.104,1273,4.104,1277,4.104,1279,4.104,1281,4.104,1287,3.512,1441,3.765,1458,4.618,1459,4.618,1460,4.618,1461,4.618]],["t/264",[4,0.997,5,0.731,6,1.2,9,1.247,11,3.703,12,2.399,14,1.687,16,3.902,17,4.14,18,0.997,22,4.439,26,3.703,30,2.399,92,2.527,94,4.838,141,3.533,293,3.134,388,3.93,452,3.385,484,3.385,505,3.134,506,5.377,815,3.533,951,3.573,963,4.222,1012,4.439,1103,3.703,1452,4.838,1462,5.445,1463,5.445,1464,5.445,1465,5.445]],["t/266",[5,0.641,8,0.9,18,1.303,41,2.674,51,1.637,55,1.602,72,2.196,78,2.135,82,2.267,83,3.649,88,2.196,95,2.196,107,2.577,133,3.705,136,1.71,140,1.36,147,3.978,159,3.333,194,1.36,210,1.536,225,1.972,359,3.208,490,3.404,497,4.198,533,4.024,762,3.978,822,3.978,823,2.674,851,5.099,920,3.649,1032,5.099,1130,3.978,1270,3.978,1313,3.649,1330,3.978,1355,2.905,1361,3.208,1399,3.404,1411,3.404,1412,3.404,1413,3.404,1436,5.51,1466,4.477,1467,5.51,1468,4.477,1469,3.978,1470,4.477,1471,4.477,1472,4.477,1473,3.978]],["t/268",[5,0.628,8,1.017,12,1.489,18,1.388,32,1.878,51,1.235,55,2.172,70,3.285,82,2.219,83,2.754,88,1.658,96,1.658,99,2.1,114,2.35,118,2.569,133,2.018,140,2.388,149,2.1,159,2.721,172,1.707,174,2.018,178,2.298,188,1.816,192,1.452,196,1.183,200,1.568,208,1.527,210,2.082,216,1.773,225,1.489,229,2.288,251,2.319,334,3.002,339,2.298,368,1.945,372,2.421,373,1.945,441,2.193,461,2.193,481,2.018,493,3.024,494,4.948,497,3.856,499,2.421,501,3.002,530,3.002,533,3.939,543,2.754,599,2.421,604,3.285,622,2.298,646,2.754,649,2.754,675,2.569,735,2.754,736,3.002,776,2.754,807,2.421,853,2.298,1032,2.421,1181,2.569,1264,2.35,1287,2.569,1307,3.002,1370,2.421,1379,3.002,1453,2.754,1473,3.002,1474,3.002,1475,3.379,1476,3.379,1477,3.379,1478,3.379,1479,3.379,1480,3.379,1481,3.379,1482,3.379,1483,3.379,1484,3.379,1485,3.379,1486,3.379,1487,3.379]],["t/270",[2,3.682,5,0.531,6,0.872,8,1.033,9,0.906,12,2.264,15,3.495,18,0.941,37,2.264,38,4.418,56,3.335,72,2.521,136,1.963,137,3.335,140,2.47,144,2.596,150,3.907,159,2.762,497,3.746,600,2.323,799,2.762,823,3.07,947,4.189,963,2.762,978,4.189,1014,4.189,1109,4.566,1131,4.566,1239,4.189,1264,2.385,1286,4.566,1287,3.907,1288,4.566,1321,4.566,1488,5.138,1489,5.138,1490,5.138,1491,5.138,1492,4.566,1493,5.138,1494,5.138,1495,5.138]],["t/272",[3,2.072,4,1.112,5,0.449,8,1.22,18,1.112,21,3.541,23,1.737,27,2.7,41,2.595,78,2.072,79,2.819,96,2.131,136,1.659,146,2.595,154,3.541,157,2.819,161,2.896,165,2.335,172,2.194,193,1.574,195,1.49,210,1.49,225,1.914,261,2.7,266,2.016,276,2.016,389,3.113,399,5.017,441,2.819,477,2.819,497,2.131,575,3.303,577,3.541,641,1.778,807,3.113,951,2.194,963,3.264,1073,2.819,1080,3.113,1181,4.617,1264,2.016,1303,6.736,1312,3.859,1313,3.541,1383,3.541,1388,3.859,1410,3.303,1496,4.343,1497,4.343,1498,4.343,1499,4.343,1500,6.072,1501,4.343,1502,4.343,1503,4.343,1504,4.343,1505,4.343,1506,4.343]],["t/274",[6,0.975,9,1.291,20,2.74,26,3.907,30,2.531,62,4.551,127,4.683,140,1.745,168,4.368,174,3.432,199,2.531,210,1.97,251,2.797,298,3.571,556,5.105,566,4.368,567,5.105,809,3.728,934,4.683,1098,4.683,1165,5.105,1365,5.105,1385,5.105,1507,5.745,1508,5.105,1509,4.683,1510,5.745,1511,5.745,1512,5.745,1513,5.745]],["t/276",[18,1.48,37,2.551,96,2.841,136,2.212,140,2.235,216,2.028,222,2.488,276,3.415,368,3.333,477,3.758,497,3.968,533,4.775,592,4.403,951,2.925,963,3.113,968,4.149,1370,4.149,1377,5.145,1467,6.537,1474,5.145,1508,5.145,1514,5.145,1515,5.145,1516,5.79]],["t/278",[6,1.015,9,1.054,27,3.717,30,2.635,52,3.572,55,2.14,72,2.934,194,1.817,216,2.095,360,4.067,484,3.717,497,2.934,500,4.875,641,3.074,645,3.717,712,3.572,752,4.285,951,3.793,963,3.215,1073,3.881,1106,5.314,1350,4.285,1453,4.875,1469,5.314,1515,5.314,1517,5.314]],["t/280",[4,1.214,5,0.686,6,1.126,251,3.057,297,4.752,497,3.254,600,2.998,809,4.304,968,4.752,1232,5.043,1263,3.685,1292,5.406,1350,4.752,1518,5.893,1519,6.632]],["t/282",[3,3.052,4,1.434,5,0.81,6,1.436,9,1.128,10,3.683,18,1.172,30,2.819,62,3.978,354,4.586,1264,2.97,1274,5.686,1509,5.217,1520,6.399,1521,6.399,1522,6.399]],["t/284",[4,0.777,5,0.618,8,1.508,11,2.886,26,2.886,36,2.637,72,2.082,92,1.969,93,4.542,97,2.024,130,3.458,146,2.535,174,2.535,193,1.48,210,2.049,219,2.442,381,2.024,388,4.559,461,5.132,477,2.753,481,4.724,485,4.28,486,3.458,573,3.77,604,3.876,712,3.568,726,3.458,799,3.211,1014,3.458,1032,3.04,1082,3.04,1264,3.209,1355,3.876,1361,3.04,1492,3.77,1514,5.307,1518,3.77,1523,4.242,1524,4.242,1525,4.242,1526,4.242,1527,5.973,1528,5.973,1529,5.973,1530,4.242]],["t/286",[4,1.207,5,0.825,6,1.119,8,0.984,9,0.863,12,2.157,18,1.365,23,1.958,72,2.403,82,2.41,88,2.403,92,2.273,95,3.235,104,4.099,107,4.934,110,3.724,134,4.351,216,1.715,276,2.273,388,2.721,391,3.724,497,2.403,529,4.351,704,3.724,755,4.351,815,3.178,1094,5.859,1264,3.06,1283,4.351,1350,3.509,1422,4.351,1423,4.351,1424,4.351,1531,4.897,1532,4.897,1533,4.351,1534,4.897,1535,4.897]],["t/288",[12,2.232,51,1.852,104,3.15,161,2.417,163,2.816,193,1.771,194,1.54,195,1.738,201,1.813,203,1.893,204,2.816,205,1.893,229,2.29,266,3.131,377,4.13,388,3.749,399,3.631,480,4.13,481,3.027,482,4.13,505,2.916,506,3.853,544,5.129,559,4.502,1012,4.13,1264,2.352,1290,4.13,1323,5.994,1435,4.502,1536,5.067,1537,5.067,1538,5.067,1539,5.067,1540,5.067,1541,5.067,1542,5.067,1543,5.067,1544,5.067,1545,5.067]],["t/290",[2,4.995,3,2.54,4,1.276,5,0.551,6,0.904,18,0.975,36,3.311,38,3.456,51,2.548,52,4.164,140,2.6,210,2.391,269,4.732,372,3.816,373,3.065,485,3.816,497,2.613,575,4.049,752,3.816,815,3.456,968,3.816,1107,3.622,1292,4.341,1350,3.816,1404,4.341,1546,5.326,1547,5.326,1548,5.326,1549,5.326,1550,5.326,1551,5.326,1552,5.326,1553,5.326,1554,5.326]],["t/292",[3,3.509,4,1.347,5,0.599,6,1.249,9,1.021,11,3.938,17,5.594,18,1.06,26,3.938,58,3.218,78,2.762,193,1.142,255,4.72,308,3.6,309,4.72,354,5.272,815,3.758,951,2.925,1263,3.218,1509,4.72,1517,5.145,1555,7.357,1556,7.357,1557,5.79,1558,5.79]],["t/294",[4,1.306,5,0.844,6,1.104,8,1.307,23,1.52,72,1.865,88,1.865,92,1.764,95,1.865,103,1.718,107,3.743,114,3.018,115,3.098,165,2.043,193,1.089,194,2.303,196,1.331,201,1.36,203,1.42,205,1.42,235,2.043,251,2.109,360,3.755,405,2.467,451,2.724,477,2.467,505,2.188,539,2.271,542,2.724,552,2.363,615,2.89,637,3.098,638,3.583,752,2.724,753,2.89,942,3.377,1073,2.467,1080,2.724,1082,3.957,1157,4.906,1210,4.906,1232,2.89,1263,2.112,1264,2.563,1294,3.377,1334,3.377,1370,2.724,1410,4.198,1411,4.944,1412,2.89,1413,2.89,1414,3.098,1415,2.89,1441,3.098,1442,3.098,1533,3.377,1559,3.801,1560,3.801,1561,3.801,1562,3.801,1563,3.801,1564,3.801,1565,3.801,1566,3.801,1567,3.801,1568,3.801]],["t/296",[5,0.873,6,0.789,8,1.279,9,0.819,18,0.851,44,2.777,51,1.699,63,3.789,70,3.016,72,3.829,88,2.28,93,3.534,95,3.122,96,3.122,99,2.889,114,3.622,136,1.776,140,1.412,165,2.498,172,2.348,192,1.997,224,2.28,225,2.048,251,1.776,308,2.889,391,3.534,537,3.331,538,5.308,543,3.789,604,3.016,622,3.161,677,3.534,851,3.331,920,3.789,1067,3.789,1082,3.331,1107,3.161,1212,4.13,1399,3.534,1415,4.839,1420,3.534,1569,4.648,1570,4.648,1571,4.648,1572,4.648]],["t/298",[4,1.48,5,0.836,6,0.983,82,2.117,193,1.733,194,2.235,195,1.986,196,2.577,197,1.945,200,2.688,201,2.072,202,3.113,203,2.164,204,3.218,205,2.164,206,3.333,207,2.762,208,2.617,348,3.6,440,3.459,523,4.149,1573,5.145]],["t/300",[4,1.346,5,0.853,6,0.81,18,1.346,72,2.34,82,2.688,114,3.006,115,3.888,118,3.626,128,3.888,144,2.409,193,1.716,194,1.968,195,1.636,196,2.268,197,1.602,201,1.706,202,2.564,203,1.782,204,2.65,205,1.782,206,2.745,207,2.275,208,2.156,266,2.214,348,2.965,421,3.888,440,2.849,523,3.418,902,4.405,1224,3.888,1238,3.888,1573,4.238,1574,4.238,1575,4.769,1576,4.769,1577,4.769,1578,4.769,1579,4.769]],["t/302",[4,1.149,5,0.765,6,0.607,8,0.719,18,0.655,62,2.224,82,1.308,88,1.755,97,1.706,99,3.283,114,2.452,136,1.367,140,1.087,144,1.807,171,2.916,172,1.807,193,1.816,194,1.908,195,1.227,196,1.253,197,1.202,201,1.28,202,1.923,203,1.337,204,1.988,205,1.337,206,2.059,207,1.706,208,1.617,229,1.617,248,2.916,266,3.218,339,2.433,340,4.016,383,3.592,490,2.72,538,2.433,561,3.179,566,2.72,568,3.179,675,2.72,846,2.916,857,2.72,872,2.322,902,3.592,1024,2.916,1102,2.564,1103,2.433,1169,3.179,1224,2.916,1227,3.179,1238,2.916,1358,4.693,1420,2.72,1574,3.179,1580,3.577,1581,6.933,1582,5.282,1583,3.577,1584,5.282,1585,3.577,1586,3.577,1587,3.577,1588,3.577,1589,3.577,1590,3.577,1591,3.577,1592,3.577,1593,3.577,1594,3.577]]],"invertedIndex":[["",{"_index":193,"t":{"8":{"position":[[79,1],[115,1],[209,1],[326,2],[374,2],[436,1],[495,2],[506,1],[515,1],[618,1],[693,2],[777,2],[839,1],[898,2],[909,1]]},"13":{"position":[[163,1],[252,1],[265,1],[282,1]]},"17":{"position":[[77,1],[113,1],[205,1],[322,2],[370,1],[390,2],[401,1],[410,1],[511,1],[586,2],[670,1],[690,2],[701,1]]},"22":{"position":[[41,2],[159,2],[288,2],[460,2],[582,2]]},"24":{"position":[[161,1],[311,1],[324,1],[341,1]]},"26":{"position":[[154,1],[326,1],[348,1],[400,2],[403,1],[405,2],[484,2],[564,2],[575,1],[584,1],[769,1],[791,1],[845,2],[848,1],[850,2],[929,2],[1009,2],[1020,1]]},"30":{"position":[[85,1],[223,1],[225,1],[314,6],[346,1],[372,1],[374,2],[392,1],[512,2],[560,1],[584,2],[595,1],[604,1],[760,1],[762,1],[851,6],[883,1],[909,1],[911,2],[929,1],[1007,2],[1091,1],[1115,2],[1126,1]]},"40":{"position":[[78,1],[114,1],[207,1],[324,2],[372,1],[393,2],[404,1],[413,1],[515,1],[590,2],[674,1],[695,2],[706,1]]},"45":{"position":[[264,1],[277,1],[294,1]]},"49":{"position":[[241,1],[250,1],[266,1],[268,2],[316,2],[345,1],[362,2],[365,1]]},"53":{"position":[[67,1],[103,1],[185,1],[302,2],[350,1],[407,1],[430,2],[451,1],[460,1],[551,1],[626,2],[710,1],[767,1],[790,2],[811,1]]},"56":{"position":[[412,1],[425,1],[627,1],[674,1],[975,1],[988,1]]},"58":{"position":[[25,2],[108,2],[199,2],[287,2]]},"60":{"position":[[151,1]]},"62":{"position":[[144,1],[312,1],[330,1],[371,1],[384,2],[387,1],[438,2],[441,3],[463,1],[480,2],[483,1],[519,2],[522,4],[534,2],[628,2],[690,4],[695,1],[704,1],[885,1],[903,1],[946,1],[959,2],[962,1],[1015,2],[1018,3],[1040,1],[1057,2],[1060,1],[1096,2],[1099,4],[1111,2],[1205,2],[1267,4],[1272,1]]},"66":{"position":[[66,1],[102,1],[215,1],[249,1],[391,2],[439,1],[452,2],[455,1],[523,2],[580,1],[589,1],[711,1],[745,1],[845,2],[929,1],[942,2],[945,1],[1013,2],[1070,1]]},"69":{"position":[[17,1],[26,1],[36,1],[44,1],[55,1],[68,1],[82,1],[98,1],[115,1],[476,1],[488,1]]},"71":{"position":[[26,2],[95,2]]},"73":{"position":[[150,1]]},"75":{"position":[[143,1],[299,1],[316,1],[357,2],[360,1],[396,2],[489,1],[516,1],[525,1],[694,1],[711,1],[754,2],[757,1],[793,2],[886,1],[913,1]]},"79":{"position":[[64,1],[159,1],[231,1],[240,1],[353,2],[435,2],[438,2],[441,1],[458,1],[539,1],[548,1],[619,2],[737,2],[740,2],[743,1]]},"81":{"position":[[114,1]]},"85":{"position":[[253,1],[262,1],[464,1]]},"89":{"position":[[107,1],[254,1],[386,1],[416,1],[577,1],[692,1],[725,1],[892,1],[924,1],[1089,1],[1127,1],[1309,1]]},"91":{"position":[[28,2],[101,2],[264,2],[348,2],[588,2],[664,2],[686,2],[784,2],[1062,2],[1343,2],[1597,2],[1820,2],[2233,2],[2455,2],[2571,2],[2877,2],[3212,2],[3512,2],[3612,2],[3870,2],[4127,2],[4387,2],[4649,2],[4769,2],[5237,2],[5364,2],[5459,2],[5563,2],[5661,2],[5787,2],[6187,2],[6322,2],[6458,2],[6874,2],[7016,2],[7145,2],[7550,2],[7683,2],[7776,2],[7869,2],[8034,1],[8056,2],[8187,2],[8323,2]]},"93":{"position":[[69,1],[571,1],[677,1],[709,3],[713,1],[772,1],[844,1],[887,3],[891,1],[1049,1],[1121,1],[1160,3],[1164,1],[2305,1]]},"95":{"position":[[93,1],[250,1],[265,1],[301,1],[318,2],[321,1],[349,2],[352,2],[355,1],[357,2],[373,3],[377,2],[380,4],[429,3],[433,3],[437,1],[446,1],[621,1],[636,1],[672,1],[689,2],[692,1],[720,2],[723,2],[726,1],[728,2],[744,3],[748,2],[751,4],[800,3],[804,3],[808,1],[856,1],[1282,1]]},"99":{"position":[[78,1],[114,1],[207,1],[324,2],[372,1],[393,2],[404,1],[413,1],[515,1],[590,2],[674,1],[695,2],[706,1]]},"104":{"position":[[162,1],[261,1],[274,1],[291,1]]},"108":{"position":[[219,1],[235,2],[261,1],[288,3],[305,1],[322,1],[331,1],[431,2],[481,1],[586,2],[589,2],[599,2],[602,1]]},"110":{"position":[[76,2],[99,1],[129,1],[131,2],[212,2],[269,2],[288,1],[318,1],[320,2],[401,2],[455,2],[508,2],[527,1],[557,1],[559,2],[728,2],[828,2],[933,2],[1041,1],[1055,1],[1071,1]]},"114":{"position":[[73,1],[109,1],[197,1],[314,2],[362,1],[378,2],[389,1],[398,1],[495,1],[570,2],[654,1],[670,2],[681,1]]},"117":{"position":[[181,1],[192,1]]},"119":{"position":[[123,1],[136,1],[153,1]]},"131":{"position":[[657,1],[678,1]]},"133":{"position":[[101,1],[184,1],[261,1],[338,1],[441,1],[564,1]]},"135":{"position":[[93,1],[217,1],[300,2],[303,2],[453,1],[508,2],[511,2],[635,1],[752,2],[755,2],[925,1],[1137,1],[1293,1],[1413,1],[1527,1],[1668,1],[1779,1],[1824,1],[1941,1],[2178,1],[2214,1],[2237,1],[2528,1],[2630,1],[2774,1]]},"139":{"position":[[211,1],[237,1],[312,1]]},"156":{"position":[[91,1],[293,1],[295,1],[334,1],[393,1],[410,1],[412,2],[445,1],[447,1],[485,1],[534,1],[536,2],[554,1],[563,1],[636,3],[715,2],[735,2],[738,1]]},"164":{"position":[[1172,1],[1194,2],[1197,1],[1216,3],[1227,2],[1263,1],[1272,1],[1293,1],[1320,1],[1322,1],[1338,1],[1340,1],[1342,1],[1344,1]]},"166":{"position":[[131,1],[333,1],[335,1],[374,1],[433,1],[450,1],[452,2],[485,1],[487,1],[525,1],[574,1],[576,2],[594,1],[701,2],[749,1],[826,2],[847,1],[856,1],[1076,1],[1078,1],[1117,1],[1176,1],[1193,1],[1195,2],[1228,1],[1230,1],[1268,1],[1317,1],[1319,2],[1337,1],[1415,2],[1499,1],[1576,2],[1597,1]]},"173":{"position":[[33,2],[49,2]]},"175":{"position":[[31,1],[103,1],[112,1],[225,2],[307,2],[310,2],[313,1],[400,1],[481,1],[490,1],[561,2],[679,2],[682,2],[685,1]]},"177":{"position":[[363,2],[563,2]]},"179":{"position":[[100,1],[157,2],[244,1],[292,3],[296,1]]},"181":{"position":[[155,1],[164,1],[171,3],[175,1],[195,2],[205,2],[208,1],[236,1],[259,1],[285,1],[287,2],[290,2],[293,1],[314,1],[332,2],[381,1],[450,1],[459,1],[466,3],[470,1],[490,2],[500,2],[503,1],[531,1],[554,1],[580,1],[582,2],[585,2],[588,1],[609,1],[627,2],[676,1],[904,1],[913,1],[946,3],[950,2],[970,3],[974,2],[993,2],[1011,2],[1014,1],[1042,1],[1067,1],[1093,1],[1095,2],[1098,2],[1101,1],[1125,1],[1165,1],[1180,2],[1229,1],[1311,1],[1320,1],[1353,3],[1357,2],[1377,3],[1381,2],[1400,2],[1418,2],[1421,1],[1449,1],[1474,1],[1500,1],[1502,2],[1505,2],[1508,1],[1532,1],[1572,1],[1587,2],[1636,1]]},"188":{"position":[[1138,3],[1181,1],[1218,1],[1220,1],[1222,3],[1235,1],[1325,2],[1341,1],[1377,1],[1413,2],[1416,1],[1418,2],[1421,3],[1456,1],[1516,1],[1518,1],[1520,3],[1533,1],[1614,2],[1630,1],[1666,1],[1702,2],[1705,1],[1707,2]]},"190":{"position":[[183,3],[322,2],[357,2],[444,1],[1040,1]]},"192":{"position":[[310,1],[328,1],[357,2],[389,1],[418,2],[449,1],[479,1],[497,2],[500,1],[560,2],[563,4],[575,1],[658,1],[660,1],[684,2],[687,1],[790,2],[824,2],[834,2],[837,1],[1082,1],[1095,2],[1119,2],[1122,1],[1225,2],[1259,2],[1282,1],[1365,1],[1367,1],[1386,2],[1389,1],[1674,1],[1687,2],[1690,1],[1699,1],[1759,2],[1804,2],[1807,2],[1830,1],[1913,1],[1915,1],[2083,2],[2086,2],[2106,2]]},"194":{"position":[[155,1],[207,1],[220,2],[223,1],[238,1],[304,1],[331,3],[335,2]]},"260":{"position":[[367,1],[432,2],[516,3],[520,1],[576,2],[579,1],[621,1],[635,2],[714,2],[717,1]]},"272":{"position":[[322,1],[324,1],[399,2],[430,3],[434,2]]},"284":{"position":[[535,2],[675,2],[678,2],[804,2]]},"288":{"position":[[180,1],[246,1],[268,2],[290,1],[344,2],[347,2],[350,2],[393,2]]},"292":{"position":[[253,2]]},"294":{"position":[[207,2],[263,2]]},"298":{"position":[[69,1],[141,1],[216,2],[264,3],[268,1]]},"300":{"position":[[69,1],[141,1],[175,1],[235,3],[278,2],[355,3],[359,1]]},"302":{"position":[[278,1],[335,2],[368,1],[397,2],[470,1],[548,1],[582,1],[642,3],[659,1],[693,2],[696,1],[714,1],[759,2],[879,1],[906,1],[908,2],[911,3],[1003,3],[1007,1]]}}}],["0",{"_index":399,"t":{"56":{"position":[[809,1]]},"87":{"position":[[709,2],[779,2],[829,2],[893,2],[965,2],[1217,2],[1443,1],[1479,2],[1550,2],[1585,1],[1616,2],[1683,2]]},"255":{"position":[[118,1]]},"272":{"position":[[345,3],[371,3],[396,2]]},"288":{"position":[[334,3]]}}}],["0.31.0",{"_index":1558,"t":{"292":{"position":[[209,6]]}}}],["0.38",{"_index":1407,"t":{"243":{"position":[[43,5]]}}}],["0.42.2",{"_index":1386,"t":{"235":{"position":[[554,6]]}}}],["0.53.0",{"_index":1349,"t":{"219":{"position":[[531,9]]}}}],["0.6.x",{"_index":1559,"t":{"294":{"position":[[16,6]]}}}],["0.xx",{"_index":1341,"t":{"219":{"position":[[337,4]]}}}],["007cbf",{"_index":1026,"t":{"156":{"position":[[524,9]]},"166":{"position":[[564,9],[1307,9]]}}}],["1",{"_index":1246,"t":{"192":{"position":[[2052,2]]}}}],["1.0.0",{"_index":1351,"t":{"219":{"position":[[558,9]]}}}],["10",{"_index":1025,"t":{"156":{"position":[[504,3]]},"166":{"position":[[544,3],[1287,3]]}}}],["100",{"_index":202,"t":{"8":{"position":[[297,4],[664,4]]},"17":{"position":[[293,4],[557,4]]},"40":{"position":[[295,4],[561,4]]},"53":{"position":[[273,4],[372,4],[597,4],[732,4]]},"66":{"position":[[362,4],[476,4],[816,4],[966,4]]},"83":{"position":[[91,7],[107,7]]},"99":{"position":[[295,4],[561,4]]},"114":{"position":[[285,4],[541,4]]},"117":{"position":[[27,3]]},"298":{"position":[[187,4]]},"300":{"position":[[206,4]]},"302":{"position":[[613,4]]}}}],["12",{"_index":1100,"t":{"173":{"position":[[36,2]]}}}],["122.4",{"_index":288,"t":{"30":{"position":[[480,6],[975,6]]},"62":{"position":[[563,6],[1140,6]]},"75":{"position":[[451,6],[848,6]]},"79":{"position":[[321,6],[587,6]]},"108":{"position":[[399,6]]},"156":{"position":[[395,6]]},"166":{"position":[[435,6],[669,6],[1178,6],[1383,6]]},"175":{"position":[[193,6],[529,6]]},"181":{"position":[[316,6],[611,6],[1127,6],[1534,6]]}}}],["122.45",{"_index":1027,"t":{"156":{"position":[[602,7]]}}}],["14",{"_index":290,"t":{"30":{"position":[[509,2],[1004,2]]},"79":{"position":[[350,2],[616,2]]},"108":{"position":[[428,2]]},"156":{"position":[[633,2]]},"166":{"position":[[698,2],[1412,2]]},"175":{"position":[[222,2],[558,2]]},"221":{"position":[[18,3]]}}}],["140",{"_index":1437,"t":{"253":{"position":[[186,6]]}}}],["15.4",{"_index":1557,"t":{"292":{"position":[[171,4]]}}}],["15.4.x",{"_index":1402,"t":{"239":{"position":[[249,9]]}}}],["16",{"_index":740,"t":{"93":{"position":[[1401,2]]},"205":{"position":[[18,3]]},"227":{"position":[[177,2]]},"239":{"position":[[138,2],[187,3]]}}}],["16.3",{"_index":1101,"t":{"173":{"position":[[52,5]]},"227":{"position":[[197,4]]}}}],["17",{"_index":1433,"t":{"251":{"position":[[10,3]]}}}],["19",{"_index":1397,"t":{"237":{"position":[[22,3]]}}}],["1:1",{"_index":158,"t":{"6":{"position":[[190,3]]},"199":{"position":[[468,3]]}}}],["2",{"_index":29,"t":{"2":{"position":[[451,1]]},"93":{"position":[[2948,1]]}}}],["20",{"_index":1435,"t":{"253":{"position":[[96,2]]},"288":{"position":[[322,3]]}}}],["2017",{"_index":1398,"t":{"237":{"position":[[26,4]]},"241":{"position":[[25,4]]},"251":{"position":[[14,4]]}}}],["2018",{"_index":1359,"t":{"225":{"position":[[21,4]]},"229":{"position":[[20,4]]},"233":{"position":[[24,4]]}}}],["2019",{"_index":1327,"t":{"213":{"position":[[22,4]]},"217":{"position":[[22,4]]},"219":{"position":[[301,4]]},"221":{"position":[[22,4]]}}}],["2020",{"_index":1298,"t":{"201":{"position":[[22,4]]},"205":{"position":[[22,4]]},"209":{"position":[[21,4]]}}}],["2022",{"_index":1267,"t":{"199":{"position":[[21,4]]}}}],["2023",{"_index":1257,"t":{"197":{"position":[[22,4]]}}}],["219k",{"_index":1284,"t":{"199":{"position":[[366,4]]}}}],["22",{"_index":564,"t":{"87":{"position":[[1513,2]]}}}],["24",{"_index":563,"t":{"87":{"position":[[1482,4],[1553,4]]}}}],["240px",{"_index":459,"t":{"69":{"position":[[830,5]]}}}],["27",{"_index":1297,"t":{"201":{"position":[[18,3]]}}}],["27th",{"_index":1405,"t":{"241":{"position":[[19,5]]}}}],["3.5",{"_index":206,"t":{"8":{"position":[[322,3],[689,3]]},"17":{"position":[[318,3],[582,3]]},"40":{"position":[[320,3],[586,3]]},"53":{"position":[[298,3],[622,3]]},"66":{"position":[[387,3],[841,3]]},"99":{"position":[[320,3],[586,3]]},"114":{"position":[[310,3],[566,3]]},"298":{"position":[[212,3]]},"300":{"position":[[231,3]]},"302":{"position":[[638,3]]}}}],["30",{"_index":1256,"t":{"197":{"position":[[19,2]]},"213":{"position":[[18,3]]}}}],["31",{"_index":1331,"t":{"217":{"position":[[18,3]]}}}],["37.78",{"_index":1028,"t":{"156":{"position":[[620,6]]}}}],["37.8",{"_index":289,"t":{"30":{"position":[[497,5],[992,5]]},"79":{"position":[[338,5],[604,5]]},"108":{"position":[[416,5]]},"156":{"position":[[402,7]]},"166":{"position":[[442,7],[686,5],[1185,7],[1400,5]]},"175":{"position":[[210,5],[546,5]]},"181":{"position":[[323,8],[618,8],[1134,8],[1541,8]]}}}],["3d",{"_index":1050,"t":{"160":{"position":[[416,2],[495,2]]},"227":{"position":[[513,2]]}}}],["4",{"_index":1266,"t":{"199":{"position":[[18,2]]}}}],["4.1",{"_index":1333,"t":{"219":{"position":[[55,3]]}}}],["4.1.x",{"_index":1338,"t":{"219":{"position":[[210,5]]}}}],["40",{"_index":204,"t":{"8":{"position":[[312,3],[679,3]]},"17":{"position":[[308,3],[572,3]]},"40":{"position":[[310,3],[576,3]]},"53":{"position":[[288,3],[612,3]]},"66":{"position":[[377,3],[831,3]]},"99":{"position":[[310,3],[576,3]]},"114":{"position":[[300,3],[556,3]]},"288":{"position":[[339,4]]},"298":{"position":[[202,3]]},"300":{"position":[[221,3]]},"302":{"position":[[628,3]]}}}],["40.7",{"_index":1139,"t":{"181":{"position":[[1171,8],[1578,8]]}}}],["40.7467898",{"_index":1588,"t":{"302":{"position":[[498,12]]}}}],["40.7661",{"_index":1540,"t":{"288":{"position":[[280,9]]}}}],["400",{"_index":482,"t":{"79":{"position":[[384,5],[650,5]]},"175":{"position":[[256,5],[592,5]]},"288":{"position":[[227,6]]}}}],["41.268014439447484",{"_index":1544,"t":{"288":{"position":[[438,19]]}}}],["41.7661",{"_index":1542,"t":{"288":{"position":[[301,10]]}}}],["4e3fc8",{"_index":287,"t":{"30":{"position":[[362,9],[899,9]]}}}],["5",{"_index":1358,"t":{"225":{"position":[[18,2]]},"302":{"position":[[412,1],[511,2]]}}}],["5.0",{"_index":1332,"t":{"219":{"position":[[28,3]]}}}],["5.0.x",{"_index":1337,"t":{"219":{"position":[[200,5]]}}}],["57k",{"_index":1285,"t":{"199":{"position":[[374,3]]}}}],["6",{"_index":1322,"t":{"209":{"position":[[18,2]]}}}],["6.0",{"_index":1316,"t":{"207":{"position":[[4,3]]}}}],["60",{"_index":567,"t":{"87":{"position":[[1651,2]]},"274":{"position":[[122,3]]}}}],["600",{"_index":480,"t":{"79":{"position":[[371,4],[637,4]]},"175":{"position":[[243,4],[579,4]]},"288":{"position":[[214,4]]}}}],["7",{"_index":1364,"t":{"227":{"position":[[233,1],[265,2]]}}}],["7.209231188444142",{"_index":1545,"t":{"288":{"position":[[464,18]]}}}],["72.9876",{"_index":1541,"t":{"288":{"position":[[292,8]]}}}],["73.48760000000007",{"_index":1543,"t":{"288":{"position":[[409,18]]}}}],["73.9876",{"_index":1539,"t":{"288":{"position":[[271,8]]}}}],["74",{"_index":1138,"t":{"181":{"position":[[1167,3],[1574,3]]}}}],["74.0122106",{"_index":1587,"t":{"302":{"position":[[486,11]]}}}],["8",{"_index":949,"t":{"139":{"position":[[115,4]]}}}],["8.9.18",{"_index":1457,"t":{"260":{"position":[[1383,9]]}}}],["85",{"_index":556,"t":{"87":{"position":[[1220,4],[1619,4],[1686,4]]},"274":{"position":[[114,2]]}}}],["__super_secret_token__",{"_index":1186,"t":{"188":{"position":[[1898,23]]}}}],["_mapcontext",{"_index":1496,"t":{"272":{"position":[[52,11]]}}}],["abov",{"_index":715,"t":{"93":{"position":[[92,6]]},"162":{"position":[[259,5]]},"164":{"position":[[207,6]]}}}],["abus",{"_index":1150,"t":{"188":{"position":[[285,7]]}}}],["accept",{"_index":42,"t":{"2":{"position":[[764,9]]}}}],["access",{"_index":199,"t":{"8":{"position":[[250,6]]},"17":{"position":[[246,6]]},"26":{"position":[[51,10]]},"30":{"position":[[433,6]]},"40":{"position":[[248,6]]},"49":{"position":[[166,6]]},"53":{"position":[[226,6]]},"62":{"position":[[41,10]]},"66":{"position":[[315,6]]},"75":{"position":[[40,10]]},"79":{"position":[[274,6]]},"93":{"position":[[1207,6]]},"95":{"position":[[23,10],[1201,6]]},"99":{"position":[[248,6]]},"114":{"position":[[238,6]]},"151":{"position":[[64,6]]},"162":{"position":[[285,6],[310,6],[465,6]]},"175":{"position":[[146,6]]},"274":{"position":[[15,6]]}}}],["access_token=token",{"_index":1072,"t":{"162":{"position":[[1137,19]]}}}],["accommod",{"_index":1258,"t":{"197":{"position":[[37,11]]}}}],["accord",{"_index":855,"t":{"127":{"position":[[387,9],[487,9],[602,9],[698,9],[800,9],[906,9],[1002,9],[1102,9],[1202,9],[1296,9],[1403,9],[1506,9],[1609,9],[1714,9],[1816,9],[1925,9]]}}}],["account",{"_index":1320,"t":{"207":{"position":[[180,7]]}}}],["accpt",{"_index":579,"t":{"89":{"position":[[502,5],[814,5],[1012,5],[1226,5]]}}}],["achiev",{"_index":180,"t":{"6":{"position":[[623,8]]}}}],["activ",{"_index":252,"t":{"22":{"position":[[517,6]]},"26":{"position":[[408,8],[853,8]]},"137":{"position":[[86,8]]},"139":{"position":[[25,6]]}}}],["actual",{"_index":682,"t":{"91":{"position":[[5060,8],[6085,8],[6767,8],[7446,8]]}}}],["ad",{"_index":328,"t":{"36":{"position":[[250,5]]},"110":{"position":[[871,5]]},"143":{"position":[[241,5],[307,5]]},"190":{"position":[[1147,5]]},"203":{"position":[[319,5],[520,5]]},"215":{"position":[[43,5]]},"223":{"position":[[62,5]]},"243":{"position":[[291,5]]}}}],["add",{"_index":452,"t":{"69":{"position":[[437,3]]},"110":{"position":[[603,4]]},"177":{"position":[[182,3]]},"188":{"position":[[572,3],[1081,3]]},"197":{"position":[[110,4]]},"215":{"position":[[211,3]]},"253":{"position":[[63,3],[117,3],[161,3]]},"264":{"position":[[0,3]]}}}],["add/remov",{"_index":304,"t":{"34":{"position":[[73,10]]},"168":{"position":[[320,10]]}}}],["added/modifi",{"_index":966,"t":{"143":{"position":[[129,15],[450,15]]}}}],["addit",{"_index":637,"t":{"91":{"position":[[931,10],[1210,10],[2099,10],[2745,10],[3077,10],[3388,10],[3738,10],[3994,10],[4252,10],[4514,10]]},"245":{"position":[[120,10]]},"294":{"position":[[448,10]]}}}],["address",{"_index":1270,"t":{"199":{"position":[[70,9]]},"266":{"position":[[381,7]]}}}],["adher",{"_index":1016,"t":{"153":{"position":[[25,6]]}}}],["adjust",{"_index":1036,"t":{"158":{"position":[[140,6]]}}}],["advantag",{"_index":1458,"t":{"262":{"position":[[243,10]]}}}],["affect",{"_index":605,"t":{"89":{"position":[[1827,8]]},"141":{"position":[[168,8]]},"143":{"position":[[523,9]]}}}],["afterward",{"_index":1569,"t":{"296":{"position":[[198,11]]}}}],["again",{"_index":749,"t":{"93":{"position":[[1678,6]]},"190":{"position":[[117,5],[698,6]]}}}],["against",{"_index":961,"t":{"141":{"position":[[116,7]]}}}],["agnost",{"_index":406,"t":{"56":{"position":[[1174,8]]}}}],["alber",{"_index":508,"t":{"85":{"position":[[570,6],[577,11],[825,6]]}}}],["alia",{"_index":1462,"t":{"264":{"position":[[221,5]]}}}],["align",{"_index":150,"t":{"6":{"position":[[52,5]]},"56":{"position":[[455,6],[507,6],[1018,6],[1119,6]]},"158":{"position":[[220,7]]},"270":{"position":[[118,7]]}}}],["allow",{"_index":275,"t":{"30":{"position":[[15,6]]},"85":{"position":[[899,5]]},"93":{"position":[[3245,7]]},"164":{"position":[[174,7]]},"166":{"position":[[15,6]]},"181":{"position":[[16,6]]},"188":{"position":[[1034,6]]},"219":{"position":[[578,5]]},"239":{"position":[[78,5]]},"243":{"position":[[709,5]]}}}],["alon",{"_index":1418,"t":{"243":{"position":[[861,5]]}}}],["along",{"_index":714,"t":{"93":{"position":[[21,5]]},"227":{"position":[[456,5]]}}}],["alongsid",{"_index":1346,"t":{"219":{"position":[[423,9]]}}}],["altern",{"_index":1105,"t":{"175":{"position":[[343,12]]},"188":{"position":[[1842,14]]},"231":{"position":[[182,11]]}}}],["alway",{"_index":127,"t":{"4":{"position":[[1148,6]]},"158":{"position":[[213,6]]},"274":{"position":[[31,6]]}}}],["amount",{"_index":1491,"t":{"270":{"position":[[224,6]]}}}],["analyt",{"_index":67,"t":{"4":{"position":[[145,9]]}}}],["anchor",{"_index":376,"t":{"56":{"position":[[155,6],[222,6]]},"60":{"position":[[172,6]]},"69":{"position":[[0,7],[269,6],[747,6]]}}}],["anchor=\"bottom",{"_index":364,"t":{"53":{"position":[[391,15],[751,15]]},"66":{"position":[[495,15],[985,15]]}}}],["angl",{"_index":400,"t":{"56":{"position":[[824,5]]}}}],["anim",{"_index":627,"t":{"91":{"position":[[533,10],[4806,8],[5824,8],[6495,8],[7182,8]]},"156":{"position":[[922,9]]},"192":{"position":[[877,9]]}}}],["anoth",{"_index":674,"t":{"91":{"position":[[4722,8],[4843,8],[5312,8],[5740,8],[5867,8],[6268,8],[6409,8],[6546,8],[6963,8],[7097,8],[7227,8],[7633,8]]},"164":{"position":[[79,7]]},"249":{"position":[[39,7]]}}}],["anywher",{"_index":603,"t":{"89":{"position":[[1727,8]]}}}],["api",{"_index":78,"t":{"4":{"position":[[309,4]]},"6":{"position":[[62,3],[219,3]]},"22":{"position":[[77,3],[195,3],[324,3]]},"93":{"position":[[1299,3]]},"143":{"position":[[120,4],[441,4]]},"197":{"position":[[53,3]]},"199":{"position":[[540,4]]},"203":{"position":[[424,4]]},"215":{"position":[[102,4]]},"223":{"position":[[121,4]]},"243":{"position":[[350,4]]},"255":{"position":[[76,3]]},"262":{"position":[[135,4]]},"266":{"position":[[475,3]]},"272":{"position":[[30,4]]},"292":{"position":[[6,3]]}}}],["app",{"_index":196,"t":{"8":{"position":[[203,5],[612,5]]},"17":{"position":[[199,5],[505,5]]},"26":{"position":[[320,5],[763,5]]},"30":{"position":[[22,4],[386,5],[923,5]]},"40":{"position":[[201,5],[509,5]]},"53":{"position":[[179,5],[545,5]]},"62":{"position":[[306,5],[879,5]]},"66":{"position":[[209,5],[705,5]]},"75":{"position":[[293,5],[688,5]]},"79":{"position":[[225,5],[533,5]]},"93":{"position":[[671,5],[838,5],[1115,5]]},"95":{"position":[[244,5],[615,5]]},"99":{"position":[[201,5],[509,5]]},"108":{"position":[[316,5]]},"114":{"position":[[191,5],[489,5]]},"156":{"position":[[548,5]]},"162":{"position":[[886,4],[1105,4]]},"166":{"position":[[22,4],[588,5],[1331,5]]},"175":{"position":[[97,5],[475,5]]},"177":{"position":[[673,3]]},"179":{"position":[[238,5]]},"188":{"position":[[134,4],[626,3]]},"190":{"position":[[36,4]]},"260":{"position":[[361,5],[615,5]]},"268":{"position":[[400,4]]},"294":{"position":[[816,3]]},"298":{"position":[[21,3],[135,5]]},"300":{"position":[[21,3],[135,5]]},"302":{"position":[[542,5]]}}}],["app.tsx",{"_index":478,"t":{"79":{"position":[[144,7],[443,7]]},"93":{"position":[[1034,7]]},"175":{"position":[[16,7],[385,7]]},"177":{"position":[[750,7],[797,7]]},"179":{"position":[[85,7]]}}}],["append",{"_index":324,"t":{"36":{"position":[[118,8]]}}}],["appli",{"_index":220,"t":{"11":{"position":[[46,7]]},"20":{"position":[[46,7]]},"43":{"position":[[46,7]]},"56":{"position":[[318,5],[1279,7]]},"69":{"position":[[547,7],[948,7]]},"102":{"position":[[46,7]]},"117":{"position":[[128,7]]}}}],["applic",{"_index":72,"t":{"4":{"position":[[226,13]]},"49":{"position":[[271,11]]},"91":{"position":[[5086,11],[6111,11],[6793,11],[7472,11]]},"93":{"position":[[1946,11]]},"188":{"position":[[50,11]]},"192":{"position":[[8,11],[1474,11]]},"235":{"position":[[393,12]]},"266":{"position":[[651,12]]},"270":{"position":[[352,11]]},"278":{"position":[[255,12]]},"284":{"position":[[376,11]]},"286":{"position":[[413,12]]},"294":{"position":[[741,13]]},"296":{"position":[[51,11],[285,11],[448,11],[530,11]]},"300":{"position":[[374,11]]}}}],["application'",{"_index":1469,"t":{"266":{"position":[[394,13]]},"278":{"position":[[321,13]]}}}],["approach",{"_index":1461,"t":{"262":{"position":[[528,8]]}}}],["appropri",{"_index":1289,"t":{"199":{"position":[[505,12]]}}}],["approv",{"_index":960,"t":{"141":{"position":[[69,9]]}}}],["arab",{"_index":769,"t":{"93":{"position":[[2478,6]]}}}],["architectur",{"_index":1276,"t":{"199":{"position":[[137,12]]},"243":{"position":[[963,12]]}}}],["argument",{"_index":1482,"t":{"268":{"position":[[1005,8]]}}}],["around",{"_index":560,"t":{"87":{"position":[[1396,6]]},"235":{"position":[[449,6]]},"245":{"position":[[309,6]]}}}],["array",{"_index":326,"t":{"36":{"position":[[152,6]]},"89":{"position":[[1600,5]]},"131":{"position":[[66,5],[271,5],[324,5],[435,5]]}}}],["asid",{"_index":483,"t":{"81":{"position":[[0,5]]}}}],["assign",{"_index":142,"t":{"4":{"position":[[1458,9]]},"34":{"position":[[274,9]]},"168":{"position":[[523,9]]}}}],["associ",{"_index":747,"t":{"93":{"position":[[1596,10]]},"95":{"position":[[1303,10]]}}}],["attach",{"_index":395,"t":{"56":{"position":[[689,6]]},"143":{"position":[[542,9]]}}}],["attempt",{"_index":534,"t":{"85":{"position":[[1286,10]]},"168":{"position":[[165,7]]},"203":{"position":[[466,9]]}}}],["attribut",{"_index":211,"t":{"8":{"position":[[397,11],[800,11]]},"15":{"position":[[0,11]]}}}],["attributioncontrol",{"_index":191,"t":{"8":{"position":[[46,18],[152,20],[438,19],[552,20],[841,19]]},"13":{"position":[[130,18]]},"203":{"position":[[384,18]]}}}],["attributioncontrol={fals",{"_index":212,"t":{"8":{"position":[[409,26],[812,26]]}}}],["authent",{"_index":1087,"t":{"164":{"position":[[1025,15]]}}}],["author",{"_index":1091,"t":{"164":{"position":[[1295,16]]}}}],["auto",{"_index":389,"t":{"56":{"position":[[427,7],[444,6],[555,4],[990,7],[1007,6],[1201,4]]},"83":{"position":[[159,6]]},"211":{"position":[[105,4]]},"215":{"position":[[161,6]]},"272":{"position":[[126,4]]}}}],["automat",{"_index":391,"t":{"56":{"position":[[560,13]]},"188":{"position":[[1723,13]]},"286":{"position":[[545,13]]},"296":{"position":[[151,13]]}}}],["avail",{"_index":507,"t":{"85":{"position":[[544,9]]},"110":{"position":[[632,10]]}}}],["avoid",{"_index":297,"t":{"32":{"position":[[184,5]]},"93":{"position":[[2049,5]]},"168":{"position":[[234,5]]},"211":{"position":[[282,5]]},"280":{"position":[[149,8]]}}}],["away",{"_index":555,"t":{"87":{"position":[[1183,4]]}}}],["babel",{"_index":1363,"t":{"227":{"position":[[227,5],[259,5]]}}}],["back",{"_index":1210,"t":{"190":{"position":[[1153,5]]},"294":{"position":[[657,4],[863,4]]}}}],["background",{"_index":255,"t":{"22":{"position":[[639,10]]},"127":{"position":[[370,10]]},"292":{"position":[[187,11]]}}}],["backgroundlay",{"_index":854,"t":{"127":{"position":[[324,16]]}}}],["bad",{"_index":1524,"t":{"284":{"position":[[538,4]]}}}],["base",{"_index":189,"t":{"8":{"position":[[31,4]]},"17":{"position":[[31,4]]},"40":{"position":[[31,4]]},"53":{"position":[[31,4]]},"66":{"position":[[31,4]]},"79":{"position":[[31,4]]},"81":{"position":[[194,4],[290,4]]},"85":{"position":[[1304,5]]},"93":{"position":[[422,4]]},"99":{"position":[[31,4]]},"114":{"position":[[31,4]]},"135":{"position":[[1015,5]]},"141":{"position":[[32,4]]},"160":{"position":[[522,5]]},"164":{"position":[[1019,5]]},"177":{"position":[[4,4]]},"199":{"position":[[773,4]]},"260":{"position":[[997,4]]}}}],["baseapiurl",{"_index":736,"t":{"93":{"position":[[1261,11]]},"268":{"position":[[143,10]]}}}],["basemap",{"_index":25,"t":{"2":{"position":[[348,8],[580,9],[778,9]]}}}],["basi",{"_index":1495,"t":{"270":{"position":[[491,6]]}}}],["basic",{"_index":1580,"t":{"302":{"position":[[26,5]]}}}],["be",{"_index":542,"t":{"87":{"position":[[194,5]]},"141":{"position":[[162,5]]},"188":{"position":[[279,5]]},"239":{"position":[[163,5]]},"294":{"position":[[597,5]]}}}],["bear",{"_index":405,"t":{"56":{"position":[[1082,7]]},"87":{"position":[[896,8],[926,7],[1225,8],[1254,7]]},"91":{"position":[[6387,7],[6524,7],[6817,7],[6941,7]]},"131":{"position":[[920,8],[942,7]]},"231":{"position":[[106,7]]},"255":{"position":[[32,7]]},"294":{"position":[[501,7]]}}}],["bearer",{"_index":1092,"t":{"164":{"position":[[1312,7]]}}}],["becom",{"_index":1009,"t":{"151":{"position":[[169,8]]},"192":{"position":[[999,6]]}}}],["befor",{"_index":322,"t":{"36":{"position":[[67,7]]},"91":{"position":[[394,6],[4670,6],[5682,6],[6343,6],[7037,6]]}}}],["beforeid",{"_index":319,"t":{"36":{"position":[[0,9],[423,8]]}}}],["begin",{"_index":673,"t":{"91":{"position":[[4685,6],[5697,6],[6358,6],[7052,6]]}}}],["behav",{"_index":1287,"t":{"199":{"position":[[405,6]]},"262":{"position":[[99,6]]},"268":{"position":[[1141,6]]},"270":{"position":[[270,6]]}}}],["behavior",{"_index":146,"t":{"4":{"position":[[1494,8]]},"6":{"position":[[730,10]]},"36":{"position":[[447,9]]},"93":{"position":[[1914,8],[3311,9]]},"95":{"position":[[1176,10]]},"143":{"position":[[488,9]]},"235":{"position":[[250,9]]},"272":{"position":[[240,8]]},"284":{"position":[[525,9]]}}}],["belong",{"_index":713,"t":{"91":{"position":[[8407,9]]}}}],["below",{"_index":485,"t":{"81":{"position":[[28,6]]},"162":{"position":[[598,5]]},"188":{"position":[[236,5]]},"284":{"position":[[564,5],[708,5]]},"290":{"position":[[65,6]]}}}],["better",{"_index":149,"t":{"6":{"position":[[45,6]]},"197":{"position":[[30,6]]},"215":{"position":[[60,6]]},"223":{"position":[[79,6]]},"227":{"position":[[268,6]]},"235":{"position":[[145,6]]},"243":{"position":[[308,6]]},"268":{"position":[[32,6]]}}}],["between",{"_index":1260,"t":{"197":{"position":[[68,7]]},"219":{"position":[[16,7]]}}}],["bewar",{"_index":488,"t":{"81":{"position":[[127,6]]}}}],["big",{"_index":1048,"t":{"160":{"position":[[382,3]]}}}],["bill",{"_index":1207,"t":{"190":{"position":[[827,6]]},"219":{"position":[[159,5]]}}}],["billabl",{"_index":31,"t":{"2":{"position":[[513,8]]},"93":{"position":[[2064,8]]},"162":{"position":[[349,8]]},"190":{"position":[[739,8]]}}}],["bind",{"_index":810,"t":{"95":{"position":[[917,9]]},"199":{"position":[[623,8]]}}}],["blob",{"_index":800,"t":{"93":{"position":[[3284,4]]}}}],["block",{"_index":1400,"t":{"239":{"position":[[109,5]]}}}],["blog",{"_index":1344,"t":{"219":{"position":[[412,4]]}}}],["boolean",{"_index":371,"t":{"56":{"position":[[11,8]]},"85":{"position":[[1017,8],[1127,8]]},"89":{"position":[[9,8],[136,8],[279,8],[408,7],[600,8],[717,7],[916,7],[1119,7]]},"93":{"position":[[1496,8]]},"135":{"position":[[329,7],[537,7],[781,7],[1460,7]]}}}],["bootstrap",{"_index":954,"t":{"139":{"position":[[185,9]]}}}],["both",{"_index":98,"t":{"4":{"position":[[630,4]]},"227":{"position":[[20,4]]}}}],["bottom",{"_index":233,"t":{"13":{"position":[[267,7],[284,7],[308,7]]},"24":{"position":[[326,7],[343,7],[367,7]]},"45":{"position":[[279,7],[296,7]]},"69":{"position":[[46,8],[84,7],[100,7],[373,9]]},"104":{"position":[[276,7],[293,7]]},"110":{"position":[[1057,7],[1073,7]]},"119":{"position":[[138,7],[155,7]]},"129":{"position":[[49,7],[68,7],[214,7]]}}}],["bound",{"_index":544,"t":{"87":{"position":[[270,7],[309,6],[469,6],[1778,7]]},"91":{"position":[[7945,8]]},"194":{"position":[[231,6]]},"288":{"position":[[240,5],[353,7]]}}}],["bounds.contains([lng",{"_index":1253,"t":{"194":{"position":[[275,21]]}}}],["box",{"_index":570,"t":{"89":{"position":[[45,4]]},"91":{"position":[[7706,4],[7799,4],[7909,4],[7954,3]]}}}],["boxzoom",{"_index":569,"t":{"89":{"position":[[0,8]]}}}],["boxzoombound",{"_index":921,"t":{"135":{"position":[[1176,14]]}}}],["boxzoomhandl",{"_index":571,"t":{"89":{"position":[[84,14]]}}}],["branch",{"_index":946,"t":{"139":{"position":[[11,6],[44,7]]},"141":{"position":[[135,7]]}}}],["break",{"_index":809,"t":{"95":{"position":[[898,8]]},"143":{"position":[[199,8]]},"199":{"position":[[604,8]]},"207":{"position":[[346,8]]},"227":{"position":[[1178,8]]},"274":{"position":[[152,8]]},"280":{"position":[[119,8]]}}}],["browser",{"_index":956,"t":{"139":{"position":[[262,7],[324,7]]},"235":{"position":[[507,7]]}}}],["bug",{"_index":941,"t":{"137":{"position":[[50,3]]}}}],["build",{"_index":62,"t":{"4":{"position":[[101,5]]},"85":{"position":[[1252,8]]},"139":{"position":[[52,8]]},"199":{"position":[[339,5]]},"227":{"position":[[243,5]]},"274":{"position":[[175,5],[244,5]]},"282":{"position":[[33,8]]},"302":{"position":[[446,8]]}}}],["bump",{"_index":1406,"t":{"243":{"position":[[21,5]]},"253":{"position":[[18,4]]}}}],["bundl",{"_index":723,"t":{"93":{"position":[[555,8],[746,6],[910,7],[3095,6]]}}}],["bundler",{"_index":777,"t":{"93":{"position":[[2760,8]]},"188":{"position":[[1107,7]]}}}],["button",{"_index":428,"t":{"62":{"position":[[638,7],[1215,7]]},"71":{"position":[[170,6]]},"91":{"position":[[3243,6]]},"181":{"position":[[342,7],[637,7],[1190,7],[1597,7]]}}}],["bypass",{"_index":1209,"t":{"190":{"position":[[1092,8]]}}}],["call",{"_index":161,"t":{"6":{"position":[[254,4],[418,7],[557,7]]},"22":{"position":[[50,6],[168,6],[297,6],[469,6],[591,6]]},"26":{"position":[[102,4]]},"58":{"position":[[34,6],[117,6],[208,6],[296,6]]},"62":{"position":[[92,4]]},"71":{"position":[[35,6],[104,6]]},"75":{"position":[[91,4]]},"91":{"position":[[37,6],[110,6],[273,6],[357,6],[597,6],[714,6],[793,6],[1071,6],[1352,6],[1606,6],[1829,6],[2242,6],[2464,6],[2580,6],[2886,6],[3221,6],[3521,6],[3621,6],[3879,6],[4136,6],[4396,6],[4658,6],[4778,6],[5246,6],[5373,6],[5468,6],[5572,6],[5670,6],[5796,6],[6196,6],[6331,6],[6467,6],[6883,6],[7025,6],[7154,6],[7559,6],[7692,6],[7785,6],[7878,6],[8065,6],[8196,6],[8332,6]]},"93":{"position":[[2579,7]]},"95":{"position":[[885,4],[1057,7]]},"110":{"position":[[742,6],[838,6],[943,6]]},"158":{"position":[[110,7]]},"199":{"position":[[580,6]]},"227":{"position":[[692,6]]},"272":{"position":[[643,4],[749,4]]},"288":{"position":[[85,6]]}}}],["callback",{"_index":604,"t":{"89":{"position":[[1805,9]]},"223":{"position":[[130,8],[174,10]]},"227":{"position":[[131,8],[467,9],[975,8],[1019,10]]},"231":{"position":[[169,9],[194,8]]},"268":{"position":[[703,8],[1045,10]]},"284":{"position":[[241,8],[336,8]]},"296":{"position":[[373,8]]}}}],["camera",{"_index":99,"t":{"4":{"position":[[635,8],[711,7],[1406,6]]},"91":{"position":[[436,6],[4945,6],[5044,6],[5968,6],[6069,6],[6650,6],[6751,6],[7329,6],[7430,6]]},"135":{"position":[[989,6]]},"158":{"position":[[91,6]]},"192":{"position":[[44,6]]},"268":{"position":[[647,6]]},"296":{"position":[[91,7]]},"302":{"position":[[52,7],[147,7]]}}}],["cancel",{"_index":702,"t":{"91":{"position":[[7899,7]]}}}],["canva",{"_index":648,"t":{"91":{"position":[[1771,7],[2407,7],[2526,7]]},"127":{"position":[[2016,6]]},"133":{"position":[[409,7]]}}}],["canvasoverlay",{"_index":1412,"t":{"243":{"position":[[501,13]]},"255":{"position":[[284,14]]},"266":{"position":[[539,13]]},"294":{"position":[[85,14]]}}}],["canvassourc",{"_index":908,"t":{"133":{"position":[[351,13]]}}}],["canvassource(mapbox",{"_index":910,"t":{"133":{"position":[[421,19]]}}}],["canvassourceopt",{"_index":882,"t":{"127":{"position":[[2040,20]]},"168":{"position":[[96,20]]}}}],["canvassourceraw",{"_index":881,"t":{"127":{"position":[[1970,16]]}}}],["captur",{"_index":1488,"t":{"270":{"position":[[0,8]]}}}],["carrée/wgs84",{"_index":513,"t":{"85":{"position":[[639,12]]}}}],["case",{"_index":38,"t":{"2":{"position":[[708,5]]},"4":{"position":[[816,6]]},"160":{"position":[[68,6]]},"190":{"position":[[892,5]]},"262":{"position":[[601,4]]},"270":{"position":[[478,4],[486,4]]},"290":{"position":[[59,5]]}}}],["caus",{"_index":170,"t":{"6":{"position":[[455,5]]},"95":{"position":[[1089,5]]},"247":{"position":[[249,6]]}}}],["center",{"_index":383,"t":{"56":{"position":[[350,7]]},"69":{"position":[[8,8]]},"85":{"position":[[862,6]]},"87":{"position":[[693,7],[763,7],[1012,7],[1062,7]]},"131":{"position":[[773,7],[824,7]]},"302":{"position":[[237,6],[796,6]]}}}],["certain",{"_index":1064,"t":{"162":{"position":[[798,7]]},"235":{"position":[[524,7]]}}}],["chang",{"_index":251,"t":{"22":{"position":[[502,7],[624,7]]},"32":{"position":[[104,6]]},"34":{"position":[[58,7]]},"36":{"position":[[359,7]]},"85":{"position":[[1179,8]]},"91":{"position":[[2003,7],[5069,6],[5989,6],[6094,6],[6671,6],[6776,6],[7350,6],[7455,6],[8099,8],[8233,8],[8378,8],[8438,8]]},"95":{"position":[[1018,7]]},"135":{"position":[[1005,6]]},"141":{"position":[[13,6]]},"143":{"position":[[208,7]]},"158":{"position":[[98,8]]},"168":{"position":[[128,6],[309,7]]},"192":{"position":[[1457,8]]},"203":{"position":[[150,6]]},"207":{"position":[[82,7],[355,8]]},"211":{"position":[[306,7]]},"219":{"position":[[9,6]]},"227":{"position":[[1187,8]]},"260":{"position":[[94,6]]},"262":{"position":[[299,7]]},"268":{"position":[[298,7],[1017,7],[1245,6]]},"274":{"position":[[103,7],[161,6]]},"280":{"position":[[84,7],[128,7]]},"294":{"position":[[603,7],[838,7]]},"296":{"position":[[171,7]]}}}],["changelog",{"_index":1343,"t":{"219":{"position":[[398,9]]}}}],["charter",{"_index":995,"t":{"147":{"position":[[83,8]]}}}],["check",{"_index":1032,"t":{"156":{"position":[[796,5],[888,5]]},"194":{"position":[[93,8]]},"266":{"position":[[335,5],[457,5],[582,5]]},"268":{"position":[[1321,5]]},"284":{"position":[[480,5]]}}}],["checkifpositioninviewport",{"_index":1251,"t":{"194":{"position":[[181,25]]}}}],["checkout",{"_index":953,"t":{"139":{"position":[[164,8]]}}}],["chen",{"_index":1001,"t":{"151":{"position":[[7,4]]}}}],["child",{"_index":336,"t":{"36":{"position":[[583,5]]},"53":{"position":[[839,5]]},"91":{"position":[[1539,5]]},"243":{"position":[[535,5]]},"260":{"position":[[1320,5]]}}}],["children",{"_index":1094,"t":{"166":{"position":[[98,9]]},"286":{"position":[[443,8],[498,8]]}}}],["choroplethoverlay",{"_index":1424,"t":{"245":{"position":[[563,19]]},"286":{"position":[[94,18]]}}}],["chrome",{"_index":957,"t":{"139":{"position":[[279,6]]}}}],["circl",{"_index":857,"t":{"127":{"position":[[474,6]]},"156":{"position":[[468,9],[487,7],[508,7]]},"166":{"position":[[508,9],[527,7],[548,7],[1251,9],[1270,7],[1291,7]]},"302":{"position":[[402,6]]}}}],["circlelay",{"_index":856,"t":{"127":{"position":[[432,12]]},"156":{"position":[[177,13],[433,11]]},"166":{"position":[[217,13],[473,11],[951,13],[1216,11]]}}}],["class",{"_index":192,"t":{"8":{"position":[[65,5]]},"13":{"position":[[149,5]]},"17":{"position":[[63,5]]},"24":{"position":[[147,5]]},"30":{"position":[[321,8],[858,8]]},"40":{"position":[[64,5]]},"53":{"position":[[53,5]]},"56":{"position":[[660,5]]},"60":{"position":[[137,5]]},"66":{"position":[[52,5]]},"69":{"position":[[422,5]]},"73":{"position":[[136,5]]},"79":{"position":[[50,5]]},"81":{"position":[[88,5]]},"93":{"position":[[55,5],[2844,5]]},"99":{"position":[[64,5]]},"104":{"position":[[148,5]]},"114":{"position":[[59,5]]},"268":{"position":[[914,5]]},"296":{"position":[[262,6]]}}}],["classnam",{"_index":448,"t":{"69":{"position":[[383,10]]}}}],["clear",{"_index":1151,"t":{"188":{"position":[[320,5]]}}}],["click",{"_index":410,"t":{"58":{"position":[[60,7]]},"71":{"position":[[148,8]]},"89":{"position":[[180,5],[1436,5]]},"91":{"position":[[3266,7]]},"190":{"position":[[602,6],[658,5]]}}}],["clickabl",{"_index":1377,"t":{"227":{"position":[[960,10]]},"276":{"position":[[364,10]]}}}],["clicktoler",{"_index":415,"t":{"60":{"position":[[191,14]]}}}],["client",{"_index":1141,"t":{"188":{"position":[[43,6]]}}}],["clockwis",{"_index":402,"t":{"56":{"position":[[939,10]]},"87":{"position":[[1313,9]]}}}],["clone",{"_index":1573,"t":{"298":{"position":[[8,5]]},"300":{"position":[[8,5]]}}}],["close",{"_index":464,"t":{"71":{"position":[[129,6],[164,5]]}}}],["closebutton",{"_index":466,"t":{"73":{"position":[[171,11]]}}}],["closeonclick",{"_index":465,"t":{"71":{"position":[[192,13]]},"73":{"position":[[183,12]]}}}],["closeonmov",{"_index":467,"t":{"73":{"position":[[196,11]]}}}],["closest",{"_index":442,"t":{"69":{"position":[[196,7]]},"183":{"position":[[119,7]]}}}],["cloud",{"_index":1049,"t":{"160":{"position":[[408,7]]}}}],["cluster",{"_index":1325,"t":{"211":{"position":[[327,8]]}}}],["code",{"_index":799,"t":{"93":{"position":[[3272,4]]},"135":{"position":[[2190,5]]},"141":{"position":[[27,4]]},"143":{"position":[[40,4]]},"153":{"position":[[58,4]]},"188":{"position":[[825,4]]},"199":{"position":[[768,4]]},"245":{"position":[[239,4],[466,4]]},"260":{"position":[[1196,4]]},"262":{"position":[[315,4]]},"270":{"position":[[241,4]]},"284":{"position":[[388,4],[498,4]]}}}],["codepen",{"_index":1164,"t":{"188":{"position":[[845,7]]}}}],["collaps",{"_index":759,"t":{"93":{"position":[[2020,11]]},"190":{"position":[[843,10]]}}}],["color",{"_index":286,"t":{"30":{"position":[[354,7],[891,7]]},"60":{"position":[[179,5]]},"156":{"position":[[516,7]]},"166":{"position":[[556,7],[1299,7]]}}}],["color=\"r",{"_index":425,"t":{"62":{"position":[[586,11],[1163,11]]}}}],["command",{"_index":85,"t":{"4":{"position":[[426,7]]},"188":{"position":[[480,7]]}}}],["commit",{"_index":1004,"t":{"151":{"position":[[57,6]]},"188":{"position":[[299,6]]}}}],["committe",{"_index":998,"t":{"149":{"position":[[70,9]]}}}],["commun",{"_index":1081,"t":{"164":{"position":[[469,9]]}}}],["compact",{"_index":226,"t":{"13":{"position":[[184,7]]}}}],["compat",{"_index":11,"t":{"2":{"position":[[107,10]]},"199":{"position":[[632,14]]},"262":{"position":[[195,13]]},"264":{"position":[[20,10]]},"284":{"position":[[170,10]]},"292":{"position":[[10,10]]}}}],["complet",{"_index":612,"t":{"91":{"position":[[191,8],[549,9],[5272,9],[6222,9],[6909,9],[7585,9]]},"171":{"position":[[13,8]]},"199":{"position":[[34,8]]},"207":{"position":[[329,8]]},"262":{"position":[[8,8]]}}}],["complex",{"_index":71,"t":{"4":{"position":[[206,10]]},"190":{"position":[[16,7]]}}}],["compli",{"_index":1502,"t":{"272":{"position":[[571,6]]}}}],["compliant",{"_index":1293,"t":{"199":{"position":[[753,10]]}}}],["complic",{"_index":1238,"t":{"192":{"position":[[1501,11]]},"300":{"position":[[403,11]]},"302":{"position":[[112,11]]}}}],["compon",{"_index":8,"t":{"2":{"position":[[79,10]]},"4":{"position":[[88,9],[489,10],[840,10],[977,9],[1253,10],[1352,9]]},"8":{"position":[[6,9]]},"13":{"position":[[77,9]]},"17":{"position":[[6,9]]},"24":{"position":[[77,9]]},"30":{"position":[[5,9]]},"32":{"position":[[27,9],[126,9]]},"36":{"position":[[601,10],[690,9],[773,10],[853,9],[880,9]]},"40":{"position":[[6,9]]},"45":{"position":[[77,9]]},"49":{"position":[[66,9],[109,9]]},"53":{"position":[[6,9],[845,11]]},"60":{"position":[[77,9]]},"66":{"position":[[6,9]]},"73":{"position":[[77,9]]},"79":{"position":[[6,9]]},"81":{"position":[[43,9]]},"87":{"position":[[224,10]]},"91":{"position":[[4885,10],[5909,10],[6588,10],[7269,10]]},"93":{"position":[[451,10],[1549,9],[1760,9],[1855,9],[2258,9]]},"95":{"position":[[1324,10]]},"99":{"position":[[6,9]]},"104":{"position":[[77,9]]},"114":{"position":[[6,9]]},"119":{"position":[[77,9]]},"125":{"position":[[126,10]]},"143":{"position":[[152,9]]},"156":{"position":[[72,11]]},"162":{"position":[[980,9]]},"164":{"position":[[30,9]]},"166":{"position":[[5,9],[84,10]]},"168":{"position":[[27,9],[150,9]]},"177":{"position":[[104,10]]},"181":{"position":[[32,9]]},"183":{"position":[[246,10]]},"190":{"position":[[85,9]]},"192":{"position":[[844,9]]},"197":{"position":[[188,10],[452,10]]},"199":{"position":[[394,10]]},"203":{"position":[[373,10],[620,10],[678,10]]},"211":{"position":[[4,11]]},"215":{"position":[[4,11]]},"223":{"position":[[4,11]]},"227":{"position":[[411,9],[529,9]]},"235":{"position":[[593,10]]},"243":{"position":[[146,11],[168,9],[372,11]]},"255":{"position":[[259,10]]},"260":{"position":[[157,10],[1305,9],[1340,9]]},"266":{"position":[[514,10]]},"268":{"position":[[572,9],[1171,10]]},"270":{"position":[[259,10]]},"272":{"position":[[454,10],[548,11]]},"284":{"position":[[8,10],[43,9],[68,11],[213,10]]},"286":{"position":[[532,9]]},"294":{"position":[[60,10],[682,9],[875,9]]},"296":{"position":[[141,9],[552,10]]},"302":{"position":[[186,10]]}}}],["component'",{"_index":1130,"t":{"181":{"position":[[785,11]]},"266":{"position":[[104,11]]}}}],["component(",{"_index":358,"t":{"49":{"position":[[319,12]]}}}],["compos",{"_index":1523,"t":{"284":{"position":[[398,8]]}}}],["comput",{"_index":991,"t":{"147":{"position":[[28,9]]}}}],["conduct",{"_index":1019,"t":{"153":{"position":[[66,7]]}}}],["config",{"_index":1171,"t":{"188":{"position":[[1115,7]]}}}],["configur",{"_index":523,"t":{"85":{"position":[[849,12]]},"156":{"position":[[781,14]]},"164":{"position":[[550,9]]},"298":{"position":[[25,13]]},"300":{"position":[[25,13]]}}}],["conform",{"_index":292,"t":{"32":{"position":[[47,10]]},"85":{"position":[[46,7],[192,7],[352,10],[1372,7]]},"127":{"position":[[20,10],[81,10],[141,10],[205,10],[274,10]]},"168":{"position":[[47,10]]}}}],["confus",{"_index":1431,"t":{"247":{"position":[[256,10]]}}}],["conic",{"_index":522,"t":{"85":{"position":[[799,5]]}}}],["consid",{"_index":982,"t":{"143":{"position":[[533,8]]},"160":{"position":[[83,8]]},"190":{"position":[[152,8]]},"192":{"position":[[165,8],[1542,8]]},"207":{"position":[[255,8]]}}}],["consist",{"_index":334,"t":{"36":{"position":[[436,10]]},"268":{"position":[[39,11]]}}}],["consol",{"_index":1547,"t":{"290":{"position":[[131,9]]}}}],["console.error(evt.error",{"_index":630,"t":{"91":{"position":[[689,24]]}}}],["const",{"_index":266,"t":{"26":{"position":[[328,5],[771,5]]},"30":{"position":[[196,5],[733,5]]},"62":{"position":[[314,5],[359,5],[445,5],[887,5],[934,5],[1022,5]]},"66":{"position":[[217,5],[713,5]]},"75":{"position":[[301,5],[696,5]]},"95":{"position":[[252,5],[285,5],[623,5],[656,5]]},"156":{"position":[[260,5],[415,5]]},"164":{"position":[[1149,5]]},"166":{"position":[[300,5],[455,5],[1043,5],[1198,5]]},"181":{"position":[[238,5],[271,5],[533,5],[566,5],[1044,5],[1079,5],[1451,5],[1486,5]]},"188":{"position":[[1160,5],[1442,5]]},"192":{"position":[[312,5],[374,5],[434,5],[466,5],[1068,5],[1652,5]]},"194":{"position":[[142,5],[175,5],[225,5]]},"272":{"position":[[300,5]]},"288":{"position":[[165,5],[234,5]]},"300":{"position":[[143,5]]},"302":{"position":[[455,5],[550,5],[646,5],[698,5]]}}}],["constant",{"_index":299,"t":{"32":{"position":[[199,8]]},"69":{"position":[[682,8]]}}}],["constrain",{"_index":568,"t":{"87":{"position":[[1753,11]]},"302":{"position":[[133,9]]}}}],["constraint",{"_index":171,"t":{"6":{"position":[[471,10]]},"260":{"position":[[957,11]]},"302":{"position":[[32,11]]}}}],["construct",{"_index":541,"t":{"87":{"position":[[132,12]]},"93":{"position":[[119,9],[253,12],[1707,12]]}}}],["constructor",{"_index":487,"t":{"81":{"position":[[94,11]]}}}],["contain",{"_index":103,"t":{"4":{"position":[[680,10]]},"11":{"position":[[71,10]]},"20":{"position":[[71,10]]},"43":{"position":[[71,10]]},"45":{"position":[[198,9]]},"56":{"position":[[1303,10]]},"69":{"position":[[341,9],[450,10],[971,10]]},"83":{"position":[[16,9],[119,9]]},"89":{"position":[[1586,10]]},"91":{"position":[[920,7],[962,8],[1199,7],[1241,8],[1466,10],[2088,7],[2130,8],[2734,7],[2776,8],[3066,7],[3108,8],[3377,7],[3419,8],[3727,7],[3769,8],[3983,7],[4025,8],[4241,7],[4283,8],[4503,7],[4545,8]]},"102":{"position":[[71,10]]},"117":{"position":[[153,10]]},"131":{"position":[[554,8]]},"133":{"position":[[138,10],[219,10],[296,10],[374,10],[481,10]]},"166":{"position":[[70,7]]},"181":{"position":[[68,8]]},"183":{"position":[[83,8],[282,8],[327,10]]},"294":{"position":[[440,7]]}}}],["containerid",{"_index":345,"t":{"45":{"position":[[101,12]]}}}],["content",{"_index":367,"t":{"53":{"position":[[866,7],[943,8]]},"93":{"position":[[3187,8]]},"133":{"position":[[389,8]]},"135":{"position":[[1529,9]]}}}],["context",{"_index":657,"t":{"91":{"position":[[3281,7]]},"227":{"position":[[202,7]]}}}],["context.provid",{"_index":351,"t":{"49":{"position":[[2,16]]}}}],["contextprovid",{"_index":1460,"t":{"262":{"position":[[471,16]]}}}],["continu",{"_index":1078,"t":{"164":{"position":[[276,8]]},"188":{"position":[[647,10]]},"219":{"position":[[221,8]]}}}],["contribut",{"_index":54,"t":{"2":{"position":[[961,11]]},"137":{"position":[[30,11]]},"153":{"position":[[79,12]]}}}],["control",{"_index":136,"t":{"4":{"position":[[1375,11]]},"13":{"position":[[340,7]]},"24":{"position":[[399,7]]},"26":{"position":[[432,7],[877,7]]},"45":{"position":[[349,7]]},"91":{"position":[[4874,10],[5898,10],[6577,10],[7258,10]]},"104":{"position":[[346,7]]},"108":{"position":[[68,9],[547,11]]},"110":{"position":[[778,8],[854,7],[959,7],[1090,7],[1151,7]]},"117":{"position":[[63,7]]},"119":{"position":[[208,7]]},"125":{"position":[[19,7]]},"188":{"position":[[359,8]]},"203":{"position":[[68,10],[562,8]]},"235":{"position":[[227,7]]},"239":{"position":[[84,8]]},"243":{"position":[[724,7]]},"245":{"position":[[194,7]]},"262":{"position":[[407,8]]},"266":{"position":[[630,8]]},"270":{"position":[[85,9]]},"272":{"position":[[211,11]]},"276":{"position":[[215,10]]},"296":{"position":[[269,11]]},"302":{"position":[[175,10]]}}}],["control'",{"_index":221,"t":{"11":{"position":[[61,9]]},"20":{"position":[[61,9]]},"43":{"position":[[61,9]]},"102":{"position":[[61,9]]},"117":{"position":[[143,9]]}}}],["control.t",{"_index":236,"t":{"15":{"position":[[12,10]]},"28":{"position":[[10,10]]},"47":{"position":[[11,10]]},"106":{"position":[[11,10]]},"112":{"position":[[4,10]]},"121":{"position":[[6,10]]}}}],["controller_opt",{"_index":1500,"t":{"272":{"position":[[306,15],[409,20]]}}}],["controlposit",{"_index":840,"t":{"110":{"position":[[112,16],[301,16],[540,16]]},"129":{"position":[[0,16]]}}}],["cooperativegestur",{"_index":1487,"t":{"268":{"position":[[1335,19]]}}}],["coord",{"_index":927,"t":{"135":{"position":[[1549,6],[1953,7]]}}}],["coordin",{"_index":443,"t":{"69":{"position":[[211,11]]},"131":{"position":[[484,11]]},"135":{"position":[[1556,10]]},"156":{"position":[[380,12]]},"166":{"position":[[420,12],[1163,12]]}}}],["copi",{"_index":529,"t":{"85":{"position":[[1058,6]]},"286":{"position":[[371,4]]}}}],["core",{"_index":145,"t":{"4":{"position":[[1489,4]]}}}],["correctli",{"_index":112,"t":{"4":{"position":[[866,10]]}}}],["correspond",{"_index":601,"t":{"89":{"position":[[1697,13]]}}}],["counter",{"_index":557,"t":{"87":{"position":[[1305,7]]}}}],["counterpart",{"_index":1288,"t":{"199":{"position":[[437,13]]},"270":{"position":[[147,13]]}}}],["cover",{"_index":964,"t":{"143":{"position":[[55,7]]}}}],["crash",{"_index":1385,"t":{"235":{"position":[[515,5]]},"274":{"position":[[220,5]]}}}],["creat",{"_index":47,"t":{"2":{"position":[[845,6]]},"4":{"position":[[23,7],[1296,7]]},"30":{"position":[[30,6]]},"108":{"position":[[31,6]]},"110":{"position":[[573,7],[752,6]]},"162":{"position":[[1092,6]]},"164":{"position":[[886,8]]},"166":{"position":[[30,6]]},"188":{"position":[[744,6]]},"235":{"position":[[411,6]]}}}],["creation",{"_index":1387,"t":{"235":{"position":[[608,9]]}}}],["csp",{"_index":793,"t":{"93":{"position":[[3183,3]]}}}],["css",{"_index":218,"t":{"11":{"position":[[22,3]]},"20":{"position":[[22,3]]},"43":{"position":[[22,3]]},"56":{"position":[[1255,3]]},"69":{"position":[[418,3],[859,3],[924,3]]},"83":{"position":[[129,4]]},"102":{"position":[[22,3]]},"117":{"position":[[104,3]]},"158":{"position":[[158,3]]},"177":{"position":[[686,3]]},"192":{"position":[[1529,3]]},"227":{"position":[[66,3]]}}}],["cssproperti",{"_index":217,"t":{"11":{"position":[[7,14]]},"20":{"position":[[7,14]]},"43":{"position":[[7,14]]},"56":{"position":[[1240,14]]},"69":{"position":[[909,14]]},"83":{"position":[[37,14]]},"102":{"position":[[7,14]]},"117":{"position":[[89,14]]}}}],["current",{"_index":495,"t":{"83":{"position":[[170,7]]},"85":{"position":[[1234,7]]},"91":{"position":[[475,9]]},"135":{"position":[[1990,7]]},"181":{"position":[[244,9],[539,9],[777,7]]},"183":{"position":[[10,10],[293,7]]},"194":{"position":[[63,9]]}}}],["cursor",{"_index":494,"t":{"83":{"position":[[134,7],[178,6]]},"91":{"position":[[990,6],[1269,6],[1441,6],[1896,6],[1938,6],[1996,6],[2158,6],[2804,6],[3136,6],[3447,6],[3797,6],[4053,6],[4311,6],[4573,6]]},"268":{"position":[[1193,7],[1209,6],[1252,6]]}}}],["custom",{"_index":823,"t":{"108":{"position":[[57,6]]},"125":{"position":[[12,6],[67,6]]},"158":{"position":[[20,6]]},"164":{"position":[[619,6],[735,6]]},"181":{"position":[[25,6]]},"203":{"position":[[79,15]]},"243":{"position":[[994,13]]},"266":{"position":[[295,6]]},"270":{"position":[[234,6]]}}}],["customattribut",{"_index":227,"t":{"13":{"position":[[192,17]]}}}],["customattribution=\"map",{"_index":213,"t":{"8":{"position":[[458,22],[861,22]]}}}],["customiz",{"_index":1305,"t":{"203":{"position":[[193,12]]}}}],["customlayerinterfac",{"_index":852,"t":{"125":{"position":[[43,21]]}}}],["customli",{"_index":1037,"t":{"158":{"position":[[185,8]]}}}],["data",{"_index":44,"t":{"2":{"position":[[805,4],[874,4]]},"4":{"position":[[172,4],[1143,4]]},"91":{"position":[[8085,4]]},"93":{"position":[[1225,4]]},"156":{"position":[[15,4],[655,5],[758,4],[863,4]]},"160":{"position":[[37,4],[203,4],[386,5],[477,5]]},"162":{"position":[[534,4]]},"166":{"position":[[766,5],[1516,5]]},"296":{"position":[[636,4]]}}}],["data={geojson",{"_index":1031,"t":{"156":{"position":[[676,15]]},"166":{"position":[[787,15],[1537,15]]}}}],["data={vehiclesgeojson",{"_index":1244,"t":{"192":{"position":[[1954,23]]}}}],["dataset",{"_index":1043,"t":{"160":{"position":[[306,9]]}}}],["datatyp",{"_index":922,"t":{"135":{"position":[[1305,9],[1425,9]]}}}],["date",{"_index":1254,"t":{"197":{"position":[[8,5]]},"199":{"position":[[8,5]]},"201":{"position":[[8,5]]},"205":{"position":[[8,5]]},"209":{"position":[[8,5]]},"213":{"position":[[8,5]]},"217":{"position":[[8,5]]},"221":{"position":[[8,5]]},"225":{"position":[[8,5]]},"229":{"position":[[8,5]]},"233":{"position":[[9,5]]},"237":{"position":[[8,5]]},"241":{"position":[[8,5]]},"251":{"position":[[0,5]]}}}],["debug",{"_index":937,"t":{"135":{"position":[[2378,9]]},"139":{"position":[[300,11]]}}}],["dec",{"_index":1315,"t":{"205":{"position":[[14,3]]}}}],["decend",{"_index":1140,"t":{"183":{"position":[[227,9]]}}}],["decid",{"_index":1572,"t":{"296":{"position":[[464,6]]}}}],["decis",{"_index":1006,"t":{"151":{"position":[[119,8]]},"199":{"position":[[150,10]]}}}],["deck.gl",{"_index":110,"t":{"4":{"position":[[794,8]]},"160":{"position":[[241,7],[531,7]]},"260":{"position":[[1355,8],[1372,7]]},"286":{"position":[[205,7]]}}}],["deck.gl'",{"_index":1459,"t":{"262":{"position":[[461,9]]}}}],["deckgl",{"_index":1456,"t":{"260":{"position":[[1333,6]]}}}],["default",{"_index":210,"t":{"8":{"position":[[389,7],[792,7]]},"13":{"position":[[299,8]]},"24":{"position":[[358,8]]},"34":{"position":[[255,7]]},"45":{"position":[[181,8],[311,8]]},"53":{"position":[[959,7]]},"56":{"position":[[20,8],[258,8],[435,8],[800,8],[998,8]]},"69":{"position":[[518,8],[821,8]]},"79":{"position":[[94,7]]},"81":{"position":[[245,7]]},"83":{"position":[[52,8],[150,8]]},"85":{"position":[[275,8],[478,8],[1026,8],[1136,8]]},"87":{"position":[[397,7],[484,7],[701,7],[771,7],[821,7],[885,7],[957,7],[1360,8],[1434,8],[1504,8],[1576,8],[1642,8],[1720,8]]},"89":{"position":[[18,8],[145,8],[288,8],[426,8],[609,8],[735,8],[934,8],[1137,8],[1353,8]]},"91":{"position":[[673,8]]},"93":{"position":[[279,8],[1291,7],[1392,8],[1505,8],[1523,8],[2314,8],[2704,8],[2939,8],[3303,7]]},"104":{"position":[[308,8]]},"117":{"position":[[18,8],[206,8]]},"119":{"position":[[170,8]]},"168":{"position":[[504,7]]},"243":{"position":[[232,9]]},"253":{"position":[[84,8]]},"255":{"position":[[107,7]]},"260":{"position":[[648,7]]},"266":{"position":[[135,8]]},"268":{"position":[[174,8],[220,8],[280,7]]},"272":{"position":[[192,7]]},"274":{"position":[[52,7]]},"284":{"position":[[132,7],[205,7]]},"290":{"position":[[461,9],[489,9]]}}}],["defaultprev",{"_index":917,"t":{"135":{"position":[[311,17],[519,17],[763,17]]}}}],["defin",{"_index":298,"t":{"32":{"position":[[190,8]]},"85":{"position":[[919,6]]},"127":{"position":[[360,7],[464,7],[571,7],[677,7],[776,7],[880,7],[981,7],[1079,7],[1179,7],[1276,7],[1378,7],[1483,7],[1586,7],[1690,7],[1792,7],[1897,7],[2006,7]]},"164":{"position":[[1060,8]]},"168":{"position":[[202,6]]},"188":{"position":[[399,6],[1833,8]]},"260":{"position":[[245,7],[490,7]]},"274":{"position":[[276,8]]}}}],["defineplugin",{"_index":1173,"t":{"188":{"position":[[1166,14],[1241,14]]}}}],["degre",{"_index":401,"t":{"56":{"position":[[847,8]]},"87":{"position":[[1175,7],[1297,7]]},"131":{"position":[[911,8],[976,8]]}}}],["dem",{"_index":880,"t":{"127":{"position":[[1914,3]]}}}],["demot",{"_index":1455,"t":{"260":{"position":[[1226,7]]}}}],["depend",{"_index":951,"t":{"139":{"position":[[146,13]]},"162":{"position":[[108,9]]},"197":{"position":[[371,11]]},"207":{"position":[[42,10]]},"211":{"position":[[295,10]]},"219":{"position":[[493,10]]},"239":{"position":[[210,10]]},"260":{"position":[[82,11],[922,10],[1254,10]]},"262":{"position":[[340,9],[637,6]]},"264":{"position":[[119,13],[268,11]]},"272":{"position":[[152,11]]},"276":{"position":[[86,10]]},"278":{"position":[[158,10],[335,13]]},"292":{"position":[[234,10]]}}}],["deploy",{"_index":1158,"t":{"188":{"position":[[633,8],[874,9]]}}}],["deprec",{"_index":968,"t":{"143":{"position":[[220,12]]},"227":{"position":[[846,10]]},"276":{"position":[[250,10]]},"280":{"position":[[69,10]]},"290":{"position":[[19,9]]}}}],["deriv",{"_index":1055,"t":{"162":{"position":[[90,7]]}}}],["descend",{"_index":338,"t":{"36":{"position":[[720,10]]}}}],["describ",{"_index":504,"t":{"85":{"position":[[377,9]]},"143":{"position":[[466,8]]}}}],["descript",{"_index":13,"t":{"2":{"position":[[137,11]]},"143":{"position":[[335,11]]}}}],["descriptor",{"_index":1372,"t":{"227":{"position":[[711,11]]}}}],["design",{"_index":130,"t":{"4":{"position":[[1225,8]]},"8":{"position":[[481,6],[884,6]]},"284":{"position":[[152,8]]}}}],["desir",{"_index":332,"t":{"36":{"position":[[392,8]]},"93":{"position":[[1930,9]]}}}],["destroy",{"_index":1384,"t":{"235":{"position":[[422,7]]}}}],["detail",{"_index":853,"t":{"125":{"position":[[163,8]]},"135":{"position":[[2300,7]]},"156":{"position":[[744,7]]},"203":{"position":[[273,8]]},"219":{"position":[[376,8]]},"268":{"position":[[1078,8]]}}}],["dev",{"_index":958,"t":{"139":{"position":[[286,3]]},"188":{"position":[[382,3]]}}}],["develop",{"_index":56,"t":{"2":{"position":[[981,9]]},"85":{"position":[[905,10]]},"139":{"position":[[32,11]]},"149":{"position":[[13,11]]},"188":{"position":[[771,11]]},"219":{"position":[[584,10]]},"270":{"position":[[298,10]]}}}],["deviat",{"_index":139,"t":{"4":{"position":[[1425,7]]},"6":{"position":[[381,7]]}}}],["devic",{"_index":633,"t":{"91":{"position":[[816,6],[1094,6],[1375,6],[1629,6],[1852,6],[2265,6],[2484,6],[2603,6],[2909,6]]}}}],["dif",{"_index":296,"t":{"32":{"position":[[155,7]]},"85":{"position":[[1157,7]]},"227":{"position":[[306,7],[344,8]]},"245":{"position":[[412,7]]}}}],["diff",{"_index":535,"t":{"85":{"position":[[1299,4]]}}}],["differ",{"_index":173,"t":{"6":{"position":[[494,6]]},"81":{"position":[[184,9],[223,9]]}}}],["dimens",{"_index":1360,"t":{"227":{"position":[[9,10]]}}}],["direct",{"_index":1131,"t":{"181":{"position":[[797,6]]},"270":{"position":[[177,10]]}}}],["directli",{"_index":162,"t":{"6":{"position":[[278,8],[441,8]]},"49":{"position":[[81,8]]},"95":{"position":[[1076,8]]},"135":{"position":[[2412,8]]},"199":{"position":[[587,8],[678,8]]},"255":{"position":[[397,8]]}}}],["disabl",{"_index":209,"t":{"8":{"position":[[377,7],[780,7]]},"93":{"position":[[2646,7]]}}}],["discuss",{"_index":1321,"t":{"207":{"position":[[277,9]]},"270":{"position":[[445,10]]}}}],["disencourag",{"_index":177,"t":{"6":{"position":[[584,13]]}}}],["dispatch",{"_index":1221,"t":{"192":{"position":[[440,8]]}}}],["dispatch({typ",{"_index":1223,"t":{"192":{"position":[[502,15]]}}}],["display",{"_index":1059,"t":{"162":{"position":[[396,10],[552,8]]}}}],["displaycontrolsdefault={fals",{"_index":833,"t":{"108":{"position":[[516,30]]}}}],["distanc",{"_index":456,"t":{"69":{"position":[[622,8]]},"117":{"position":[[236,9]]}}}],["distort",{"_index":527,"t":{"85":{"position":[[973,11]]}}}],["distribut",{"_index":1143,"t":{"188":{"position":[[110,10]]}}}],["diverg",{"_index":1259,"t":{"197":{"position":[[57,10]]}}}],["do",{"_index":167,"t":{"6":{"position":[[339,5]]}}}],["doc",{"_index":0,"t":{"2":{"position":[[6,4]]}}}],["docs/api",{"_index":967,"t":{"143":{"position":[[179,8]]}}}],["docs/upgrad",{"_index":969,"t":{"143":{"position":[[250,12]]}}}],["docs/what",{"_index":972,"t":{"143":{"position":[[316,10]]}}}],["document",{"_index":493,"t":{"81":{"position":[[309,14]]},"125":{"position":[[145,13]]},"143":{"position":[[96,13],[162,13]]},"188":{"position":[[691,13]]},"207":{"position":[[295,9]]},"243":{"position":[[754,14]]},"255":{"position":[[80,14]]},"260":{"position":[[841,14]]},"268":{"position":[[0,13],[1060,13]]}}}],["dom",{"_index":346,"t":{"45":{"position":[[132,3]]},"158":{"position":[[151,3]]},"192":{"position":[[1513,3]]}}}],["domain",{"_index":1170,"t":{"188":{"position":[[1060,6]]}}}],["don't",{"_index":1532,"t":{"286":{"position":[[324,5]]}}}],["done",{"_index":1250,"t":{"194":{"position":[[128,4]]}}}],["dotenv",{"_index":1153,"t":{"188":{"position":[[516,6]]}}}],["doubl",{"_index":573,"t":{"89":{"position":[[172,7]]},"284":{"position":[[473,6]]}}}],["doubleclickzoom",{"_index":572,"t":{"89":{"position":[[119,16]]},"243":{"position":[[644,16]]}}}],["doubleclickzoomhandl",{"_index":574,"t":{"89":{"position":[[223,22]]}}}],["doubt",{"_index":491,"t":{"81":{"position":[[269,6]]}}}],["down",{"_index":121,"t":{"4":{"position":[[1041,4],[1161,5]]}}}],["download",{"_index":611,"t":{"91":{"position":[[157,10]]}}}],["drag",{"_index":374,"t":{"56":{"position":[[69,7]]},"58":{"position":[[129,8],[221,9],[308,8]]},"89":{"position":[[315,5],[453,5],[961,5]]},"91":{"position":[[5387,5],[5495,5],[5586,5]]},"192":{"position":[[910,8]]},"239":{"position":[[35,4]]}}}],["draggabl",{"_index":370,"t":{"56":{"position":[[0,10]]},"58":{"position":[[149,9],[234,9],[326,9]]},"227":{"position":[[386,9],[445,10]]}}}],["draggablepointsoverlay",{"_index":1423,"t":{"245":{"position":[[539,23]]},"286":{"position":[[69,24]]}}}],["dragpan",{"_index":577,"t":{"89":{"position":[[399,8]]},"243":{"position":[[635,8]]},"272":{"position":[[326,8]]}}}],["dragpanhandler.en",{"_index":580,"t":{"89":{"position":[[547,21]]}}}],["dragrot",{"_index":575,"t":{"89":{"position":[[267,11]]},"245":{"position":[[174,11]]},"272":{"position":[[349,11]]},"290":{"position":[[478,10]]}}}],["dragrotatehandl",{"_index":576,"t":{"89":{"position":[[360,17]]}}}],["draw",{"_index":100,"t":{"4":{"position":[[647,4]]},"108":{"position":[[120,6]]},"199":{"position":[[701,5]]},"215":{"position":[[231,7],[260,5]]}}}],["drawcontrol",{"_index":831,"t":{"108":{"position":[[483,12]]}}}],["drawcontrol(prop",{"_index":826,"t":{"108":{"position":[[182,18]]}}}],["drawcontrolprop",{"_index":827,"t":{"108":{"position":[[201,17]]}}}],["drawn",{"_index":616,"t":{"91":{"position":[[300,5]]},"158":{"position":[[194,5]]}}}],["drive",{"_index":69,"t":{"4":{"position":[[164,7]]}}}],["drop",{"_index":1376,"t":{"227":{"position":[[814,7]]}}}],["dure",{"_index":677,"t":{"91":{"position":[[4796,6],[5486,6],[5814,6],[6485,6],[7172,6]]},"190":{"position":[[134,6]]},"203":{"position":[[489,6]]},"296":{"position":[[404,6]]}}}],["dynam",{"_index":307,"t":{"34":{"position":[[104,12]]},"36":{"position":[[185,7],[370,7]]},"69":{"position":[[284,11]]},"93":{"position":[[718,7]]},"156":{"position":[[842,11]]},"168":{"position":[[352,12]]}}}],["e.g",{"_index":339,"t":{"36":{"position":[[745,3]]},"162":{"position":[[1133,3]]},"188":{"position":[[443,4],[1892,5]]},"207":{"position":[[188,5]]},"268":{"position":[[671,5]]},"302":{"position":[[60,4]]}}}],["each",{"_index":90,"t":{"4":{"position":[[530,4]]},"22":{"position":[[60,4],[178,4],[307,4]]},"34":{"position":[[160,4]]},"69":{"position":[[742,4]]},"91":{"position":[[1504,4]]},"168":{"position":[[408,4]]},"183":{"position":[[153,4]]}}}],["earth",{"_index":510,"t":{"85":{"position":[[595,5],[739,5]]}}}],["eas",{"_index":1299,"t":{"203":{"position":[[102,6]]},"211":{"position":[[210,4]]}}}],["easeto",{"_index":1382,"t":{"235":{"position":[[62,7]]}}}],["east",{"_index":896,"t":{"131":{"position":[[358,5]]}}}],["ecosystem",{"_index":1039,"t":{"160":{"position":[[164,10]]}}}],["edit",{"_index":1053,"t":{"160":{"position":[[514,7]]}}}],["effort",{"_index":1484,"t":{"268":{"position":[[1123,6]]}}}],["element",{"_index":313,"t":{"34":{"position":[[165,7]]},"45":{"position":[[136,7],[208,7]]},"91":{"position":[[1545,9]]},"168":{"position":[[413,7]]}}}],["element'",{"_index":382,"t":{"56":{"position":[[340,9]]}}}],["emb",{"_index":1118,"t":{"177":{"position":[[656,5]]}}}],["embed",{"_index":721,"t":{"93":{"position":[[532,9]]}}}],["embrac",{"_index":74,"t":{"4":{"position":[[249,7]]}}}],["empir",{"_index":1585,"t":{"302":{"position":[[433,6]]}}}],["empti",{"_index":501,"t":{"85":{"position":[[284,6]]},"268":{"position":[[351,5]]}}}],["enabl",{"_index":41,"t":{"2":{"position":[[727,6]]},"85":{"position":[[1150,6]]},"89":{"position":[[71,8],[210,8],[347,8],[482,8],[655,8],[794,8],[992,8],[1206,8]]},"93":{"position":[[739,6]]},"160":{"position":[[498,7]]},"227":{"position":[[578,6]]},"243":{"position":[[981,7]]},"266":{"position":[[144,9]]},"272":{"position":[[181,7]]}}}],["end",{"_index":325,"t":{"36":{"position":[[134,3]]},"58":{"position":[[317,5]]},"91":{"position":[[5612,5],[7822,5]]}}}],["endpoint",{"_index":1261,"t":{"197":{"position":[[121,8],[161,8],[279,9]]},"260":{"position":[[125,8]]}}}],["ensur",{"_index":444,"t":{"69":{"position":[[303,6]]}}}],["enter",{"_index":620,"t":{"91":{"position":[[409,6],[1517,6],[1654,6]]}}}],["entir",{"_index":1294,"t":{"199":{"position":[[785,8]]},"294":{"position":[[792,6]]}}}],["env",{"_index":1155,"t":{"188":{"position":[[561,4],[576,4]]}}}],["environ",{"_index":796,"t":{"93":{"position":[[3213,11]]},"162":{"position":[[1016,11],[1179,11]]},"188":{"position":[[386,12],[422,11],[722,11]]}}}],["equal",{"_index":509,"t":{"85":{"position":[[589,5]]}}}],["equalearth",{"_index":511,"t":{"85":{"position":[[601,15]]}}}],["equirectangular",{"_index":514,"t":{"85":{"position":[[652,20]]}}}],["equirectangular/pl",{"_index":512,"t":{"85":{"position":[[617,21]]}}}],["equival",{"_index":407,"t":{"56":{"position":[[1209,10]]},"93":{"position":[[2565,10]]},"235":{"position":[[29,10]]}}}],["equivel",{"_index":160,"t":{"6":{"position":[[223,12]]}}}],["error",{"_index":246,"t":{"22":{"position":[[235,6]]},"91":{"position":[[729,5]]},"135":{"position":[[1640,7],[1680,6],[1687,5],[2315,6]]},"203":{"position":[[455,5]]},"260":{"position":[[467,5]]}}}],["errorev",{"_index":629,"t":{"91":{"position":[[652,11]]},"135":{"position":[[1585,11]]}}}],["es6",{"_index":1440,"t":{"255":{"position":[[229,3]]}}}],["esm",{"_index":1282,"t":{"199":{"position":[[335,3]]}}}],["etc",{"_index":539,"t":{"87":{"position":[[101,4]]},"89":{"position":[[1442,5]]},"91":{"position":[[5154,6]]},"188":{"position":[[853,5]]},"199":{"position":[[563,5]]},"245":{"position":[[186,4]]},"255":{"position":[[310,4]]},"262":{"position":[[450,5]]},"294":{"position":[[111,4]]}}}],["even",{"_index":34,"t":{"2":{"position":[[543,4]]}}}],["event",{"_index":32,"t":{"2":{"position":[[522,6]]},"89":{"position":[[1418,5],[1550,5],[1658,5],[1711,5],[1756,5],[1836,7]]},"91":{"position":[[10,7],[83,7],[245,7],[329,7],[569,7],[644,7],[756,7],[909,5],[1034,7],[1188,5],[1315,7],[1488,5],[1569,7],[1792,7],[1965,5],[2077,5],[2205,7],[2427,7],[2543,7],[2723,5],[2849,7],[3055,5],[3184,7],[3366,5],[3489,7],[3541,5],[3584,7],[3646,5],[3716,5],[3842,7],[3902,5],[3972,5],[4099,7],[4160,5],[4230,5],[4359,7],[4422,5],[4492,5],[4619,7],[4739,7],[5207,7],[5334,7],[5429,7],[5533,7],[5631,7],[5757,7],[6157,7],[6292,7],[6428,7],[6844,7],[6986,7],[7115,7],[7520,7],[7658,7],[7751,7],[8008,7],[8160,7],[8295,7]]},"93":{"position":[[2073,6]]},"135":{"position":[[62,5],[121,5],[894,5]]},"162":{"position":[[358,6]]},"190":{"position":[[748,5]]},"239":{"position":[[0,5]]},"243":{"position":[[928,5],[948,5],[1011,5]]},"253":{"position":[[128,5]]},"268":{"position":[[999,5]]}}}],["event.viewst",{"_index":678,"t":{"91":{"position":[[4896,15]]}}}],["event.viewstate.bear",{"_index":691,"t":{"91":{"position":[[6599,23]]}}}],["event.viewstate.pitch",{"_index":695,"t":{"91":{"position":[[7280,21]]}}}],["event.viewstate.zoom",{"_index":687,"t":{"91":{"position":[[5920,20]]}}}],["event:mapboxzoomev",{"_index":701,"t":{"91":{"position":[[7845,23]]}}}],["eventrecognizeropt",{"_index":1307,"t":{"203":{"position":[[288,22]]},"268":{"position":[[1285,22]]}}}],["evt",{"_index":239,"t":{"22":{"position":[[13,5],[132,5],[260,5],[438,5],[560,5]]},"58":{"position":[[9,5],[85,5],[176,5],[264,5]]},"71":{"position":[[8,5],[77,5]]},"91":{"position":[[682,3]]}}}],["evt.viewst",{"_index":1226,"t":{"192":{"position":[[543,16]]}}}],["exampl",{"_index":82,"t":{"4":{"position":[[381,8]]},"6":{"position":[[409,8]]},"85":{"position":[[989,8]]},"87":{"position":[[260,9]]},"91":{"position":[[5186,9]]},"93":{"position":[[1997,7]]},"95":{"position":[[931,8]]},"108":{"position":[[615,7]]},"156":{"position":[[932,9]]},"158":{"position":[[253,7]]},"162":{"position":[[919,7],[1257,9]]},"164":{"position":[[104,8],[502,7],[1131,7]]},"171":{"position":[[52,9]]},"181":{"position":[[1649,7]]},"190":{"position":[[187,7]]},"197":{"position":[[408,8]]},"203":{"position":[[635,8]]},"211":{"position":[[318,8]]},"215":{"position":[[202,8],[218,7]]},"243":{"position":[[841,9],[867,8]]},"245":{"position":[[647,9]]},"266":{"position":[[597,7],[769,8]]},"268":{"position":[[725,8],[837,8],[1234,7]]},"286":{"position":[[23,8],[153,9]]},"298":{"position":[[48,7]]},"300":{"position":[[48,7],[465,7],[502,7]]},"302":{"position":[[211,7]]}}}],["exceed",{"_index":1066,"t":{"162":{"position":[[826,9]]}}}],["execut",{"_index":84,"t":{"4":{"position":[[414,7]]}}}],["exhaust",{"_index":489,"t":{"81":{"position":[[154,10]]}}}],["exist",{"_index":320,"t":{"36":{"position":[[31,8]]},"141":{"position":[[187,6]]}}}],["expand",{"_index":1208,"t":{"190":{"position":[[858,9]]},"243":{"position":[[783,8]]}}}],["experi",{"_index":1310,"t":{"203":{"position":[[357,11]]}}}],["experiment",{"_index":1383,"t":{"235":{"position":[[336,15]]},"243":{"position":[[1026,15]]},"272":{"position":[[39,12]]}}}],["experimental.mapcontrol",{"_index":1516,"t":{"276":{"position":[[104,24]]}}}],["explicitli",{"_index":1453,"t":{"260":{"position":[[1035,10]]},"268":{"position":[[254,10]]},"278":{"position":[[295,10]]}}}],["export",{"_index":477,"t":{"79":{"position":[[102,6]]},"197":{"position":[[170,7]]},"211":{"position":[[120,7],[154,8]]},"272":{"position":[[64,6]]},"276":{"position":[[97,6]]},"284":{"position":[[140,7]]},"294":{"position":[[130,8]]}}}],["expos",{"_index":807,"t":{"95":{"position":[[828,7]]},"197":{"position":[[467,6]]},"262":{"position":[[119,6]]},"268":{"position":[[924,7]]},"272":{"position":[[475,6]]}}}],["extend",{"_index":837,"t":{"110":{"position":[[13,7],[149,7],[338,7]]}}}],["extern",{"_index":776,"t":{"93":{"position":[[2744,8]]},"192":{"position":[[25,10]]},"268":{"position":[[660,10]]}}}],["extrus",{"_index":859,"t":{"127":{"position":[[586,9]]}}}],["facilit",{"_index":352,"t":{"49":{"position":[[24,11]]}}}],["fade/transit",{"_index":626,"t":{"91":{"position":[[517,15]]}}}],["fall",{"_index":445,"t":{"69":{"position":[[320,5]]}}}],["fals",{"_index":372,"t":{"56":{"position":[[29,5]]},"85":{"position":[[1191,6]]},"93":{"position":[[1514,5],[2307,6],[2637,5]]},"268":{"position":[[183,6]]},"290":{"position":[[471,6]]}}}],["fast",{"_index":1279,"t":{"199":{"position":[[268,4]]},"262":{"position":[[64,5]]}}}],["faster",{"_index":1352,"t":{"219":{"position":[[606,6]]}}}],["favor",{"_index":1468,"t":{"266":{"position":[[246,5]]}}}],["featur",{"_index":600,"t":{"89":{"position":[[1517,7],[1568,8],[1622,9],[1778,8]]},"91":{"position":[[942,8],[971,8],[1221,8],[1250,8],[2110,8],[2139,8],[2756,8],[2785,8],[3088,8],[3117,8],[3399,8],[3428,8],[3749,8],[3778,8],[4005,8],[4034,8],[4263,8],[4292,8],[4525,8],[4554,8]]},"131":{"position":[[536,7]]},"135":{"position":[[337,10],[789,10]]},"141":{"position":[[154,7]]},"143":{"position":[[288,8]]},"156":{"position":[[324,9],[343,10]]},"158":{"position":[[200,8]]},"160":{"position":[[9,7]]},"164":{"position":[[393,8]]},"166":{"position":[[364,9],[383,10],[1107,9],[1126,10]]},"192":{"position":[[1728,9]]},"219":{"position":[[277,8]]},"235":{"position":[[21,7]]},"243":{"position":[[918,9]]},"262":{"position":[[267,9]]},"270":{"position":[[385,7]]},"280":{"position":[[103,9]]}}}],["featurecollect",{"_index":1021,"t":{"156":{"position":[[224,19],[275,17],[303,20]]},"166":{"position":[[264,19],[315,17],[343,20],[1007,19],[1058,17],[1086,20]]},"192":{"position":[[1707,20]]}}}],["feb",{"_index":1265,"t":{"199":{"position":[[14,3]]}}}],["few",{"_index":1292,"t":{"199":{"position":[[737,4]]},"280":{"position":[[115,3]]},"290":{"position":[[31,3]]}}}],["field",{"_index":638,"t":{"91":{"position":[[951,5],[1230,5],[2119,5],[2765,5],[3097,5],[3408,5],[3758,5],[4014,5],[4272,5],[4534,5]]},"129":{"position":[[128,7]]},"131":{"position":[[594,7],[720,7]]},"135":{"position":[[39,7],[176,7],[412,7],[594,7],[871,7],[1096,7],[1252,7],[1372,7],[1626,7],[1738,7],[1887,7],[2124,7],[2484,7],[2586,7],[2731,7]]},"183":{"position":[[301,5]]},"192":{"position":[[2061,7]]},"294":{"position":[[465,6],[932,6]]}}}],["file",{"_index":1046,"t":{"160":{"position":[[341,4]]},"188":{"position":[[566,5]]}}}],["file(",{"_index":1534,"t":{"286":{"position":[[395,7]]}}}],["fill",{"_index":281,"t":{"30":{"position":[[253,7],[348,5],[790,7],[885,5]]},"127":{"position":[[581,4],[687,4]]}}}],["fillextrusionlay",{"_index":858,"t":{"127":{"position":[[532,19]]}}}],["filllay",{"_index":277,"t":{"30":{"position":[[163,11],[213,9],[691,11],[750,9]]},"127":{"position":[[647,10]]}}}],["filter",{"_index":283,"t":{"30":{"position":[[306,7],[843,7]]}}}],["final",{"_index":722,"t":{"93":{"position":[[549,5]]}}}],["find",{"_index":1098,"t":{"171":{"position":[[8,4]]},"177":{"position":[[366,4],[566,4]]},"274":{"position":[[285,4]]}}}],["fine",{"_index":1308,"t":{"203":{"position":[[329,4]]}}}],["finger",{"_index":1301,"t":{"203":{"position":[[132,6]]}}}],["fire",{"_index":644,"t":{"91":{"position":[[1499,4],[1976,4]]},"227":{"position":[[143,5]]}}}],["first",{"_index":58,"t":{"4":{"position":[[17,5]]},"13":{"position":[[87,5]]},"24":{"position":[[87,5]]},"45":{"position":[[87,5]]},"60":{"position":[[87,5]]},"73":{"position":[[87,5]]},"91":{"position":[[176,5]]},"104":{"position":[[87,5]]},"119":{"position":[[87,5]]},"199":{"position":[[647,5]]},"292":{"position":[[100,5]]}}}],["fitbound",{"_index":1290,"t":{"199":{"position":[[553,9]]},"249":{"position":[[0,10],[11,9]]},"288":{"position":[[4,9]]}}}],["fitboundsopt",{"_index":257,"t":{"24":{"position":[[198,16]]},"87":{"position":[[411,16]]}}}],["fitboundsoptions.maxzoom",{"_index":548,"t":{"87":{"position":[[566,25]]}}}],["fitboundsoptions.minzoom",{"_index":547,"t":{"87":{"position":[[533,25]]}}}],["fitboundsoptions.offset",{"_index":546,"t":{"87":{"position":[[498,24]]}}}],["fitboundsoptions.pad",{"_index":549,"t":{"87":{"position":[[599,25]]}}}],["flat/ortograph",{"_index":1439,"t":{"255":{"position":[[168,16]]}}}],["flow",{"_index":128,"t":{"4":{"position":[[1155,5]]},"203":{"position":[[15,4]]},"300":{"position":[[421,6]]}}}],["flyto",{"_index":681,"t":{"91":{"position":[[5033,6],[6058,6],[6740,6],[7419,6]]},"199":{"position":[[545,7]]},"235":{"position":[[52,5]]}}}],["flytointerpol",{"_index":1330,"t":{"215":{"position":[[179,18]]},"266":{"position":[[687,17]]}}}],["focus",{"_index":1047,"t":{"160":{"position":[[354,7]]}}}],["focusafteropen",{"_index":468,"t":{"73":{"position":[[208,14]]}}}],["fog",{"_index":496,"t":{"85":{"position":[[0,4],[5,4],[14,3],[61,3],[124,3]]},"127":{"position":[[66,4],[99,3]]}}}],["folder",{"_index":1069,"t":{"162":{"position":[[927,8]]}}}],["follow",{"_index":229,"t":{"13":{"position":[[219,10]]},"24":{"position":[[278,10]]},"34":{"position":[[31,9]]},"93":{"position":[[4,9]]},"104":{"position":[[228,10]]},"123":{"position":[[4,9]]},"129":{"position":[[118,9]]},"131":{"position":[[567,9],[710,9]]},"133":{"position":[[4,9]]},"135":{"position":[[29,9],[166,9],[402,9],[584,9],[861,9],[1086,9],[1242,9],[1362,9],[1616,9],[1728,9],[1877,9],[2114,9],[2474,9],[2576,9],[2721,9]]},"145":{"position":[[13,7]]},"168":{"position":[[282,9]]},"188":{"position":[[680,6],[1089,9]]},"190":{"position":[[165,9]]},"192":{"position":[[178,9]]},"268":{"position":[[368,9],[1222,6]]},"288":{"position":[[95,8]]},"302":{"position":[[201,9]]}}}],["forc",{"_index":531,"t":{"85":{"position":[[1198,5]]}}}],["forese",{"_index":1079,"t":{"164":{"position":[[316,11]]}}}],["fork",{"_index":16,"t":{"2":{"position":[[166,4],[606,5],[669,6],[740,5]]},"162":{"position":[[152,5]]},"164":{"position":[[479,4]]},"179":{"position":[[42,4],[284,7]]},"264":{"position":[[31,5]]}}}],["fork/path/to/styl",{"_index":1123,"t":{"179":{"position":[[198,18]]}}}],["forlook",{"_index":1,"t":{"2":{"position":[[15,10]]}}}],["format",{"_index":912,"t":{"133":{"position":[[527,7]]},"160":{"position":[[346,7],[450,7]]}}}],["found",{"_index":988,"t":{"145":{"position":[[94,5]]}}}],["foundat",{"_index":992,"t":{"147":{"position":[[38,11]]}}}],["foundation'",{"_index":1018,"t":{"153":{"position":[[45,12]]}}}],["frame",{"_index":619,"t":{"91":{"position":[[379,5]]},"192":{"position":[[887,5]]}}}],["framework",{"_index":1041,"t":{"160":{"position":[[265,9]]},"243":{"position":[[829,11]]}}}],["free",{"_index":22,"t":{"2":{"position":[[299,4],[460,4]]},"162":{"position":[[39,5],[785,4]]},"264":{"position":[[144,4]]}}}],["frequent",{"_index":755,"t":{"93":{"position":[[1958,10]]},"286":{"position":[[44,10]]}}}],["full",{"_index":348,"t":{"45":{"position":[[165,4],[229,4]]},"85":{"position":[[1206,6]]},"108":{"position":[[610,4]]},"158":{"position":[[248,4]]},"181":{"position":[[1644,4]]},"243":{"position":[[70,4],[989,4]]},"298":{"position":[[16,4]]},"300":{"position":[[16,4]]}}}],["fulli",{"_index":73,"t":{"4":{"position":[[243,5],[1306,5],[1369,5]]},"6":{"position":[[26,5]]},"262":{"position":[[83,5]]}}}],["fullscreen",{"_index":350,"t":{"47":{"position":[[0,10]]}}}],["fullscreencontrol",{"_index":344,"t":{"40":{"position":[[46,17],[151,19],[374,18],[450,19],[676,18]]},"223":{"position":[[16,18]]}}}],["function",{"_index":195,"t":{"8":{"position":[[194,8],[603,8]]},"17":{"position":[[190,8],[496,8]]},"26":{"position":[[311,8],[754,8]]},"30":{"position":[[377,8],[914,8]]},"40":{"position":[[192,8],[500,8]]},"49":{"position":[[225,8]]},"53":{"position":[[170,8],[536,8]]},"62":{"position":[[297,8],[870,8]]},"66":{"position":[[200,8],[696,8]]},"75":{"position":[[284,8],[679,8]]},"79":{"position":[[216,8],[524,8]]},"93":{"position":[[662,8],[829,8],[1106,8]]},"95":{"position":[[235,8],[606,8]]},"99":{"position":[[192,8],[500,8]]},"108":{"position":[[173,8],[307,8]]},"114":{"position":[[182,8],[480,8]]},"156":{"position":[[539,8]]},"164":{"position":[[1071,8],[1139,9]]},"166":{"position":[[579,8],[1322,8]]},"175":{"position":[[88,8],[466,8]]},"179":{"position":[[229,8]]},"181":{"position":[[139,8],[210,8],[434,8],[505,8],[888,8],[1016,8],[1295,8],[1423,8]]},"192":{"position":[[291,8]]},"203":{"position":[[667,10]]},"260":{"position":[[352,8],[606,8]]},"272":{"position":[[537,10]]},"288":{"position":[[65,8]]},"298":{"position":[[126,8]]},"300":{"position":[[126,8]]},"302":{"position":[[533,8]]}}}],["further",{"_index":1454,"t":{"260":{"position":[[1218,7]]}}}],["futur",{"_index":1080,"t":{"164":{"position":[[328,7],[435,6]]},"211":{"position":[[288,6]]},"260":{"position":[[1270,6]]},"272":{"position":[[92,6]]},"294":{"position":[[728,6]]}}}],["gener",{"_index":33,"t":{"2":{"position":[[533,9]]},"6":{"position":[[537,9]]},"141":{"position":[[79,9]]},"162":{"position":[[339,9]]},"190":{"position":[[727,9]]},"260":{"position":[[445,8]]}}}],["gentli",{"_index":1519,"t":{"280":{"position":[[62,6]]}}}],["geocod",{"_index":1291,"t":{"199":{"position":[[717,9]]}}}],["geocontrolref",{"_index":267,"t":{"26":{"position":[[334,13],[777,13]]}}}],["geocontrolref.curr",{"_index":271,"t":{"26":{"position":[[487,25],[932,25]]}}}],["geocontrolref.current?.trigg",{"_index":270,"t":{"26":{"position":[[450,33],[895,33]]}}}],["geofenc",{"_index":1581,"t":{"302":{"position":[[261,9],[461,8],[817,8],[868,10]]}}}],["geojson",{"_index":872,"t":{"127":{"position":[[1388,7]]},"131":{"position":[[528,7]]},"133":{"position":[[149,8]]},"156":{"position":[[249,10],[266,8],[902,7],[914,7]]},"160":{"position":[[506,7]]},"166":{"position":[[289,10],[306,8],[1032,10],[1049,8]]},"302":{"position":[[253,7]]}}}],["geojsonsourc",{"_index":905,"t":{"133":{"position":[[114,14],[162,13]]}}}],["geojsonsourceraw",{"_index":871,"t":{"127":{"position":[[1341,17]]}}}],["geoloc",{"_index":242,"t":{"22":{"position":[[65,11],[183,11],[312,11]]},"28":{"position":[[0,9]]}}}],["geolocatecontrol",{"_index":237,"t":{"17":{"position":[[46,16],[150,18],[372,17],[447,18],[672,17]]},"22":{"position":[[485,16],[607,16]]},"24":{"position":[[130,16]]},"26":{"position":[[22,16],[232,18],[526,17],[662,18],[971,17]]},"135":{"position":[[1799,16],[1916,16],[2153,16]]},"197":{"position":[[435,16]]},"203":{"position":[[503,16]]},"211":{"position":[[63,17]]},"223":{"position":[[35,16]]}}}],["geolocateerrorev",{"_index":245,"t":{"22":{"position":[[138,20]]},"135":{"position":[[2074,20]]}}}],["geolocateev",{"_index":250,"t":{"22":{"position":[[444,15],[566,15]]},"135":{"position":[[1693,15]]}}}],["geolocateresultev",{"_index":240,"t":{"22":{"position":[[19,21],[266,21]]},"135":{"position":[[1836,21]]}}}],["geolocationcoordin",{"_index":928,"t":{"135":{"position":[[1961,22]]}}}],["geolocationpositionerror",{"_index":933,"t":{"135":{"position":[[2253,24]]}}}],["geometri",{"_index":1022,"t":{"156":{"position":[[354,9]]},"160":{"position":[[419,11]]},"166":{"position":[[394,9],[1137,9]]}}}],["geospati",{"_index":66,"t":{"4":{"position":[[134,10]]},"160":{"position":[[439,10]]},"243":{"position":[[818,10]]}}}],["gestur",{"_index":1302,"t":{"203":{"position":[[139,7]]},"243":{"position":[[99,8]]}}}],["get",{"_index":748,"t":{"93":{"position":[[1665,4],[1865,4]]}}}],["getcursor",{"_index":1483,"t":{"268":{"position":[[1087,9]]}}}],["getmap",{"_index":166,"t":{"6":{"position":[[322,7]]},"95":{"position":[[1231,9],[1241,9]]}}}],["gist",{"_index":1163,"t":{"188":{"position":[[838,6]]}}}],["git",{"_index":952,"t":{"139":{"position":[[160,3]]}}}],["github",{"_index":974,"t":{"143":{"position":[[350,6]]},"151":{"position":[[79,6]]},"188":{"position":[[336,6]]}}}],["gitignor",{"_index":1156,"t":{"188":{"position":[[584,10]]}}}],["give",{"_index":312,"t":{"34":{"position":[[155,4]]},"168":{"position":[[403,4]]}}}],["given",{"_index":532,"t":{"85":{"position":[[1265,5]]},"87":{"position":[[1772,5]]}}}],["gl",{"_index":6,"t":{"2":{"position":[[56,2],[101,2],[181,2],[236,2],[276,2],[388,2],[426,2],[603,2],[648,2],[937,3]]},"4":{"position":[[10,2],[306,2],[1219,2],[1293,2],[1340,3]]},"6":{"position":[[19,2],[93,2]]},"8":{"position":[[189,4]]},"17":{"position":[[185,4]]},"26":{"position":[[267,4],[306,4],[749,4]]},"30":{"position":[[146,4],[191,4]]},"40":{"position":[[187,4]]},"49":{"position":[[220,4]]},"53":{"position":[[165,4]]},"62":{"position":[[258,4],[292,4],[865,4]]},"66":{"position":[[195,4]]},"75":{"position":[[245,4],[279,4],[674,4]]},"79":{"position":[[124,3],[211,4]]},"93":{"position":[[303,4],[335,2],[355,4],[623,4],[657,4],[824,4],[881,5],[996,2],[1101,4],[2354,2],[2375,2],[2401,2],[3011,2]]},"95":{"position":[[188,4],[230,4]]},"99":{"position":[[187,4]]},"108":{"position":[[117,2],[168,4],[361,5]]},"114":{"position":[[177,4]]},"123":{"position":[[51,2]]},"139":{"position":[[71,2]]},"145":{"position":[[10,2]]},"149":{"position":[[10,2]]},"151":{"position":[[49,2]]},"153":{"position":[[105,3]]},"156":{"position":[[160,4],[207,4]]},"160":{"position":[[139,2]]},"162":{"position":[[10,2],[84,2],[134,2],[448,2]]},"164":{"position":[[195,2],[264,2],[494,3],[519,3],[633,2]]},"166":{"position":[[200,4],[247,4],[631,5]]},"173":{"position":[[16,2],[103,2],[113,2],[130,2],[162,2],[174,2]]},"175":{"position":[[83,4]]},"177":{"position":[[128,2],[302,2],[423,2],[443,3],[627,2],[649,3]]},"179":{"position":[[29,2],[152,4]]},"181":{"position":[[134,4],[883,4]]},"188":{"position":[[1720,2]]},"190":{"position":[[724,2]]},"192":{"position":[[286,4]]},"197":{"position":[[212,3],[239,2],[298,2],[340,2]]},"199":{"position":[[698,2],[714,2]]},"207":{"position":[[36,2]]},"211":{"position":[[268,2]]},"215":{"position":[[96,2],[257,2]]},"219":{"position":[[77,2],[440,2],[490,2],[662,3]]},"223":{"position":[[115,2]]},"235":{"position":[[465,2],[551,2]]},"239":{"position":[[153,2],[266,2],[305,2]]},"243":{"position":[[14,2],[34,2],[344,2]]},"245":{"position":[[323,2]]},"253":{"position":[[14,3],[30,2]]},"255":{"position":[[73,2],[449,4]]},"260":{"position":[[9,2],[51,2],[265,3],[309,4],[347,4],[677,5],[743,2],[919,2],[987,2],[1065,2],[1128,2]]},"262":{"position":[[363,2],[404,2]]},"264":{"position":[[11,2],[69,2]]},"270":{"position":[[144,2]]},"274":{"position":[[133,2]]},"278":{"position":[[18,2]]},"280":{"position":[[35,3]]},"282":{"position":[[52,2],[97,2],[159,2]]},"286":{"position":[[282,2],[529,2]]},"290":{"position":[[212,2]]},"292":{"position":[[77,3],[206,2]]},"294":{"position":[[258,4],[300,4],[679,2]]},"296":{"position":[[255,2]]},"298":{"position":[[121,4]]},"300":{"position":[[121,4]]},"302":{"position":[[330,4]]}}}],["gl'",{"_index":781,"t":{"93":{"position":[[2813,4],[3080,4]]},"207":{"position":[[100,4]]}}}],["gl.css",{"_index":1112,"t":{"177":{"position":[[338,7],[538,7],[788,8],[839,8]]}}}],["gl.j",{"_index":733,"t":{"93":{"position":[[1016,6]]}}}],["gl/dist/mapbox",{"_index":1120,"t":{"177":{"position":[[773,14]]}}}],["gl/dist/maplibr",{"_index":1121,"t":{"177":{"position":[[822,16]]}}}],["gl/maplibr",{"_index":214,"t":{"8":{"position":[[589,13]]},"17":{"position":[[482,13]]},"26":{"position":[[697,13]]},"30":{"position":[[665,13],[719,13]]},"40":{"position":[[486,13]]},"53":{"position":[[522,13]]},"62":{"position":[[818,13]]},"66":{"position":[[682,13]]},"75":{"position":[[627,13]]},"79":{"position":[[510,13]]},"93":{"position":[[387,11]]},"95":{"position":[[541,13],[592,13]]},"99":{"position":[[486,13]]},"114":{"position":[[466,13]]},"166":{"position":[[925,13],[981,13]]},"175":{"position":[[452,13]]},"181":{"position":[[420,13],[1281,13]]},"197":{"position":[[140,12]]},"260":{"position":[[144,12],[562,13]]}}}],["gl/src/api",{"_index":1561,"t":{"294":{"position":[[339,10]]}}}],["gl@1.x",{"_index":1060,"t":{"162":{"position":[[429,6]]},"164":{"position":[[246,7]]}}}],["gl@/dist/maplibr",{"_index":1117,"t":{"177":{"position":[[497,40]]}}}],["gl@>=2.0.0",{"_index":1056,"t":{"162":{"position":[[244,10]]}}}],["glyph",{"_index":738,"t":{"93":{"position":[[1350,7]]}}}],["go",{"_index":132,"t":{"4":{"position":[[1264,5]]}}}],["good",{"_index":1530,"t":{"284":{"position":[[681,5]]}}}],["govern",{"_index":996,"t":{"149":{"position":[[28,8]]},"151":{"position":[[201,10]]}}}],["granular",{"_index":1416,"t":{"243":{"position":[[715,8]]}}}],["graphic",{"_index":106,"t":{"4":{"position":[[740,7]]}}}],["guid",{"_index":57,"t":{"2":{"position":[[991,5]]},"197":{"position":[[395,5]]},"199":{"position":[[866,5]]},"207":{"position":[[317,5]]},"227":{"position":[[1168,5]]},"249":{"position":[[156,6]]}}}],["guide.md",{"_index":970,"t":{"143":{"position":[[263,9]]}}}],["guidelin",{"_index":985,"t":{"145":{"position":[[45,11]]},"151":{"position":[[212,11]]}}}],["handl",{"_index":1399,"t":{"239":{"position":[[6,8]]},"243":{"position":[[934,9],[954,8],[1017,8]]},"266":{"position":[[234,8]]},"296":{"position":[[641,8]]}}}],["handler",{"_index":1436,"t":{"253":{"position":[[134,7],[178,7]]},"266":{"position":[[266,9],[355,8]]}}}],["happen",{"_index":602,"t":{"89":{"position":[[1717,9]]}}}],["hard",{"_index":1517,"t":{"278":{"position":[[153,4]]},"292":{"position":[[229,4]]}}}],["head",{"_index":1109,"t":{"177":{"position":[[208,4]]},"270":{"position":[[164,7]]}}}],["header",{"_index":1086,"t":{"164":{"position":[[1012,6],[1284,8]]}}}],["heatmap",{"_index":861,"t":{"127":{"position":[[786,7]]}}}],["heatmaplay",{"_index":860,"t":{"127":{"position":[[743,13]]}}}],["hebrew",{"_index":770,"t":{"93":{"position":[[2489,6]]}}}],["height",{"_index":481,"t":{"79":{"position":[[376,7],[642,7]]},"83":{"position":[[99,7]]},"175":{"position":[[248,7],[584,7]]},"227":{"position":[[104,6]]},"243":{"position":[[416,6]]},"245":{"position":[[377,7]]},"268":{"position":[[437,6]]},"284":{"position":[[273,8],[368,7],[435,6],[555,8],[699,8]]},"288":{"position":[[219,7]]}}}],["height={400",{"_index":1529,"t":{"284":{"position":[[648,12],[791,12]]}}}],["help",{"_index":302,"t":{"32":{"position":[[234,4]]},"188":{"position":[[246,4]]},"235":{"position":[[439,4]]}}}],["helper",{"_index":341,"t":{"36":{"position":[[766,6]]}}}],["here",{"_index":440,"t":{"66":{"position":[[556,4],[1046,4]]},"108":{"position":[[623,5]]},"145":{"position":[[100,5]]},"158":{"position":[[261,5]]},"181":{"position":[[1657,5]]},"245":{"position":[[449,5]]},"260":{"position":[[182,4]]},"298":{"position":[[56,5]]},"300":{"position":[[56,5]]}}}],["hidden",{"_index":812,"t":{"95":{"position":[[954,6],[1212,6]]}}}],["high",{"_index":1040,"t":{"160":{"position":[[186,4]]},"192":{"position":[[117,4]]}}}],["higher",{"_index":1556,"t":{"292":{"position":[[142,6],[179,7]]}}}],["hillshad",{"_index":863,"t":{"127":{"position":[[890,9]]}}}],["hillshadelay",{"_index":862,"t":{"127":{"position":[[845,15]]}}}],["hit",{"_index":1096,"t":{"168":{"position":[[245,4]]}}}],["hook",{"_index":119,"t":{"4":{"position":[[1013,6]]},"26":{"position":[[78,5]]},"62":{"position":[[68,5]]},"75":{"position":[[67,5]]},"95":{"position":[[64,5]]},"108":{"position":[[15,4]]},"110":{"position":[[568,4]]},"181":{"position":[[11,4],[715,4]]},"183":{"position":[[55,4],[205,4]]}}}],["host",{"_index":35,"t":{"2":{"position":[[573,6],[856,4]]},"93":{"position":[[3114,6]]},"164":{"position":[[120,4]]},"207":{"position":[[199,7]]}}}],["hover",{"_index":1485,"t":{"268":{"position":[[1262,6]]}}}],["href='https://api.tiles.mapbox.com/mapbox",{"_index":1110,"t":{"177":{"position":[[260,41]]}}}],["href='https://unpkg.com/maplibr",{"_index":1116,"t":{"177":{"position":[[464,32]]}}}],["html",{"_index":909,"t":{"133":{"position":[[404,4]]},"158":{"position":[[27,4]]},"239":{"position":[[323,4]]}}}],["htmloverlay",{"_index":1413,"t":{"243":{"position":[[518,11]]},"255":{"position":[[270,13]]},"266":{"position":[[525,13]]},"294":{"position":[[71,13]]}}}],["http://localhost",{"_index":1161,"t":{"188":{"position":[[799,18]]}}}],["https://api.mapbox.com/mapbox",{"_index":763,"t":{"93":{"position":[[2323,30]]}}}],["https://mycompany.com",{"_index":1166,"t":{"188":{"position":[[887,23]]}}}],["hundr",{"_index":1233,"t":{"192":{"position":[[953,8]]}}}],["icon",{"_index":743,"t":{"93":{"position":[[1457,6]]},"192":{"position":[[801,4],[1236,4],[2009,5],[2032,6],[2039,5]]}}}],["icontrol",{"_index":838,"t":{"110":{"position":[[21,10],[79,9],[157,10],[215,9],[346,10],[404,9],[584,8],[731,8],[1136,8]]},"125":{"position":[[0,9]]}}}],["id",{"_index":279,"t":{"30":{"position":[[227,3],[764,3]]},"34":{"position":[[192,3],[263,2]]},"36":{"position":[[22,2],[649,2],[833,2]]},"45":{"position":[[122,2]]},"83":{"position":[[0,3],[26,3]]},"156":{"position":[[449,3]]},"166":{"position":[[489,3],[1232,3]]},"168":{"position":[[440,3],[512,2]]},"183":{"position":[[29,4],[164,2]]},"192":{"position":[[2077,5]]}}}],["id(",{"_index":593,"t":{"89":{"position":[[1371,5]]}}}],["id=\"mi",{"_index":1029,"t":{"156":{"position":[[648,6]]},"166":{"position":[[759,6],[1509,6]]}}}],["id=\"mymapa",{"_index":1132,"t":{"181":{"position":[[934,11],[1341,11]]}}}],["id=\"mymapb",{"_index":1133,"t":{"181":{"position":[[958,11],[1365,11]]}}}],["id=\"vehicl",{"_index":1243,"t":{"192":{"position":[[1925,13]]}}}],["ideal",{"_index":1206,"t":{"190":{"position":[[814,5]]}}}],["ident",{"_index":315,"t":{"34":{"position":[[182,9]]},"168":{"position":[[430,9]]},"197":{"position":[[178,9]]},"219":{"position":[[267,9]]}}}],["identifi",{"_index":318,"t":{"34":{"position":[[211,10]]},"162":{"position":[[725,8]]},"168":{"position":[[459,10]]}}}],["idl",{"_index":621,"t":{"91":{"position":[[419,6]]}}}],["ignor",{"_index":540,"t":{"87":{"position":[[119,7]]}}}],["imag",{"_index":741,"t":{"93":{"position":[[1426,6]]},"127":{"position":[[1596,5]]},"133":{"position":[[307,6]]},"160":{"position":[[431,7]]},"192":{"position":[[2015,7]]}}}],["imagesourc",{"_index":907,"t":{"133":{"position":[[274,12],[318,11]]}}}],["imagesourceraw",{"_index":875,"t":{"127":{"position":[[1551,15]]}}}],["img",{"_index":365,"t":{"53":{"position":[[409,4],[769,4]]}}}],["immedi",{"_index":335,"t":{"36":{"position":[[573,9],[710,9]]}}}],["immut",{"_index":500,"t":{"85":{"position":[[264,10]]},"227":{"position":[[353,9]]},"278":{"position":[[237,9]]}}}],["immutable.j",{"_index":1515,"t":{"276":{"position":[[58,12]]},"278":{"position":[[125,12]]}}}],["imper",{"_index":79,"t":{"4":{"position":[[318,11]]},"26":{"position":[[111,10]]},"62":{"position":[[101,10]]},"75":{"position":[[100,10]]},"95":{"position":[[0,10]]},"199":{"position":[[529,10]]},"272":{"position":[[482,10]]}}}],["imperi",{"_index":847,"t":{"117":{"position":[[170,10]]}}}],["implement",{"_index":851,"t":{"125":{"position":[[27,15],[80,15]]},"133":{"position":[[18,15]]},"158":{"position":[[8,9]]},"266":{"position":[[205,14],[302,14],[609,12]]},"296":{"position":[[602,10]]}}}],["import",{"_index":194,"t":{"8":{"position":[[108,6],[140,6],[508,6],[540,6]]},"17":{"position":[[106,6],[138,6],[403,6],[435,6]]},"26":{"position":[[147,6],[179,6],[220,6],[272,6],[577,6],[609,6],[650,6],[711,6]]},"30":{"position":[[78,6],[110,6],[151,6],[597,6],[629,6],[679,6]]},"40":{"position":[[107,6],[139,6],[406,6],[438,6]]},"49":{"position":[[183,6]]},"53":{"position":[[96,6],[128,6],[453,6],[485,6]]},"62":{"position":[[137,6],[169,6],[221,6],[263,6],[697,6],[729,6],[781,6],[832,6]]},"66":{"position":[[95,6],[127,6],[159,6],[582,6],[614,6],[646,6]]},"75":{"position":[[136,6],[168,6],[209,6],[250,6],[518,6],[550,6],[591,6],[641,6]]},"79":{"position":[[152,6],[184,6],[451,6],[483,6]]},"93":{"position":[[311,8],[363,8],[520,6],[564,6],[596,6],[628,6],[726,6],[765,6],[797,6],[1042,6],[1074,6]]},"95":{"position":[[86,6],[118,6],[161,6],[193,6],[439,6],[471,6],[514,6],[555,6]]},"99":{"position":[[107,6],[139,6],[406,6],[438,6]]},"108":{"position":[[78,6],[127,6]]},"114":{"position":[[102,6],[134,6],[391,6],[423,6]]},"123":{"position":[[27,8]]},"156":{"position":[[84,6],[116,6],[165,6],[212,6]]},"166":{"position":[[124,6],[156,6],[205,6],[252,6],[849,6],[881,6],[939,6],[995,6]]},"175":{"position":[[24,6],[56,6],[393,6],[425,6]]},"177":{"position":[[758,6],[805,6]]},"179":{"position":[[93,6],[125,6],[180,6]]},"181":{"position":[[97,6],[383,6],[833,6],[1231,6]]},"192":{"position":[[195,6],[249,6]]},"199":{"position":[[838,9]]},"207":{"position":[[72,9]]},"211":{"position":[[243,6]]},"255":{"position":[[233,7],[336,8],[388,8],[412,7]]},"260":{"position":[[106,7],[168,8],[282,6],[314,6],[535,6],[599,6]]},"266":{"position":[[51,6]]},"278":{"position":[[227,9]]},"288":{"position":[[104,6]]},"294":{"position":[[23,9],[165,8],[215,6],[271,6],[305,6]]},"298":{"position":[[62,6],[94,6]]},"300":{"position":[[62,6],[94,6]]},"302":{"position":[[271,6],[303,6],[361,6]]}}}],["import('mapbox",{"_index":717,"t":{"93":{"position":[[288,14]]}}}],["import('maplibr",{"_index":718,"t":{"93":{"position":[[338,16]]},"260":{"position":[[659,17]]}}}],["improv",{"_index":1236,"t":{"192":{"position":[[1032,7]]},"243":{"position":[[355,8]]}}}],["includ",{"_index":712,"t":{"91":{"position":[[8387,9]]},"160":{"position":[[392,9]]},"164":{"position":[[367,7],[816,8]]},"177":{"position":[[48,8]]},"179":{"position":[[160,7]]},"227":{"position":[[748,9]]},"235":{"position":[[260,9]]},"278":{"position":[[55,8]]},"284":{"position":[[254,8],[349,8]]}}}],["index.html",{"_index":729,"t":{"93":{"position":[[942,10]]},"177":{"position":[[243,10],[447,10]]}}}],["indic",{"_index":385,"t":{"56":{"position":[[368,8]]},"69":{"position":[[137,10],[781,8]]}}}],["individu",{"_index":1568,"t":{"294":{"position":[[921,10]]}}}],["inertia",{"_index":1303,"t":{"203":{"position":[[164,7]]},"272":{"position":[[164,7],[335,9],[361,9],[386,9]]}}}],["inform",{"_index":360,"t":{"49":{"position":[[387,12]]},"91":{"position":[[8134,12],[8268,12],[8473,12]]},"245":{"position":[[253,12],[480,12]]},"249":{"position":[[127,12]]},"278":{"position":[[98,11]]},"294":{"position":[[557,11],[630,11]]}}}],["initi",{"_index":537,"t":{"87":{"position":[[30,7],[301,7],[664,7],[735,7],[801,7],[852,7],[918,7],[1130,7],[1246,7]]},"93":{"position":[[2093,15],[2167,15]]},"190":{"position":[[781,12],[1105,14]]},"257":{"position":[[0,7]]},"296":{"position":[[72,7]]}}}],["initialviewst",{"_index":200,"t":{"8":{"position":[[265,19],[632,19]]},"17":{"position":[[261,19],[525,19]]},"30":{"position":[[448,19],[943,19]]},"40":{"position":[[263,19],[529,19]]},"53":{"position":[[241,19],[565,19]]},"66":{"position":[[330,19],[784,19]]},"79":{"position":[[289,19],[555,19]]},"87":{"position":[[0,17],[167,16]]},"93":{"position":[[2230,16]]},"99":{"position":[[263,19],[529,19]]},"108":{"position":[[367,19]]},"114":{"position":[[253,19],[509,19]]},"156":{"position":[[570,19]]},"166":{"position":[[637,19],[1351,19]]},"175":{"position":[[161,19],[497,19]]},"268":{"position":[[595,16]]},"298":{"position":[[155,19]]}}}],["inject",{"_index":1020,"t":{"156":{"position":[[8,6]]}}}],["inlin",{"_index":301,"t":{"32":{"position":[[223,6]]},"168":{"position":[[224,6]]},"203":{"position":[[583,6]]}}}],["input",{"_index":920,"t":{"135":{"position":[[1029,5]]},"266":{"position":[[228,5]]},"296":{"position":[[626,5]]}}}],["insert",{"_index":321,"t":{"36":{"position":[[49,6]]}}}],["insid",{"_index":340,"t":{"36":{"position":[[757,6]]},"91":{"position":[[1906,6]]},"183":{"position":[[218,6]]},"302":{"position":[[244,6],[806,6]]}}}],["instal",{"_index":1103,"t":{"173":{"position":[[78,7],[137,7]]},"179":{"position":[[4,7]]},"197":{"position":[[325,7]]},"260":{"position":[[36,7],[726,9]]},"264":{"position":[[294,7]]},"302":{"position":[[342,7]]}}}],["instanc",{"_index":163,"t":{"6":{"position":[[300,8]]},"26":{"position":[[39,8]]},"56":{"position":[[638,8],[763,8]]},"62":{"position":[[29,8]]},"75":{"position":[[28,8]]},"93":{"position":[[148,9],[241,8],[1631,8],[1695,8],[1803,8],[1889,8]]},"95":{"position":[[1294,8]]},"110":{"position":[[593,9],[762,8],[1159,8]]},"125":{"position":[[104,8]]},"197":{"position":[[485,8]]},"288":{"position":[[361,8]]}}}],["instanti",{"_index":790,"t":{"93":{"position":[[2976,12]]}}}],["instantli",{"_index":1419,"t":{"243":{"position":[[895,9]]}}}],["instead",{"_index":533,"t":{"85":{"position":[[1275,7]]},"197":{"position":[[242,8]]},"211":{"position":[[271,7]]},"219":{"position":[[178,7]]},"266":{"position":[[42,8],[751,8]]},"268":{"position":[[422,8],[712,8],[819,8]]},"276":{"position":[[50,7],[159,7]]}}}],["instruct",{"_index":80,"t":{"4":{"position":[[343,8]]}}}],["integr",{"_index":783,"t":{"93":{"position":[[2854,9]]},"188":{"position":[[658,11]]}}}],["intend",{"_index":936,"t":{"135":{"position":[[2365,8]]},"141":{"position":[[4,8]]},"143":{"position":[[479,8]]}}}],["interact",{"_index":96,"t":{"4":{"position":[[603,9]]},"89":{"position":[[56,11],[195,11],[332,11],[467,11],[779,11],[977,11],[1191,11]]},"91":{"position":[[5002,11],[5401,11],[5509,12],[5600,11],[6027,11],[6709,11],[7388,11],[7717,11],[7810,11],[7920,12]]},"192":{"position":[[139,11]]},"199":{"position":[[284,11]]},"203":{"position":[[249,11],[345,11]]},"227":{"position":[[649,11],[735,12],[795,11],[857,11]]},"235":{"position":[[169,12],[646,12]]},"239":{"position":[[119,12]]},"243":{"position":[[739,14]]},"245":{"position":[[202,13]]},"268":{"position":[[1033,11]]},"272":{"position":[[279,11]]},"276":{"position":[[261,11]]},"296":{"position":[[416,11],[576,8]]}}}],["interactivelayerid",{"_index":592,"t":{"89":{"position":[[1322,20]]},"91":{"position":[[871,19],[1150,19],[1708,19],[2039,19],[2344,19],[2685,19],[3017,19],[3328,19],[3678,19],[3934,19],[4192,19],[4454,19]]},"227":{"position":[[907,19]]},"276":{"position":[[311,19]]}}}],["interactivemap",{"_index":1355,"t":{"223":{"position":[[145,14]]},"227":{"position":[[25,14],[990,14]]},"235":{"position":[[578,14]]},"243":{"position":[[212,14]]},"245":{"position":[[0,14]]},"266":{"position":[[0,14]]},"284":{"position":[[94,15],[110,14]]}}}],["interactivemap'",{"_index":1508,"t":{"274":{"position":[[69,16]]},"276":{"position":[[167,16]]}}}],["interest",{"_index":1008,"t":{"151":{"position":[[155,10]]}}}],["interfac",{"_index":182,"t":{"6":{"position":[[650,10]]},"93":{"position":[[2730,9],[3051,9]]},"135":{"position":[[2431,10]]},"249":{"position":[[107,10]]}}}],["intern",{"_index":746,"t":{"93":{"position":[[1577,8]]},"247":{"position":[[108,8]]}}}],["introduc",{"_index":1509,"t":{"274":{"position":[[139,10]]},"282":{"position":[[138,10]]},"292":{"position":[[216,10]]}}}],["invok",{"_index":1571,"t":{"296":{"position":[[363,7]]}}}],["isdrag",{"_index":1427,"t":{"247":{"position":[[148,11]]}}}],["ishov",{"_index":1426,"t":{"247":{"position":[[136,11]]}}}],["ispan",{"_index":1373,"t":{"227":{"position":[[758,10]]}}}],["isrot",{"_index":1375,"t":{"227":{"position":[[783,11]]}}}],["issourceload",{"_index":923,"t":{"135":{"position":[[1444,15]]}}}],["issu",{"_index":977,"t":{"143":{"position":[[374,6]]},"199":{"position":[[99,6]]},"235":{"position":[[482,5]]}}}],["iszoom",{"_index":1374,"t":{"227":{"position":[[769,9]]}}}],["it'",{"_index":141,"t":{"4":{"position":[[1453,4]]},"110":{"position":[[627,4]]},"188":{"position":[[598,4]]},"192":{"position":[[931,4]]},"211":{"position":[[223,4]]},"260":{"position":[[481,4],[1015,4]]},"264":{"position":[[370,4]]}}}],["items.map(rendermark",{"_index":1202,"t":{"190":{"position":[[446,25],[1042,25]]}}}],["items.map(renderrow",{"_index":1204,"t":{"190":{"position":[[524,22]]}}}],["itself",{"_index":1054,"t":{"162":{"position":[[13,6]]}}}],["jan",{"_index":1296,"t":{"201":{"position":[[14,3]]},"209":{"position":[[14,3]]},"251":{"position":[[6,3]]}}}],["januari",{"_index":1381,"t":{"233":{"position":[[15,8]]}}}],["javascript",{"_index":798,"t":{"93":{"position":[[3261,10]]}}}],["js",{"_index":10,"t":{"2":{"position":[[104,2],[239,2],[279,3],[391,2],[429,3]]},"6":{"position":[[96,2]]},"162":{"position":[[137,2]]},"207":{"position":[[39,2]]},"215":{"position":[[99,2]]},"219":{"position":[[80,2]]},"223":{"position":[[118,2]]},"243":{"position":[[17,3],[37,2],[347,2]]},"245":{"position":[[326,2]]},"282":{"position":[[162,2]]}}}],["js'",{"_index":1347,"t":{"219":{"position":[[443,4]]}}}],["js/plugins/mapbox",{"_index":764,"t":{"93":{"position":[[2357,17]]}}}],["js/v2.4.0/mapbox",{"_index":732,"t":{"93":{"position":[[999,16]]}}}],["js/v/mapbox",{"_index":1111,"t":{"177":{"position":[[305,32]]}}}],["json",{"_index":502,"t":{"85":{"position":[[340,4],[439,5]]},"127":{"position":[[343,4],[447,4],[554,4],[660,4],[759,4],[863,4],[964,4],[1062,4],[1162,4],[1259,4],[1361,4],[1466,4],[1569,4],[1673,4],[1775,4],[1880,4],[1989,4]]}}}],["json.stringify(process.env.node_env",{"_index":1177,"t":{"188":{"position":[[1289,35],[1578,35]]}}}],["jsx",{"_index":306,"t":{"34":{"position":[[93,3]]},"36":{"position":[[350,3]]},"168":{"position":[[340,3]]}}}],["juli",{"_index":1378,"t":{"229":{"position":[[14,5]]},"241":{"position":[[14,4]]}}}],["june",{"_index":1255,"t":{"197":{"position":[[14,4]]}}}],["keep",{"_index":1567,"t":{"294":{"position":[[907,4]]}}}],["key",{"_index":311,"t":{"34":{"position":[[143,3]]},"91":{"position":[[3294,3]]},"131":{"position":[[659,5]]},"168":{"position":[[391,3]]},"183":{"position":[[144,4]]}}}],["key={vehicle.id",{"_index":1229,"t":{"192":{"position":[[697,16],[1132,16]]}}}],["keyboard",{"_index":581,"t":{"89":{"position":[[590,9],[632,8]]},"203":{"position":[[206,8]]},"235":{"position":[[99,8],[199,8]]},"239":{"position":[[58,8]]}}}],["keyboardhandl",{"_index":583,"t":{"89":{"position":[[668,15]]}}}],["know",{"_index":1248,"t":{"194":{"position":[[44,4]]}}}],["label",{"_index":978,"t":{"143":{"position":[[381,5]]},"211":{"position":[[52,5],[85,6]]},"270":{"position":[[28,6]]}}}],["label=\"list",{"_index":1199,"t":{"190":{"position":[[330,12]]}}}],["label=\"map",{"_index":1197,"t":{"190":{"position":[[298,11]]}}}],["lag",{"_index":1234,"t":{"192":{"position":[[990,3]]}}}],["lambert",{"_index":515,"t":{"85":{"position":[[673,7],[836,7]]}}}],["lambertconformalcon",{"_index":516,"t":{"85":{"position":[[681,26]]}}}],["landus",{"_index":282,"t":{"30":{"position":[[295,10],[832,10]]}}}],["landuse_park",{"_index":280,"t":{"30":{"position":[[231,15],[768,15]]}}}],["languag",{"_index":771,"t":{"93":{"position":[[2496,10]]}}}],["larg",{"_index":1042,"t":{"160":{"position":[[300,5]]}}}],["last",{"_index":618,"t":{"91":{"position":[[374,4]]}}}],["lat",{"_index":888,"t":{"131":{"position":[[150,3],[165,3]]},"194":{"position":[[209,5],[297,6]]}}}],["later",{"_index":330,"t":{"36":{"position":[[309,5]]}}}],["latest",{"_index":27,"t":{"2":{"position":[[401,6]]},"143":{"position":[[404,7]]},"164":{"position":[[386,6]]},"219":{"position":[[48,6]]},"243":{"position":[[0,6]]},"253":{"position":[[0,6]]},"272":{"position":[[614,6]]},"278":{"position":[[4,6]]}}}],["latitud",{"_index":203,"t":{"8":{"position":[[302,9],[669,9]]},"17":{"position":[[298,9],[562,9]]},"30":{"position":[[487,9],[982,9]]},"40":{"position":[[300,9],[566,9]]},"53":{"position":[[278,9],[602,9]]},"56":{"position":[[107,9],[139,8]]},"66":{"position":[[367,9],[821,9]]},"69":{"position":[[245,9]]},"79":{"position":[[328,9],[594,9]]},"87":{"position":[[86,9],[370,8],[712,9],[743,8],[1020,9],[1042,8]]},"91":{"position":[[5139,9]]},"99":{"position":[[300,9],[566,9]]},"108":{"position":[[406,9]]},"114":{"position":[[290,9],[546,9]]},"131":{"position":[[114,9],[781,9],[804,8]]},"156":{"position":[[610,9]]},"166":{"position":[[676,9],[1390,9]]},"175":{"position":[[200,9],[536,9]]},"231":{"position":[[90,9]]},"243":{"position":[[442,9]]},"245":{"position":[[385,9]]},"288":{"position":[[428,9]]},"294":{"position":[[956,8]]},"298":{"position":[[192,9]]},"300":{"position":[[211,9]]},"302":{"position":[[618,9]]}}}],["latitude={37.8",{"_index":424,"t":{"62":{"position":[[570,15],[1147,15]]},"75":{"position":[[458,15],[855,15]]}}}],["latitude={40",{"_index":363,"t":{"53":{"position":[[377,13],[737,13]]},"66":{"position":[[481,13],[971,13]]}}}],["latitude={vehicle.coordinates[1",{"_index":1231,"t":{"192":{"position":[[749,34],[1184,34]]}}}],["layer",{"_index":276,"t":{"30":{"position":[[43,5],[122,7],[287,7],[562,6],[641,7],[824,7],[1093,6]]},"32":{"position":[[72,5],[177,6]]},"34":{"position":[[7,7],[97,6],[229,6],[320,6]]},"36":{"position":[[40,5],[61,5],[104,5],[145,6],[193,6],[239,6],[500,5],[550,7],[681,8],[871,8]]},"89":{"position":[[1534,7]]},"91":{"position":[[1016,6],[1295,6],[1746,5],[2184,6],[2382,5],[2830,6],[3162,6],[3473,6],[3823,6],[4079,6],[4337,6],[4599,6]]},"125":{"position":[[74,5]]},"127":{"position":[[381,5],[481,5],[596,5],[692,5],[794,5],[900,5],[996,5],[1096,5],[1196,5],[1290,5]]},"131":{"position":[[602,6],[609,5]]},"156":{"position":[[38,6],[66,5],[137,6],[692,6],[775,5],[880,7]]},"166":{"position":[[78,5],[177,6],[803,6],[902,6],[1553,6]]},"192":{"position":[[1573,6],[1580,6],[1978,6]]},"215":{"position":[[16,5]]},"227":{"position":[[807,6],[885,5],[949,6]]},"272":{"position":[[448,5]]},"276":{"position":[[289,5],[353,6]]},"286":{"position":[[213,6]]}}}],["layer(",{"_index":594,"t":{"89":{"position":[[1386,9]]},"91":{"position":[[1686,8],[2322,8]]}}}],["layer.t",{"_index":343,"t":{"38":{"position":[[0,8]]}}}],["layerref.getlay",{"_index":1505,"t":{"272":{"position":[[754,20]]}}}],["layerstyl",{"_index":1023,"t":{"156":{"position":[[421,11],[699,15]]},"166":{"position":[[461,11],[810,15],[1204,11],[1560,15]]}}}],["layout",{"_index":1191,"t":{"190":{"position":[[175,7]]},"192":{"position":[[1999,9]]}}}],["lazi",{"_index":774,"t":{"93":{"position":[[2618,5]]}}}],["lead",{"_index":186,"t":{"6":{"position":[[706,4]]},"95":{"position":[[1157,4]]},"235":{"position":[[497,4]]}}}],["leak",{"_index":1074,"t":{"162":{"position":[[1212,7]]},"235":{"position":[[477,4]]}}}],["leav",{"_index":651,"t":{"91":{"position":[[2290,6],[2509,6]]}}}],["left",{"_index":232,"t":{"13":{"position":[[259,5],[292,6]]},"24":{"position":[[318,5],[351,6]]},"45":{"position":[[271,5],[304,6]]},"56":{"position":[[377,4]]},"69":{"position":[[19,6],[62,5],[92,5],[790,4]]},"93":{"position":[[2534,5]]},"104":{"position":[[268,5],[301,6]]},"108":{"position":[[510,5]]},"110":{"position":[[1035,5],[1065,5]]},"119":{"position":[[130,5],[163,6]]},"129":{"position":[[42,6],[76,6],[136,5]]}}}],["legaci",{"_index":1275,"t":{"199":{"position":[[130,6]]}}}],["length",{"_index":845,"t":{"117":{"position":[[43,6]]}}}],["less",{"_index":1531,"t":{"286":{"position":[[39,4]]}}}],["level",{"_index":551,"t":{"87":{"position":[[814,6],[1093,5],[1462,5],[1533,5]]},"91":{"position":[[5731,5],[5858,5],[6259,5]]},"131":{"position":[[856,6]]},"162":{"position":[[806,5]]}}}],["librari",{"_index":12,"t":{"2":{"position":[[118,10],[129,7]]},"6":{"position":[[99,8]]},"81":{"position":[[203,9]]},"93":{"position":[[431,7],[933,8],[2876,8]]},"131":{"position":[[577,7]]},"160":{"position":[[118,10]]},"177":{"position":[[13,7]]},"199":{"position":[[58,8],[310,7]]},"203":{"position":[[55,7]]},"211":{"position":[[198,7]]},"215":{"position":[[239,7]]},"245":{"position":[[610,7]]},"260":{"position":[[1006,8]]},"262":{"position":[[32,8],[159,8]]},"264":{"position":[[306,7]]},"268":{"position":[[68,8]]},"270":{"position":[[335,8]]},"286":{"position":[[285,7]]},"288":{"position":[[52,8]]}}}],["library'",{"_index":190,"t":{"8":{"position":[[36,9]]},"17":{"position":[[36,9]]},"40":{"position":[[36,9]]},"53":{"position":[[36,9]]},"66":{"position":[[36,9]]},"79":{"position":[[36,9]]},"81":{"position":[[299,9]]},"99":{"position":[[36,9]]},"114":{"position":[[36,9]]}}}],["licens",{"_index":1317,"t":{"207":{"position":[[105,7]]}}}],["light",{"_index":498,"t":{"85":{"position":[[142,6],[149,6],[156,5],[207,5]]},"127":{"position":[[124,6],[159,5]]}}}],["lightweight",{"_index":1281,"t":{"199":{"position":[[318,12]]},"262":{"position":[[70,12]]}}}],["limit",{"_index":1274,"t":{"199":{"position":[[119,7]]},"282":{"position":[[118,11]]}}}],["line",{"_index":865,"t":{"127":{"position":[[991,4]]},"188":{"position":[[488,5]]}}}],["linearinterpol",{"_index":1472,"t":{"266":{"position":[[664,18]]}}}],["linelay",{"_index":864,"t":{"127":{"position":[[951,10]]}}}],["link",{"_index":975,"t":{"143":{"position":[[357,4]]},"177":{"position":[[254,5],[458,5]]},"243":{"position":[[796,6]]}}}],["linux",{"_index":1017,"t":{"153":{"position":[[39,5]]}}}],["list",{"_index":484,"t":{"81":{"position":[[21,6],[165,4]]},"93":{"position":[[85,6]]},"151":{"position":[[295,5],[314,4]]},"177":{"position":[[411,4],[613,4]]},"207":{"position":[[338,4]]},"260":{"position":[[1046,4]]},"264":{"position":[[82,5]]},"278":{"position":[[306,4]]}}}],["listen",{"_index":597,"t":{"89":{"position":[[1448,9],[1664,9]]}}}],["live",{"_index":1421,"t":{"245":{"position":[[444,4]]}}}],["lng",{"_index":887,"t":{"131":{"position":[[142,3]]},"194":{"position":[[215,4]]}}}],["lnglat",{"_index":883,"t":{"131":{"position":[[0,7],[48,6]]},"135":{"position":[[269,7],[277,6],[687,7],[695,6],[718,8],[727,8],[2642,7],[2650,6]]}}}],["lnglatbound",{"_index":890,"t":{"131":{"position":[[181,13],[247,12]]},"135":{"position":[[1191,12]]}}}],["lnglatboundslik",{"_index":545,"t":{"87":{"position":[[278,16],[1702,17]]},"131":{"position":[[227,17]]}}}],["lnglatlik",{"_index":885,"t":{"131":{"position":[[34,11],[280,10]]}}}],["load",{"_index":43,"t":{"2":{"position":[[796,4]]},"26":{"position":[[443,6],[888,6]]},"91":{"position":[[506,6],[8090,5],[8224,5],[8369,5],[8429,5]]},"93":{"position":[[899,4],[1467,4],[2654,7],[3065,7],[3256,4]]},"162":{"position":[[490,4]]},"219":{"position":[[173,4]]}}}],["loader",{"_index":1045,"t":{"160":{"position":[[329,7]]},"177":{"position":[[690,6]]}}}],["loaders.gl",{"_index":1044,"t":{"160":{"position":[[316,10]]}}}],["local",{"_index":947,"t":{"139":{"position":[[74,7]]},"188":{"position":[[376,5]]},"270":{"position":[[64,6]]}}}],["locat",{"_index":369,"t":{"53":{"position":[[908,9]]},"56":{"position":[[162,9],[229,9]]},"69":{"position":[[570,8],[648,8]]},"89":{"position":[[1488,8]]},"135":{"position":[[1998,9],[2050,8],[2667,8]]}}}],["lock",{"_index":253,"t":{"22":{"position":[[524,4]]},"219":{"position":[[509,7]]}}}],["logic",{"_index":1420,"t":{"245":{"position":[[433,5]]},"249":{"position":[[99,7]]},"296":{"position":[[650,6]]},"302":{"position":[[124,5]]}}}],["lon",{"_index":889,"t":{"131":{"position":[[157,3]]}}}],["long",{"_index":129,"t":{"4":{"position":[[1170,4]]},"199":{"position":[[85,4]]}}}],["longer",{"_index":963,"t":{"141":{"position":[[180,6]]},"164":{"position":[[167,6]]},"197":{"position":[[310,6]]},"227":{"position":[[369,6]]},"243":{"position":[[459,6]]},"260":{"position":[[21,6],[1162,6]]},"262":{"position":[[540,6]]},"264":{"position":[[75,6],[259,6],[378,6]]},"270":{"position":[[404,6]]},"272":{"position":[[143,6],[468,6]]},"276":{"position":[[77,6]]},"278":{"position":[[144,6]]}}}],["longitud",{"_index":201,"t":{"8":{"position":[[285,10],[652,10]]},"17":{"position":[[281,10],[545,10]]},"30":{"position":[[468,10],[963,10]]},"40":{"position":[[283,10],[549,10]]},"53":{"position":[[261,10],[360,11],[585,10],[720,11]]},"56":{"position":[[172,10],[205,9]]},"62":{"position":[[551,11],[1128,11]]},"66":{"position":[[350,10],[464,11],[804,10],[954,11]]},"69":{"position":[[231,9]]},"75":{"position":[[439,11],[836,11]]},"79":{"position":[[309,10],[575,10]]},"87":{"position":[[75,10],[359,10],[640,10],[672,9],[968,10],[991,9]]},"91":{"position":[[5127,11]]},"99":{"position":[[283,10],[549,10]]},"108":{"position":[[387,10]]},"114":{"position":[[273,10],[529,10]]},"131":{"position":[[100,9],[728,10],[752,9]]},"156":{"position":[[590,10]]},"166":{"position":[[657,10],[1371,10]]},"175":{"position":[[181,10],[517,10]]},"231":{"position":[[78,11]]},"243":{"position":[[428,9]]},"245":{"position":[[395,10]]},"288":{"position":[[396,11]]},"294":{"position":[[945,10]]},"298":{"position":[[175,10]]},"300":{"position":[[194,10]]},"302":{"position":[[601,10]]}}}],["longitude={vehicle.coordinates[0",{"_index":1230,"t":{"192":{"position":[[714,34],[1149,34]]}}}],["look",{"_index":944,"t":{"137":{"position":[[95,7]]}}}],["ls",{"_index":1115,"t":{"177":{"position":[[433,2],[637,2]]}}}],["m",{"_index":1511,"t":{"274":{"position":[[267,1]]}}}],["made",{"_index":347,"t":{"45":{"position":[[160,4],[224,4]]}}}],["mail",{"_index":1011,"t":{"151":{"position":[[287,7],[306,7]]}}}],["main",{"_index":1535,"t":{"286":{"position":[[514,4]]}}}],["maintain",{"_index":404,"t":{"56":{"position":[[1068,11]]},"137":{"position":[[111,12]]},"151":{"position":[[24,11],[180,11]]}}}],["major",{"_index":1350,"t":{"219":{"position":[[544,5]]},"278":{"position":[[201,5]]},"280":{"position":[[8,5]]},"286":{"position":[[301,8]]},"290":{"position":[[185,5]]}}}],["make",{"_index":308,"t":{"34":{"position":[[117,4]]},"151":{"position":[[128,6]]},"168":{"position":[[365,4]]},"188":{"position":[[65,4]]},"231":{"position":[[24,5]]},"262":{"position":[[289,4]]},"292":{"position":[[81,4]]},"296":{"position":[[165,5]]}}}],["manag",{"_index":70,"t":{"4":{"position":[[195,6],[912,7],[1186,7],[1512,11]]},"87":{"position":[[245,10]]},"91":{"position":[[5171,10]]},"139":{"position":[[135,6]]},"192":{"position":[[36,7]]},"268":{"position":[[636,6],[743,11]]},"296":{"position":[[297,7]]}}}],["mani",{"_index":49,"t":{"2":{"position":[[896,4]]},"4":{"position":[[484,4]]},"190":{"position":[[123,4]]},"199":{"position":[[80,4]]}}}],["manipul",{"_index":333,"t":{"36":{"position":[[412,10]]}}}],["manual",{"_index":1187,"t":{"188":{"position":[[1937,8]]}}}],["map",{"_index":5,"t":{"2":{"position":[[52,3],[644,3],[801,3],[870,3],[933,3]]},"4":{"position":[[6,3],[356,3],[566,4],[676,3],[771,4],[1053,3],[1182,3],[1289,3],[1348,3]]},"6":{"position":[[15,3],[194,8],[296,3]]},"8":{"position":[[147,4],[185,3],[218,4],[498,7],[547,4],[585,3],[627,4],[901,7]]},"13":{"position":[[364,4]]},"17":{"position":[[145,4],[181,3],[214,4],[393,7],[442,4],[478,3],[520,4],[693,7]]},"22":{"position":[[397,3]]},"24":{"position":[[423,4]]},"26":{"position":[[227,4],[263,3],[520,5],[567,7],[657,4],[693,3],[965,5],[1012,7]]},"30":{"position":[[39,3],[117,4],[142,3],[187,3],[401,4],[587,7],[636,4],[661,3],[715,3],[938,4],[1118,7]]},"36":{"position":[[207,3]]},"40":{"position":[[146,4],[183,3],[216,4],[396,7],[445,4],[482,3],[524,4],[698,7]]},"45":{"position":[[194,3],[373,4]]},"49":{"position":[[36,3],[100,4],[177,5],[216,3],[311,4]]},"53":{"position":[[135,4],[161,3],[194,4],[443,7],[492,4],[518,3],[560,4],[803,7]]},"56":{"position":[[102,4],[406,5],[451,3],[493,4],[969,5],[1014,3],[1063,4],[1097,3],[1186,3]]},"62":{"position":[[228,4],[254,3],[537,5],[631,6],[788,4],[814,3],[1114,5],[1208,6]]},"66":{"position":[[166,4],[191,3],[283,4],[572,7],[653,4],[678,3],[779,4],[1062,7]]},"69":{"position":[[337,3]]},"75":{"position":[[216,4],[241,3],[426,5],[508,7],[598,4],[623,3],[823,5],[905,7]]},"79":{"position":[[46,3],[120,3],[191,3],[207,3],[242,4],[490,3],[506,3],[550,4]]},"81":{"position":[[39,3],[84,3],[199,3],[295,3]]},"83":{"position":[[12,3],[115,3]]},"85":{"position":[[137,4],[517,3],[1467,4]]},"87":{"position":[[56,4],[149,4],[187,3],[323,4],[689,3],[759,3],[880,4],[952,4],[1008,3],[1058,3],[1106,4],[1158,4],[1280,4],[1475,3],[1546,3],[1612,3],[1679,3],[1746,3]]},"89":{"position":[[1743,4]]},"91":{"position":[[53,3],[217,3],[293,3],[405,3],[613,3],[863,4],[1142,4],[1420,4],[1479,4],[1528,3],[1767,3],[1917,4],[1956,4],[2031,4],[2403,3],[2677,4],[2989,3],[3320,4],[3565,4],[3670,4],[3926,4],[4184,4],[4446,4],[4681,3],[4857,3],[5268,3],[5693,3],[5881,3],[6218,3],[6354,3],[6560,3],[6905,3],[7048,3],[7241,3],[7581,3],[8081,3]]},"93":{"position":[[51,3],[144,3],[237,3],[331,3],[383,3],[427,3],[447,3],[603,3],[619,3],[686,4],[804,3],[820,3],[853,4],[1081,3],[1097,3],[1130,4],[1249,3],[1545,3],[1627,3],[1661,3],[1691,3],[1756,3],[1799,3],[1851,3],[2130,3],[2196,5],[3014,5]]},"95":{"position":[[168,3],[184,3],[226,3],[392,4],[521,3],[537,3],[588,3],[763,4],[836,3],[1270,3]]},"99":{"position":[[146,4],[183,3],[216,4],[396,7],[445,4],[482,3],[524,4],[698,7]]},"104":{"position":[[370,4]]},"108":{"position":[[64,3],[134,4],[164,3],[333,4],[592,6]]},"110":{"position":[[42,6],[178,6],[235,6],[367,6],[421,6],[474,6],[618,3],[694,6],[794,6],[884,4],[899,6],[999,4],[1123,3]]},"114":{"position":[[141,4],[173,3],[206,4],[381,7],[430,4],[462,3],[504,4],[673,7]]},"119":{"position":[[232,4]]},"123":{"position":[[47,3]]},"125":{"position":[[122,3],[141,3]]},"131":{"position":[[769,3],[820,3],[903,4],[968,4]]},"135":{"position":[[81,3],[205,3],[441,3],[623,3],[913,3],[1125,3],[1281,3],[1401,3],[1656,3],[1767,3]]},"139":{"position":[[67,3]]},"145":{"position":[[6,3]]},"149":{"position":[[6,3]]},"151":{"position":[[45,3]]},"153":{"position":[[101,3]]},"156":{"position":[[123,4],[156,3],[203,3],[565,4],[728,6]]},"158":{"position":[[61,3],[237,4]]},"160":{"position":[[135,3]]},"162":{"position":[[6,3],[321,3],[416,5],[499,3],[561,4],[759,3],[976,3]]},"164":{"position":[[26,3],[134,3],[260,3],[409,3],[590,3],[701,3],[904,3],[1091,3]]},"166":{"position":[[39,3],[163,4],[196,3],[243,3],[603,4],[839,7],[888,4],[921,3],[977,3],[1346,4],[1589,7]]},"173":{"position":[[12,3],[99,3],[158,3]]},"175":{"position":[[63,3],[79,3],[114,4],[432,3],[448,3],[492,4]]},"177":{"position":[[9,3],[124,3]]},"179":{"position":[[25,3],[80,4],[132,3],[148,3],[253,4]]},"181":{"position":[[59,3],[104,5],[130,3],[166,4],[198,6],[254,4],[390,5],[416,3],[461,4],[493,6],[549,4],[739,4],[854,4],[879,3],[929,4],[953,4],[1252,4],[1277,3],[1336,4],[1360,4]]},"183":{"position":[[104,4],[242,3],[338,4]]},"188":{"position":[[1716,3]]},"190":{"position":[[81,3],[394,4],[472,6],[630,3],[668,5],[683,3],[767,3],[980,4],[1068,6],[1127,3]]},"192":{"position":[[160,4],[256,4],[282,3],[577,4],[827,6],[923,4],[1284,4],[1379,6],[1832,4],[2099,6]]},"194":{"position":[[88,4],[313,4]]},"197":{"position":[[136,3],[208,3]]},"199":{"position":[[461,6]]},"207":{"position":[[207,3]]},"211":{"position":[[264,3]]},"215":{"position":[[253,3]]},"219":{"position":[[169,3],[189,3],[658,3]]},"227":{"position":[[90,3],[158,3],[644,4]]},"231":{"position":[[57,3]]},"235":{"position":[[326,3],[430,5],[604,3]]},"239":{"position":[[115,3],[149,3],[301,3]]},"243":{"position":[[548,4],[735,3]]},"245":{"position":[[223,4]]},"255":{"position":[[137,4],[247,3],[445,3]]},"260":{"position":[[140,3],[269,3],[289,3],[305,3],[376,4],[522,3],[542,3],[558,3],[630,4],[1002,3],[1301,3]]},"262":{"position":[[155,3],[359,3],[400,3]]},"264":{"position":[[65,3],[99,3]]},"266":{"position":[[58,4],[100,3]]},"268":{"position":[[549,3],[910,3],[1137,3]]},"270":{"position":[[81,3]]},"272":{"position":[[207,3]]},"280":{"position":[[31,3]]},"282":{"position":[[48,3],[93,3]]},"284":{"position":[[4,3],[39,3]]},"286":{"position":[[278,3],[459,3],[525,3],[573,3]]},"290":{"position":[[208,3]]},"292":{"position":[[73,3]]},"294":{"position":[[48,3],[254,3],[296,3],[335,3],[375,3],[391,3],[675,3]]},"296":{"position":[[28,4],[117,3],[258,3],[340,3],[359,3],[594,4]]},"298":{"position":[[101,3],[117,3],[150,4]]},"300":{"position":[[101,3],[117,3],[246,4],[434,3],[479,3]]},"302":{"position":[[0,3],[233,3],[310,3],[326,3],[922,4]]}}}],["map'",{"_index":137,"t":{"4":{"position":[[1400,5]]},"6":{"position":[[366,5],[465,5]]},"85":{"position":[[302,5]]},"91":{"position":[[2520,5],[8212,5],[8355,5]]},"93":{"position":[[1285,5],[2426,5]]},"183":{"position":[[158,5]]},"270":{"position":[[58,5]]}}}],["map(",{"_index":757,"t":{"93":{"position":[[1985,7]]}}}],["map.easeto",{"_index":1473,"t":{"266":{"position":[[722,12]]},"268":{"position":[[790,12]]}}}],["map.flyto",{"_index":83,"t":{"4":{"position":[[390,11]]},"266":{"position":[[739,11]]},"268":{"position":[[807,11]]}}}],["map.flyto({cent",{"_index":1128,"t":{"181":{"position":[[295,18],[590,18]]}}}],["map.getsourc",{"_index":904,"t":{"133":{"position":[[79,13]]}}}],["map.project",{"_index":1035,"t":{"158":{"position":[[118,13]]}}}],["map.setmaxzoom",{"_index":169,"t":{"6":{"position":[[426,14]]}}}],["map.tsx",{"_index":361,"t":{"51":{"position":[[4,7]]},"97":{"position":[[0,7]]},"185":{"position":[[4,7]]}}}],["mapbox",{"_index":9,"t":{"2":{"position":[[94,6],[174,6],[215,6],[229,6],[269,6],[341,6],[367,6],[381,6],[419,6],[484,6],[566,6],[596,6],[662,6]]},"4":{"position":[[67,6],[299,6],[1212,6],[1333,6]]},"6":{"position":[[86,6]]},"8":{"position":[[71,7],[92,6]]},"13":{"position":[[155,7]]},"17":{"position":[[69,7],[90,6]]},"24":{"position":[[153,7]]},"26":{"position":[[131,6],[298,7]]},"30":{"position":[[62,6],[269,9],[806,9]]},"32":{"position":[[65,6]]},"36":{"position":[[519,6]]},"40":{"position":[[70,7],[91,6]]},"53":{"position":[[59,7],[80,6]]},"56":{"position":[[666,7]]},"60":{"position":[[143,7]]},"62":{"position":[[121,6],[284,7]]},"66":{"position":[[58,7],[79,6]]},"73":{"position":[[142,7]]},"75":{"position":[[120,6],[271,7]]},"79":{"position":[[56,7],[128,6]]},"81":{"position":[[106,7]]},"85":{"position":[[308,6],[394,6]]},"89":{"position":[[99,7],[246,7],[378,7],[569,7],[684,7],[884,7],[1301,7]]},"93":{"position":[[61,7],[649,7],[1218,6],[2806,6],[3004,6],[3073,6]]},"95":{"position":[[70,6],[848,7],[1274,7]]},"99":{"position":[[70,7],[91,6]]},"104":{"position":[[154,7]]},"114":{"position":[[65,7],[86,6]]},"127":{"position":[[38,6],[404,6],[504,6],[619,6],[715,6],[817,6],[923,6],[1019,6],[1119,6],[1219,6],[1313,6],[1420,6],[1523,6],[1626,6],[1731,6],[1833,6],[1942,6]]},"133":{"position":[[93,7],[176,7],[253,7],[330,7],[508,6],[556,7]]},"135":{"position":[[85,7],[209,7],[445,7],[627,7],[917,7],[1129,7],[1285,7],[1405,7],[1660,7],[1771,7],[1816,7],[1933,7],[2170,7],[2520,7],[2622,7],[2766,7]]},"156":{"position":[[24,6],[810,6]]},"162":{"position":[[77,6],[127,6],[182,6],[212,6],[237,6],[278,6],[422,6],[576,6],[618,6],[641,6],[1240,6]]},"164":{"position":[[52,6],[188,6],[239,6],[455,7],[487,6],[626,6],[917,6]]},"166":{"position":[[108,6]]},"168":{"position":[[65,6]]},"173":{"position":[[58,6],[106,6]]},"175":{"position":[[0,6],[325,6],[371,6]]},"177":{"position":[[227,6],[380,6],[416,6],[436,6],[734,6],[765,7]]},"179":{"position":[[35,6],[191,6],[277,6]]},"181":{"position":[[81,6],[817,6]]},"188":{"position":[[8,6],[82,6]]},"190":{"position":[[717,6]]},"197":{"position":[[76,6],[333,6]]},"199":{"position":[[430,6],[691,6],[707,6]]},"207":{"position":[[29,6],[93,6],[173,6]]},"215":{"position":[[89,6]]},"219":{"position":[[70,6],[311,6],[433,6],[483,6]]},"223":{"position":[[108,6]]},"235":{"position":[[162,6],[243,6],[458,6],[544,6]]},"239":{"position":[[259,6],[342,6]]},"243":{"position":[[7,6],[27,6],[337,6]]},"245":{"position":[[316,6]]},"253":{"position":[[7,6],[23,6]]},"255":{"position":[[66,6]]},"260":{"position":[[44,6],[501,6],[736,6],[980,6],[1121,6],[1189,6]]},"262":{"position":[[647,7]]},"264":{"position":[[4,6],[164,6]]},"270":{"position":[[137,6]]},"274":{"position":[[8,6],[126,6]]},"278":{"position":[[11,6]]},"282":{"position":[[152,6]]},"286":{"position":[[188,6]]},"292":{"position":[[199,6]]},"296":{"position":[[248,6]]}}}],["mapbox'",{"_index":45,"t":{"2":{"position":[[815,8]]},"93":{"position":[[2055,8]]},"162":{"position":[[525,8]]},"219":{"position":[[125,8],[389,8]]},"227":{"position":[[322,8]]},"235":{"position":[[43,8]]}}}],["mapbox/mapbox",{"_index":825,"t":{"108":{"position":[[101,15]]}}}],["mapbox://styles/mapbox/light",{"_index":1478,"t":{"268":{"position":[[311,29]]}}}],["mapboxaccesstoken",{"_index":735,"t":{"93":{"position":[[1166,18]]},"162":{"position":[[946,17],[998,17]]},"268":{"position":[[105,17]]}}}],["mapboxaccesstoken=\"gotoggl",{"_index":429,"t":{"62":{"position":[[646,28],[1223,28]]}}}],["onclickfeatures((tru",{"_index":437,"t":{"66":{"position":[[251,24],[747,24]]}}}],["usual",{"_index":634,"t":{"91":{"position":[[823,8],[1101,8],[1382,8],[1636,8],[1859,8],[2272,8],[2491,8],[2610,8],[2916,8]]}}}],["util",{"_index":1012,"t":{"151":{"position":[[331,8]]},"264":{"position":[[331,7]]},"288":{"position":[[14,7]]}}}],["v0.31.0",{"_index":1434,"t":{"253":{"position":[[36,7]]}}}],["v0.38.0",{"_index":1522,"t":{"282":{"position":[[165,7]]}}}],["v0.40.1",{"_index":1403,"t":{"239":{"position":[[269,7]]}}}],["v0.6",{"_index":1560,"t":{"294":{"position":[[266,4]]}}}],["v1",{"_index":17,"t":{"2":{"position":[[184,3],[242,2]]},"260":{"position":[[1131,3]]},"264":{"position":[[171,3]]},"292":{"position":[[26,3],[61,2]]}}}],["v1.0",{"_index":1334,"t":{"219":{"position":[[83,5]]},"294":{"position":[[210,4]]}}}],["v2",{"_index":26,"t":{"2":{"position":[[394,2]]},"260":{"position":[[1138,4]]},"264":{"position":[[175,2]]},"274":{"position":[[136,2]]},"284":{"position":[[202,2]]},"292":{"position":[[0,2]]}}}],["v2.0",{"_index":1075,"t":{"164":{"position":[[198,4]]},"190":{"position":[[711,5]]},"207":{"position":[[56,5]]}}}],["v3",{"_index":1518,"t":{"280":{"position":[[0,2]]},"284":{"position":[[21,2]]}}}],["v4",{"_index":1555,"t":{"292":{"position":[[136,2],[256,3]]}}}],["v5",{"_index":1272,"t":{"199":{"position":[[109,2],[906,2]]},"262":{"position":[[366,2]]}}}],["v6",{"_index":1273,"t":{"199":{"position":[[116,2],[913,3]]},"262":{"position":[[373,3]]}}}],["v6.4.0",{"_index":1520,"t":{"282":{"position":[[62,9]]}}}],["v7",{"_index":1268,"t":{"199":{"position":[[26,2]]},"262":{"position":[[0,2],[558,3]]}}}],["v7.0",{"_index":147,"t":{"6":{"position":[[3,5]]},"266":{"position":[[180,4]]}}}],["v7.0.tsx",{"_index":1443,"t":{"260":{"position":[[273,8]]}}}],["v7.1.tsx",{"_index":1447,"t":{"260":{"position":[[526,8]]}}}],["v9",{"_index":208,"t":{"8":{"position":[[370,3]]},"17":{"position":[[366,3]]},"30":{"position":[[556,3]]},"40":{"position":[[368,3]]},"53":{"position":[[346,3]]},"66":{"position":[[435,3]]},"79":{"position":[[431,3]]},"99":{"position":[[368,3]]},"108":{"position":[[477,3]]},"114":{"position":[[358,3]]},"166":{"position":[[745,3]]},"175":{"position":[[303,3]]},"190":{"position":[[440,3],[1036,3]]},"192":{"position":[[654,3],[1361,3],[1909,3]]},"268":{"position":[[341,3]]},"298":{"position":[[260,3]]},"300":{"position":[[351,3]]},"302":{"position":[[999,3]]}}}],["valid",{"_index":1507,"t":{"274":{"position":[[2,5]]}}}],["valu",{"_index":174,"t":{"6":{"position":[[510,5]]},"56":{"position":[[586,5],[910,5]]},"81":{"position":[[253,7]]},"89":{"position":[[518,5],[830,5],[1028,5],[1242,5]]},"93":{"position":[[466,5]]},"183":{"position":[[175,6]]},"268":{"position":[[288,5]]},"274":{"position":[[60,5]]},"284":{"position":[[732,6]]}}}],["value=\"map",{"_index":1198,"t":{"190":{"position":[[310,11],[381,12],[967,12]]}}}],["value=\"t",{"_index":1200,"t":{"190":{"position":[[343,13],[501,14]]}}}],["value={selectedtab",{"_index":1194,"t":{"190":{"position":[[235,20]]}}}],["variabl",{"_index":1070,"t":{"162":{"position":[[1028,8],[1191,8]]},"188":{"position":[[434,8],[734,9],[1878,8]]}}}],["vector",{"_index":877,"t":{"127":{"position":[[1700,6]]},"133":{"position":[[492,6],[515,6]]},"164":{"position":[[666,6],[924,6]]}}}],["vectorsourceraw",{"_index":876,"t":{"127":{"position":[[1654,16]]}}}],["vectortilesourc",{"_index":911,"t":{"133":{"position":[[454,17],[539,16]]}}}],["vehicl",{"_index":1219,"t":{"192":{"position":[[380,8],[793,7],[1228,7],[1262,12],[1794,9],[1810,12],[2023,8]]}}}],["vehicles.map(vehicl",{"_index":1228,"t":{"192":{"position":[[662,21],[1098,20],[1738,20]]}}}],["vehiclesgeojson",{"_index":1241,"t":{"192":{"position":[[1658,15]]}}}],["veri",{"_index":1212,"t":{"192":{"position":[[112,4]]},"296":{"position":[[226,4]]}}}],["version",{"_index":3,"t":{"2":{"position":[[37,8],[258,7],[288,7],[408,7],[443,7]]},"93":{"position":[[918,7]]},"145":{"position":[[34,10]]},"162":{"position":[[140,7]]},"164":{"position":[[350,7]]},"177":{"position":[[387,7],[589,7]]},"197":{"position":[[102,7]]},"207":{"position":[[242,8]]},"219":{"position":[[103,8]]},"257":{"position":[[15,7]]},"260":{"position":[[949,7],[1096,7]]},"262":{"position":[[511,8]]},"272":{"position":[[261,9]]},"282":{"position":[[9,7]]},"290":{"position":[[191,7]]},"292":{"position":[[125,7],[160,7]]}}}],["version'",{"_index":1451,"t":{"260":{"position":[[831,9]]}}}],["via",{"_index":165,"t":{"6":{"position":[[318,3]]},"26":{"position":[[62,3]]},"62":{"position":[[52,3]]},"69":{"position":[[227,3]]},"75":{"position":[[51,3]]},"95":{"position":[[34,3],[1227,3]]},"151":{"position":[[281,3]]},"197":{"position":[[494,3]]},"255":{"position":[[345,3]]},"272":{"position":[[501,3]]},"294":{"position":[[174,3]]},"296":{"position":[[344,3]]}}}],["video",{"_index":874,"t":{"127":{"position":[[1493,5]]},"133":{"position":[[230,6]]}}}],["videosourc",{"_index":906,"t":{"133":{"position":[[197,12],[241,11]]}}}],["videosourceraw",{"_index":873,"t":{"127":{"position":[[1448,15]]}}}],["view",{"_index":538,"t":{"87":{"position":[[38,4]]},"91":{"position":[[4714,4],[4835,4],[4925,4],[5110,4],[5304,4]]},"135":{"position":[[969,4]]},"219":{"position":[[193,6]]},"296":{"position":[[80,4],[186,4],[309,4],[393,4]]},"302":{"position":[[778,4]]}}}],["viewport",{"_index":388,"t":{"56":{"position":[[414,10],[498,8],[545,9],[977,10],[1110,8],[1164,9],[1223,9]]},"87":{"position":[[1407,9]]},"211":{"position":[[172,8]]},"215":{"position":[[107,8]]},"235":{"position":[[0,8]]},"243":{"position":[[394,8]]},"245":{"position":[[342,8]]},"264":{"position":[[191,8],[343,8]]},"284":{"position":[[286,8],[411,8],[606,10],[661,13],[742,10],[765,13]]},"286":{"position":[[577,9]]},"288":{"position":[[136,9],[171,8]]}}}],["viewport.fitbound",{"_index":1538,"t":{"288":{"position":[[248,19]]}}}],["viewstat",{"_index":902,"t":{"131":{"position":[[680,10]]},"135":{"position":[[937,10],[948,9]]},"192":{"position":[[318,9],[582,14],[1289,14],[1837,14]]},"231":{"position":[[4,9],[224,9]]},"300":{"position":[[149,11],[251,14]]},"302":{"position":[[556,11],[927,14]]}}}],["viewstate.latitud",{"_index":1592,"t":{"302":{"position":[[738,20]]}}}],["viewstate.longitud",{"_index":1591,"t":{"302":{"position":[[716,21]]}}}],["viewstatechangeev",{"_index":672,"t":{"91":{"position":[[4627,21],[4747,21],[5215,21],[5342,21],[5437,21],[5541,21],[5639,21],[5765,21],[6165,21],[6300,21],[6436,21],[6852,21],[6994,21],[7123,21],[7528,21]]},"135":{"position":[[820,21]]}}}],["virtual",{"_index":1497,"t":{"272":{"position":[[114,11]]}}}],["vis.gl",{"_index":989,"t":{"147":{"position":[[0,6]]},"149":{"position":[[44,6]]},"151":{"position":[[228,6]]},"160":{"position":[[157,6]]}}}],["visibl",{"_index":599,"t":{"89":{"position":[[1509,7]]},"91":{"position":[[1663,7],[2299,7]]},"192":{"position":[[1012,8]]},"194":{"position":[[73,7]]},"268":{"position":[[444,7]]}}}],["visit",{"_index":1295,"t":{"199":{"position":[[848,5]]}}}],["visitor",{"_index":1145,"t":{"188":{"position":[[168,7]]}}}],["visual",{"_index":60,"t":{"4":{"position":[[41,13],[177,14]]},"91":{"position":[[182,8]]},"160":{"position":[[42,13],[104,13],[208,13],[283,13],[365,13]]}}}],["visual/interact",{"_index":981,"t":{"143":{"position":[[501,18]]}}}],["visualizepitch",{"_index":820,"t":{"104":{"position":[[204,14]]}}}],["vnext",{"_index":980,"t":{"143":{"position":[[423,7]]}}}],["void",{"_index":241,"t":{"22":{"position":[[44,5],[162,5],[291,5],[463,5],[585,5]]},"58":{"position":[[28,5],[111,5],[202,5],[290,5]]},"71":{"position":[[29,5],[98,5]]},"91":{"position":[[31,5],[104,5],[267,5],[351,5],[591,5],[667,5],[787,5],[1065,5],[1346,5],[1600,5],[1823,5],[2236,5],[2458,5],[2574,5],[2880,5],[3215,5],[3515,5],[3615,5],[3873,5],[4130,5],[4390,5],[4652,5],[4772,5],[5240,5],[5367,5],[5462,5],[5566,5],[5664,5],[5790,5],[6190,5],[6325,5],[6461,5],[6877,5],[7019,5],[7148,5],[7553,5],[7686,5],[7779,5],[7872,5],[8059,5],[8190,5],[8326,5]]},"110":{"position":[[272,5],[458,5],[511,5],[831,4],[936,4]]},"135":{"position":[[306,4],[514,4],[758,4]]}}}],["wait",{"_index":1353,"t":{"219":{"position":[[621,7]]}}}],["want",{"_index":53,"t":{"2":{"position":[[953,4]]},"49":{"position":[[158,4]]},"194":{"position":[[36,4]]}}}],["warn",{"_index":1404,"t":{"239":{"position":[[286,8]]},"247":{"position":[[99,8]]},"290":{"position":[[116,7]]}}}],["way",{"_index":1067,"t":{"162":{"position":[[854,4]]},"192":{"position":[[1025,3]]},"296":{"position":[[14,4]]}}}],["web",{"_index":64,"t":{"4":{"position":[[116,3]]},"91":{"position":[[1457,3]]},"93":{"position":[[2964,3]]},"160":{"position":[[236,4]]}}}],["webgl",{"_index":105,"t":{"4":{"position":[[734,5]]},"160":{"position":[[251,5]]},"192":{"position":[[1603,5]]}}}],["webmercatorviewport",{"_index":1323,"t":{"211":{"position":[[128,19]]},"288":{"position":[[111,19],[373,19]]}}}],["webmercatorviewport({width",{"_index":1537,"t":{"288":{"position":[[186,27]]}}}],["webpack",{"_index":778,"t":{"93":{"position":[[2777,7]]},"177":{"position":[[702,7]]},"188":{"position":[[1123,7]]}}}],["webpack.config.j",{"_index":1172,"t":{"188":{"position":[[1142,17]]}}}],["websit",{"_index":1062,"t":{"162":{"position":[[690,8]]}}}],["webwork",{"_index":782,"t":{"93":{"position":[[2818,9],[3085,9]]}}}],["welcom",{"_index":943,"t":{"137":{"position":[[66,8]]}}}],["well",{"_index":122,"t":{"4":{"position":[[1060,4]]},"160":{"position":[[461,4]]}}}],["west",{"_index":894,"t":{"131":{"position":[[344,6]]}}}],["what'",{"_index":1526,"t":{"284":{"position":[[592,6]]}}}],["wheel",{"_index":661,"t":{"91":{"position":[[3535,5]]},"203":{"position":[[112,5]]}}}],["wheelev",{"_index":918,"t":{"135":{"position":[[481,10]]}}}],["whenev",{"_index":615,"t":{"91":{"position":[[280,8]]},"143":{"position":[[77,8]]},"158":{"position":[[78,8]]},"294":{"position":[[826,8]]}}}],["wherein",{"_index":797,"t":{"93":{"position":[[3225,7]]}}}],["wherev",{"_index":152,"t":{"6":{"position":[[108,8]]},"199":{"position":[[496,8]]}}}],["whether",{"_index":1058,"t":{"162":{"position":[[380,7]]}}}],["width",{"_index":461,"t":{"69":{"position":[[895,6]]},"83":{"position":[[84,6]]},"227":{"position":[[94,5]]},"243":{"position":[[409,6]]},"245":{"position":[[370,6]]},"268":{"position":[[431,5]]},"284":{"position":[[263,5],[358,5],[425,5],[543,7],[687,7]]}}}],["width={500",{"_index":1528,"t":{"284":{"position":[[636,11],[779,11]]}}}],["winkel",{"_index":519,"t":{"85":{"position":[[767,6]]}}}],["winkeltripel",{"_index":521,"t":{"85":{"position":[[781,17]]}}}],["within",{"_index":446,"t":{"69":{"position":[[326,6]]},"89":{"position":[[1500,6]]},"91":{"position":[[852,6],[1131,6],[1409,6],[2020,6],[3309,6],[3554,6],[3659,6],[3915,6],[4173,6],[4435,6]]}}}],["without",{"_index":19,"t":{"2":{"position":[[205,7],[357,7]]},"95":{"position":[[890,7]]},"162":{"position":[[566,7]]},"164":{"position":[[40,7]]},"192":{"position":[[1493,7]]},"199":{"position":[[596,7]]},"219":{"position":[[613,7]]}}}],["work",{"_index":1107,"t":{"177":{"position":[[159,4]]},"235":{"position":[[444,4]]},"247":{"position":[[79,4]]},"262":{"position":[[547,5]]},"290":{"position":[[97,4]]},"296":{"position":[[220,5]]}}}],["worker",{"_index":789,"t":{"93":{"position":[[2968,7]]}}}],["workerclass",{"_index":775,"t":{"93":{"position":[[2683,12]]}}}],["workercount",{"_index":788,"t":{"93":{"position":[[2918,12]]}}}],["workerurl",{"_index":787,"t":{"93":{"position":[[2907,10],[3020,10]]}}}],["world",{"_index":421,"t":{"62":{"position":[[428,9],[1005,9]]},"85":{"position":[[1072,5]]},"300":{"position":[[368,5]]}}}],["wrap",{"_index":188,"t":{"8":{"position":[[21,5]]},"17":{"position":[[21,5]]},"36":{"position":[[749,7]]},"40":{"position":[[21,5]]},"49":{"position":[[126,4]]},"53":{"position":[[21,5]]},"66":{"position":[[21,5]]},"79":{"position":[[21,5]]},"99":{"position":[[21,5]]},"114":{"position":[[21,5]]},"262":{"position":[[147,7]]},"268":{"position":[[60,7]]}}}],["wrapper",{"_index":135,"t":{"4":{"position":[[1321,7]]},"108":{"position":[[44,8]]},"162":{"position":[[65,7]]},"245":{"position":[[51,7],[301,7]]}}}],["wrapper'",{"_index":156,"t":{"6":{"position":[[158,9]]}}}],["written",{"_index":772,"t":{"93":{"position":[[2517,7]]},"199":{"position":[[794,7]]}}}],["x",{"_index":898,"t":{"131":{"position":[[469,1]]}}}],["xia",{"_index":1003,"t":{"151":{"position":[[20,3]]}}}],["xiaoji",{"_index":1000,"t":{"151":{"position":[[0,6]]}}}],["xintong",{"_index":1002,"t":{"151":{"position":[[12,7]]}}}],["y",{"_index":899,"t":{"131":{"position":[[475,1]]}}}],["yarn",{"_index":950,"t":{"139":{"position":[[127,4],[180,4],[195,4],[213,4],[239,4],[314,4]]},"143":{"position":[[6,4]]},"177":{"position":[[406,4],[608,4]]}}}],["you'll",{"_index":1546,"t":{"290":{"position":[[102,7]]}}}],["yourauthtoken",{"_index":1093,"t":{"164":{"position":[[1324,13]]}}}],["zoom",{"_index":205,"t":{"8":{"position":[[316,5],[683,5]]},"17":{"position":[[312,5],[576,5]]},"30":{"position":[[503,5],[998,5]]},"40":{"position":[[314,5],[580,5]]},"53":{"position":[[292,5],[616,5]]},"66":{"position":[[381,5],[835,5]]},"79":{"position":[[344,5],[610,5]]},"85":{"position":[[1101,6]]},"87":{"position":[[96,4],[383,4],[782,5],[809,4],[1070,5],[1088,4],[1457,4],[1528,4]]},"89":{"position":[[50,5],[189,5],[773,5],[1185,5]]},"91":{"position":[[5149,4],[5726,4],[5853,4],[5954,4],[6135,4],[6254,4],[6636,4],[7315,4],[7711,5],[7804,5],[7914,5]]},"99":{"position":[[314,5],[580,5]]},"108":{"position":[[422,5]]},"114":{"position":[[304,5],[560,5]]},"131":{"position":[[832,5],[851,4]]},"156":{"position":[[627,5]]},"166":{"position":[[692,5],[1406,5]]},"175":{"position":[[216,5],[552,5]]},"231":{"position":[[100,5]]},"235":{"position":[[293,7]]},"243":{"position":[[125,4],[423,4]]},"288":{"position":[[458,5]]},"294":{"position":[[969,6]]},"298":{"position":[[206,5]]},"300":{"position":[[225,5]]},"302":{"position":[[632,5]]}}}]],"pipeline":["stemmer"]}}] \ No newline at end of file diff --git a/search.html b/search.html deleted file mode 100644 index 8f3110ba..00000000 --- a/search.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - -Search the documentation - - - - - - - - - \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 08c13e59..b2b7ecfc 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://visgl.github.io/react-map-gl/searchweekly0.5https://visgl.github.io/react-map-gl/docsweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/attribution-controlweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/fullscreen-controlweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/geolocate-controlweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/layerweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/mapweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/map-providerweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/markerweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/navigation-controlweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/popupweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/scale-controlweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/sourceweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/typesweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/use-controlweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/use-mapweekly0.5https://visgl.github.io/react-map-gl/docs/contributingweekly0.5https://visgl.github.io/react-map-gl/docs/get-startedweekly0.5https://visgl.github.io/react-map-gl/docs/get-started/adding-custom-dataweekly0.5https://visgl.github.io/react-map-gl/docs/get-started/mapbox-tokensweekly0.5https://visgl.github.io/react-map-gl/docs/get-started/state-managementweekly0.5https://visgl.github.io/react-map-gl/docs/get-started/tips-and-tricksweekly0.5https://visgl.github.io/react-map-gl/docs/upgrade-guideweekly0.5https://visgl.github.io/react-map-gl/docs/whats-newweekly0.5https://visgl.github.io/react-map-gl/examplesweekly0.5https://visgl.github.io/react-map-gl/examples/clustersweekly0.5https://visgl.github.io/react-map-gl/examples/controlsweekly0.5https://visgl.github.io/react-map-gl/examples/custom-cursorweekly0.5https://visgl.github.io/react-map-gl/examples/draggable-markersweekly0.5https://visgl.github.io/react-map-gl/examples/draw-polygonweekly0.5https://visgl.github.io/react-map-gl/examples/filterweekly0.5https://visgl.github.io/react-map-gl/examples/geocoderweekly0.5https://visgl.github.io/react-map-gl/examples/geojsonweekly0.5https://visgl.github.io/react-map-gl/examples/geojson-animationweekly0.5https://visgl.github.io/react-map-gl/examples/heatmapweekly0.5https://visgl.github.io/react-map-gl/examples/interactionweekly0.5https://visgl.github.io/react-map-gl/examples/layersweekly0.5https://visgl.github.io/react-map-gl/examples/side-by-sideweekly0.5https://visgl.github.io/react-map-gl/examples/terrainweekly0.5https://visgl.github.io/react-map-gl/examples/viewport-animationweekly0.5https://visgl.github.io/react-map-gl/examples/zoom-to-boundsweekly0.5https://visgl.github.io/react-map-gl/weekly0.5 \ No newline at end of file +https://visgl.github.io/react-map-gl/docsweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/mapbox/attribution-controlweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/mapbox/fullscreen-controlweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/mapbox/geolocate-controlweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/mapbox/layerweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/mapbox/mapweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/mapbox/map-providerweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/mapbox/markerweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/mapbox/navigation-controlweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/mapbox/popupweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/mapbox/scale-controlweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/mapbox/sourceweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/mapbox/typesweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/mapbox/use-controlweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/mapbox/use-mapweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/maplibre/attribution-controlweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/maplibre/fullscreen-controlweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/maplibre/geolocate-controlweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/maplibre/layerweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/maplibre/logo-controlweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/maplibre/mapweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/maplibre/map-providerweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/maplibre/markerweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/maplibre/navigation-controlweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/maplibre/popupweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/maplibre/scale-controlweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/maplibre/sourceweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/maplibre/terrain-controlweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/maplibre/typesweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/maplibre/use-controlweekly0.5https://visgl.github.io/react-map-gl/docs/api-reference/maplibre/use-mapweekly0.5https://visgl.github.io/react-map-gl/docs/contributingweekly0.5https://visgl.github.io/react-map-gl/docs/get-startedweekly0.5https://visgl.github.io/react-map-gl/docs/get-started/adding-custom-dataweekly0.5https://visgl.github.io/react-map-gl/docs/get-started/mapbox-tokensweekly0.5https://visgl.github.io/react-map-gl/docs/get-started/state-managementweekly0.5https://visgl.github.io/react-map-gl/docs/get-started/tips-and-tricksweekly0.5https://visgl.github.io/react-map-gl/docs/upgrade-guideweekly0.5https://visgl.github.io/react-map-gl/docs/whats-newweekly0.5https://visgl.github.io/react-map-gl/examplesweekly0.5https://visgl.github.io/react-map-gl/examples/mapbox/clustersweekly0.5https://visgl.github.io/react-map-gl/examples/mapbox/controlsweekly0.5https://visgl.github.io/react-map-gl/examples/mapbox/custom-cursorweekly0.5https://visgl.github.io/react-map-gl/examples/mapbox/draggable-markersweekly0.5https://visgl.github.io/react-map-gl/examples/mapbox/draw-polygonweekly0.5https://visgl.github.io/react-map-gl/examples/mapbox/filterweekly0.5https://visgl.github.io/react-map-gl/examples/mapbox/geocoderweekly0.5https://visgl.github.io/react-map-gl/examples/mapbox/geojsonweekly0.5https://visgl.github.io/react-map-gl/examples/mapbox/geojson-animationweekly0.5https://visgl.github.io/react-map-gl/examples/mapbox/heatmapweekly0.5https://visgl.github.io/react-map-gl/examples/mapbox/interactionweekly0.5https://visgl.github.io/react-map-gl/examples/mapbox/layersweekly0.5https://visgl.github.io/react-map-gl/examples/mapbox/side-by-sideweekly0.5https://visgl.github.io/react-map-gl/examples/mapbox/terrainweekly0.5https://visgl.github.io/react-map-gl/examples/mapbox/viewport-animationweekly0.5https://visgl.github.io/react-map-gl/examples/mapbox/zoom-to-boundsweekly0.5https://visgl.github.io/react-map-gl/examples/maplibre/clustersweekly0.5https://visgl.github.io/react-map-gl/examples/maplibre/controlsweekly0.5https://visgl.github.io/react-map-gl/examples/maplibre/custom-cursorweekly0.5https://visgl.github.io/react-map-gl/examples/maplibre/draggable-markersweekly0.5https://visgl.github.io/react-map-gl/examples/maplibre/draw-polygonweekly0.5https://visgl.github.io/react-map-gl/examples/maplibre/filterweekly0.5https://visgl.github.io/react-map-gl/examples/maplibre/geocoderweekly0.5https://visgl.github.io/react-map-gl/examples/maplibre/geojsonweekly0.5https://visgl.github.io/react-map-gl/examples/maplibre/geojson-animationweekly0.5https://visgl.github.io/react-map-gl/examples/maplibre/heatmapweekly0.5https://visgl.github.io/react-map-gl/examples/maplibre/interactionweekly0.5https://visgl.github.io/react-map-gl/examples/maplibre/layersweekly0.5https://visgl.github.io/react-map-gl/examples/maplibre/side-by-sideweekly0.5https://visgl.github.io/react-map-gl/examples/maplibre/terrainweekly0.5https://visgl.github.io/react-map-gl/examples/maplibre/viewport-animationweekly0.5https://visgl.github.io/react-map-gl/examples/maplibre/zoom-to-boundsweekly0.5https://visgl.github.io/react-map-gl/weekly0.5 \ No newline at end of file diff --git a/visgl-logo-dark.png b/visgl-logo-dark.png new file mode 100644 index 00000000..bf29c4ba Binary files /dev/null and b/visgl-logo-dark.png differ diff --git a/visgl-logo-light.png b/visgl-logo-light.png new file mode 100644 index 00000000..f719e13d Binary files /dev/null and b/visgl-logo-light.png differ