From 6bab2fc6e5d8e93e05a9cf01bb9f82895790f865 Mon Sep 17 00:00:00 2001 From: STAC Browser CI Date: Mon, 2 Oct 2023 16:44:47 +0000 Subject: [PATCH] deploy: 38e8cebe3ed5782dea71269a59053e17954fff14 --- css/{app.d990f3f0.css => app.9dc4c14f.css} | 2 +- index.html | 2 +- js/{app.de8eacc9.js => app.f8e1cff5.js} | 4 ++-- js/{app.de8eacc9.js.map => app.f8e1cff5.js.map} | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) rename css/{app.d990f3f0.css => app.9dc4c14f.css} (99%) rename js/{app.de8eacc9.js => app.f8e1cff5.js} (99%) rename js/{app.de8eacc9.js.map => app.f8e1cff5.js.map} (99%) diff --git a/css/app.d990f3f0.css b/css/app.9dc4c14f.css similarity index 99% rename from css/app.d990f3f0.css rename to css/app.9dc4c14f.css index e93102a21..536647e44 100644 --- a/css/app.d990f3f0.css +++ b/css/app.9dc4c14f.css @@ -1,4 +1,4 @@ -.alert[data-v-09bb7d1b]{margin-bottom:0}.message[data-v-09bb7d1b]{font-weight:700}.message[data-v-09bb7d1b]:last-child{margin-bottom:0}dl[data-v-09bb7d1b]{font-size:.9em}.loading[data-v-67931bb8]{text-align:center;box-sizing:border-box}.loading.loading-stretch[data-v-67931bb8]{flex-grow:1;display:flex;justify-content:center;align-items:center}.loading.loading-fill[data-v-67931bb8]{z-index:2000;position:absolute;background-color:hsla(0,0%,100%,.75);width:100%;height:100%;top:0;left:0;border-radius:.25rem;display:flex;justify-content:center;align-items:center}.loading.top[data-v-67931bb8]{align-items:start!important;padding-top:1em}.loading.top>.spinner-border[data-v-67931bb8]{position:sticky;top:1em}#stac-browser .styled-description{line-height:1.4em}#stac-browser .styled-description h1,#stac-browser .styled-description h2,#stac-browser .styled-description h3,#stac-browser .styled-description h4,#stac-browser .styled-description h5,#stac-browser .styled-description h6{color:#6c757d;font-weight:600}#stac-browser .styled-description h1{font-size:1.5rem}#stac-browser .styled-description h2{font-size:1.4rem}#stac-browser .styled-description h3{font-size:1.3rem}#stac-browser .styled-description h4{font-size:1.2rem}#stac-browser .styled-description h5{font-size:1.1rem}#stac-browser .styled-description h6{font-size:1rem}#stac-browser .styled-description pre{background-color:#eee;width:100%;border:1px solid #ccc;max-height:15em;overflow-y:auto}#stac-browser .styled-description pre code{background-color:transparent;display:block;margin:.5em}#stac-browser .styled-description code{color:maroon;display:inline-block;padding:0 .1em}#stac-browser .styled-description.compact h1,#stac-browser .styled-description.compact h2,#stac-browser .styled-description.compact h3,#stac-browser .styled-description.compact h4,#stac-browser .styled-description.compact h5,#stac-browser .styled-description.compact h6{font-weight:700;font-size:1.1em;margin:.5em 0}#stac-browser .styled-description.compact p{margin:.5em 0}#stac-browser .styled-description.compact p:first-child{margin-top:0}#stac-browser .styled-description.compact p:last-child{margin-bottom:0}#stac-browser .styled-description.compact pre{max-height:7em;width:auto;max-width:100%}#stac-browser .styled-description.inline,#stac-browser .styled-description.inline code,#stac-browser .styled-description.inline h1,#stac-browser .styled-description.inline h2,#stac-browser .styled-description.inline h3,#stac-browser .styled-description.inline h4,#stac-browser .styled-description.inline h5,#stac-browser .styled-description.inline h6,#stac-browser .styled-description.inline p,#stac-browser .styled-description.inline pre{display:inline}#stac-browser .item .left,#stac-browser .item .right{max-width:50%}@media(max-width:767.98px){#stac-browser .item .left,#stac-browser .item .right{max-width:100%;min-width:100%}}#stac-browser .item .card-columns .thumbnail{align-self:center}#stac-browser .item .metadata .card-columns{-moz-column-count:1;column-count:1}@media(min-width:2500px){#stac-browser .item .metadata .card-columns:not(.count-1){-moz-column-count:2;column-count:2}}#stac-browser .catalog-card.deprecated{opacity:.5}#stac-browser .catalog-card.deprecated:hover{opacity:1}#stac-browser .catalog-card .card-body,#stac-browser .catalog-card .card-footer{position:relative}#stac-browser .catalog-card .card-footer:empty{display:none}#stac-browser .catalog-card .card-title{margin-bottom:.5rem}#stac-browser .catalog-card .intro{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;text-align:left}#stac-browser .catalog-card.has-extent .intro{margin-bottom:.5rem}#stac-browser .catalog-card .datetime{color:#6c757d}#stac-browser .catalog-card .badge.deprecated{text-transform:uppercase}#stac-browser .card-list .catalog-card{box-sizing:border-box;margin:.5em 0;display:flex}#stac-browser .card-list .catalog-card .card-img-right{min-height:100px;height:100%;max-height:8.5rem;max-width:33%;-o-object-fit:contain;object-fit:contain;-o-object-position:right;object-position:right}#stac-browser .card-list .catalog-card .card-footer{min-width:175px;max-width:175px;border-top:0}#stac-browser .card-list .catalog-card .intro{-webkit-line-clamp:2}#stac-browser .card-columns .catalog-card{box-sizing:border-box;margin-top:.5em 0;text-align:center}#stac-browser .card-columns .catalog-card.queued{min-height:10rem}#stac-browser .card-columns .catalog-card .card-img{width:auto;height:auto;max-width:100%;max-height:300px}#stac-browser .card-columns .catalog-card .card-title,#stac-browser .item-card{text-align:center}#stac-browser .item-card.deprecated{opacity:.7}#stac-browser .item-card.deprecated:hover{opacity:1}#stac-browser .item-card.queued{min-height:200px}#stac-browser .item-card .intro{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;margin-bottom:.5rem}#stac-browser .item-card.description .intro{text-align:left;margin-bottom:.5rem}#stac-browser .item-card .badge.deprecated{text-transform:uppercase}#stac-browser .item-card .card-img{width:auto;height:auto;max-width:100%;max-height:200px}#stac-browser .item-card .card-body{text-align:center;position:relative}#stac-browser .cc .catalogs-container,#stac-browser .cc .items-container{max-width:50%}#stac-browser .cc .catalogs-container .card-list,#stac-browser .cc .items-container .card-list{flex-flow:column wrap}#stac-browser .cc .catalogs-container .catalogs .card-columns,#stac-browser .cc .catalogs-container .items .card-columns,#stac-browser .cc .items-container .catalogs .card-columns,#stac-browser .cc .items-container .items .card-columns{-moz-column-count:1;column-count:1}#stac-browser .cc .catalogs-container .catalogs .card-columns .thumbnail,#stac-browser .cc .catalogs-container .items .card-columns .thumbnail,#stac-browser .cc .items-container .catalogs .card-columns .thumbnail,#stac-browser .cc .items-container .items .card-columns .thumbnail{align-self:center}#stac-browser .cc.catalog .catalogs-container,#stac-browser .cc.catalog .items-container{max-width:100%}@media(min-width:576px){#stac-browser .cc.catalog .catalogs-container .catalogs .card-columns,#stac-browser .cc.catalog .catalogs-container .items .card-columns,#stac-browser .cc.catalog .items-container .catalogs .card-columns,#stac-browser .cc.catalog .items-container .items .card-columns{-moz-column-count:2;column-count:2}}@media(min-width:992px){#stac-browser .cc.catalog .catalogs-container .catalogs .card-columns,#stac-browser .cc.catalog .catalogs-container .items .card-columns,#stac-browser .cc.catalog .items-container .catalogs .card-columns,#stac-browser .cc.catalog .items-container .items .card-columns{-moz-column-count:3;column-count:3}}@media(min-width:1600px){#stac-browser .cc.catalog .catalogs-container .catalogs .card-columns,#stac-browser .cc.catalog .catalogs-container .items .card-columns,#stac-browser .cc.catalog .items-container .catalogs .card-columns,#stac-browser .cc.catalog .items-container .items .card-columns{-moz-column-count:4;column-count:4}}@media(min-width:2500px){#stac-browser .cc.catalog .catalogs-container .catalogs .card-columns,#stac-browser .cc.catalog .catalogs-container .items .card-columns,#stac-browser .cc.catalog .items-container .catalogs .card-columns,#stac-browser .cc.catalog .items-container .items .card-columns{-moz-column-count:6;column-count:6}}@media(min-width:768px)and (max-width:991.98px){#stac-browser .cc.collection .catalogs-container .catalogs .card-columns,#stac-browser .cc.collection .catalogs-container .items .card-columns,#stac-browser .cc.collection .items-container .catalogs .card-columns,#stac-browser .cc.collection .items-container .items .card-columns{-moz-column-count:2;column-count:2}}@media(min-width:992px){#stac-browser .cc.collection .catalogs-container .catalogs .card-columns,#stac-browser .cc.collection .catalogs-container .items .card-columns,#stac-browser .cc.collection .items-container .catalogs .card-columns,#stac-browser .cc.collection .items-container .items .card-columns{-moz-column-count:1;column-count:1}}@media(min-width:1600px){#stac-browser .cc.collection .catalogs-container .catalogs .card-columns,#stac-browser .cc.collection .catalogs-container .items .card-columns,#stac-browser .cc.collection .items-container .catalogs .card-columns,#stac-browser .cc.collection .items-container .items .card-columns{-moz-column-count:2;column-count:2}}@media(min-width:2500px){#stac-browser .cc.collection .catalogs-container .catalogs .card-columns,#stac-browser .cc.collection .catalogs-container .items .card-columns,#stac-browser .cc.collection .items-container .catalogs .card-columns,#stac-browser .cc.collection .items-container .items .card-columns{-moz-column-count:3;column-count:3}}@media(min-width:992px){#stac-browser .cc.catalog.mixed .catalogs-container .catalogs .card-columns,#stac-browser .cc.catalog.mixed .catalogs-container .items .card-columns,#stac-browser .cc.catalog.mixed .items-container .catalogs .card-columns,#stac-browser .cc.catalog.mixed .items-container .items .card-columns{-moz-column-count:1;column-count:1}}@media(min-width:1100px){#stac-browser .cc.catalog.mixed .catalogs-container .catalogs .card-columns,#stac-browser .cc.catalog.mixed .catalogs-container .items .card-columns,#stac-browser .cc.catalog.mixed .items-container .catalogs .card-columns,#stac-browser .cc.catalog.mixed .items-container .items .card-columns{-moz-column-count:2;column-count:2}}@media(min-width:1600px){#stac-browser .cc.catalog.mixed .catalogs-container .catalogs .card-columns,#stac-browser .cc.catalog.mixed .catalogs-container .items .card-columns,#stac-browser .cc.catalog.mixed .items-container .catalogs .card-columns,#stac-browser .cc.catalog.mixed .items-container .items .card-columns{-moz-column-count:3;column-count:3}}#stac-browser .cc.collection.mixed .catalogs-container,#stac-browser .cc.collection.mixed .items-container{max-width:33%}@media(min-width:992px){#stac-browser .cc.collection.mixed .catalogs-container .catalogs .card-columns,#stac-browser .cc.collection.mixed .catalogs-container .items .card-columns,#stac-browser .cc.collection.mixed .items-container .catalogs .card-columns,#stac-browser .cc.collection.mixed .items-container .items .card-columns{-moz-column-count:1;column-count:1}}@media(min-width:1600px){#stac-browser .cc.collection.mixed .catalogs-container .catalogs .card-columns,#stac-browser .cc.collection.mixed .catalogs-container .items .card-columns,#stac-browser .cc.collection.mixed .items-container .catalogs .card-columns,#stac-browser .cc.collection.mixed .items-container .items .card-columns{-moz-column-count:2;column-count:2}}@media(min-width:2500px){#stac-browser .cc.collection.mixed .catalogs-container .catalogs .card-columns,#stac-browser .cc.collection.mixed .catalogs-container .items .card-columns,#stac-browser .cc.collection.mixed .items-container .catalogs .card-columns,#stac-browser .cc.collection.mixed .items-container .items .card-columns{-moz-column-count:3;column-count:3}}#stac-browser .cc .meta{min-width:100%;margin-bottom:1rem}#stac-browser .cc.collection .meta{min-width:33%;margin-bottom:0}@media(min-width:992px){#stac-browser .cc.collection.empty .meta{-moz-column-count:2;column-count:2}#stac-browser .cc.collection.empty .meta>section{-moz-column-break-inside:avoid;break-inside:avoid}}@media(min-width:1100px){#stac-browser .cc.catalog .meta{display:flex;flex-direction:row;flex-wrap:wrap;gap:30px}#stac-browser .cc.catalog .meta>section{flex-basis:0;flex-grow:1;max-width:100%;min-width:40%}}@media(max-width:991.98px){#stac-browser .cc>.row>.catalogs-container,#stac-browser .cc>.row>.items-container,#stac-browser .cc>.row>.meta{min-width:100%}#stac-browser .cc>.row>.meta{order:1;margin-bottom:1rem}#stac-browser .cc>.row>.items-container{order:2}#stac-browser .cc>.row>.catalogs-container{order:3}}#stac-browser .cc .metadata .card-columns{-moz-column-count:1;column-count:1}@media(min-width:2500px){#stac-browser .cc .metadata .card-columns:not(.count-1){-moz-column-count:2;column-count:2}}.popover[data-v-74684ede]{width:100%;max-width:800px}#popover-link,#popover-root,#popover-share{width:80%;max-width:800px}#popover-link .popover-body,#popover-root .popover-body,#popover-share .popover-body{overflow-y:auto;overflow-x:hidden;max-height:80vh}#popover-link .stac-id .copy-button{padding-top:.1rem;padding-bottom:.1rem;font-size:.7rem}.lang-item>.dropdown-item[data-v-2542c9fa]{display:flex}.lang-item>.dropdown-item>.title[data-v-2542c9fa]{flex:1}h1[data-v-e9cfbf72]{word-break:break-word} +.alert[data-v-09bb7d1b]{margin-bottom:0}.message[data-v-09bb7d1b]{font-weight:700}.message[data-v-09bb7d1b]:last-child{margin-bottom:0}dl[data-v-09bb7d1b]{font-size:.9em}.loading[data-v-67931bb8]{text-align:center;box-sizing:border-box}.loading.loading-stretch[data-v-67931bb8]{flex-grow:1;display:flex;justify-content:center;align-items:center}.loading.loading-fill[data-v-67931bb8]{z-index:2000;position:absolute;background-color:hsla(0,0%,100%,.75);width:100%;height:100%;top:0;left:0;border-radius:.25rem;display:flex;justify-content:center;align-items:center}.loading.top[data-v-67931bb8]{align-items:start!important;padding-top:1em}.loading.top>.spinner-border[data-v-67931bb8]{position:sticky;top:1em}#stac-browser .styled-description{line-height:1.4em}#stac-browser .styled-description h1,#stac-browser .styled-description h2,#stac-browser .styled-description h3,#stac-browser .styled-description h4,#stac-browser .styled-description h5,#stac-browser .styled-description h6{color:#6c757d;font-weight:600}#stac-browser .styled-description h1{font-size:1.5rem}#stac-browser .styled-description h2{font-size:1.4rem}#stac-browser .styled-description h3{font-size:1.3rem}#stac-browser .styled-description h4{font-size:1.2rem}#stac-browser .styled-description h5{font-size:1.1rem}#stac-browser .styled-description h6{font-size:1rem}#stac-browser .styled-description pre{background-color:#eee;width:100%;border:1px solid #ccc;max-height:15em;overflow-y:auto}#stac-browser .styled-description pre code{background-color:transparent;display:block;margin:.5em}#stac-browser .styled-description code{color:maroon;display:inline-block;padding:0 .1em}#stac-browser .styled-description.compact h1,#stac-browser .styled-description.compact h2,#stac-browser .styled-description.compact h3,#stac-browser .styled-description.compact h4,#stac-browser .styled-description.compact h5,#stac-browser .styled-description.compact h6{font-weight:700;font-size:1.1em;margin:.5em 0}#stac-browser .styled-description.compact p{margin:.5em 0}#stac-browser .styled-description.compact p:first-child{margin-top:0}#stac-browser .styled-description.compact p:last-child{margin-bottom:0}#stac-browser .styled-description.compact pre{max-height:7em;width:auto;max-width:100%}#stac-browser .styled-description.inline,#stac-browser .styled-description.inline code,#stac-browser .styled-description.inline h1,#stac-browser .styled-description.inline h2,#stac-browser .styled-description.inline h3,#stac-browser .styled-description.inline h4,#stac-browser .styled-description.inline h5,#stac-browser .styled-description.inline h6,#stac-browser .styled-description.inline p,#stac-browser .styled-description.inline pre{display:inline}#stac-browser .item .left,#stac-browser .item .right{max-width:50%}@media(max-width:767.98px){#stac-browser .item .left,#stac-browser .item .right{max-width:100%;min-width:100%}}#stac-browser .item .card-columns .thumbnail{align-self:center}#stac-browser .item .metadata .card-columns{-moz-column-count:1;column-count:1}@media(min-width:2500px){#stac-browser .item .metadata .card-columns:not(.count-1){-moz-column-count:2;column-count:2}}#stac-browser .catalog-card.deprecated{opacity:.5}#stac-browser .catalog-card.deprecated:hover{opacity:1}#stac-browser .catalog-card .card-body,#stac-browser .catalog-card .card-footer{position:relative}#stac-browser .catalog-card .card-footer:empty{display:none}#stac-browser .catalog-card .card-title{margin-bottom:.5rem}#stac-browser .catalog-card .intro{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;text-align:left}#stac-browser .catalog-card.has-extent .intro{margin-bottom:.5rem}#stac-browser .catalog-card .datetime{color:#6c757d}#stac-browser .catalog-card .badge.deprecated{text-transform:uppercase}#stac-browser .card-list .catalog-card{box-sizing:border-box;margin:.5em 0;display:flex}#stac-browser .card-list .catalog-card .card-img-right{min-height:100px;height:100%;max-height:8.5rem;max-width:33%;-o-object-fit:contain;object-fit:contain;-o-object-position:right;object-position:right}#stac-browser .card-list .catalog-card .card-footer{min-width:175px;max-width:175px;border-top:0}#stac-browser .card-list .catalog-card .intro{-webkit-line-clamp:2}#stac-browser .card-columns .catalog-card{box-sizing:border-box;margin-top:.5em 0;text-align:center}#stac-browser .card-columns .catalog-card.queued{min-height:10rem}#stac-browser .card-columns .catalog-card .card-img{width:auto;height:auto;max-width:100%;max-height:300px}#stac-browser .card-columns .catalog-card .card-title,#stac-browser .item-card{text-align:center}#stac-browser .item-card.deprecated{opacity:.7}#stac-browser .item-card.deprecated:hover{opacity:1}#stac-browser .item-card.queued{min-height:200px}#stac-browser .item-card .intro{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;margin-bottom:.5rem}#stac-browser .item-card.description .intro{text-align:left;margin-bottom:.5rem}#stac-browser .item-card .badge.deprecated{text-transform:uppercase}#stac-browser .item-card .card-img{width:auto;height:auto;max-width:100%;max-height:200px}#stac-browser .item-card .card-body{text-align:center;position:relative}#stac-browser .cc .catalogs-container,#stac-browser .cc .items-container{max-width:50%}#stac-browser .cc .catalogs-container .card-list,#stac-browser .cc .items-container .card-list{flex-flow:column wrap}#stac-browser .cc .catalogs-container .catalogs .card-columns,#stac-browser .cc .catalogs-container .items .card-columns,#stac-browser .cc .items-container .catalogs .card-columns,#stac-browser .cc .items-container .items .card-columns{-moz-column-count:1;column-count:1}#stac-browser .cc .catalogs-container .catalogs .card-columns .thumbnail,#stac-browser .cc .catalogs-container .items .card-columns .thumbnail,#stac-browser .cc .items-container .catalogs .card-columns .thumbnail,#stac-browser .cc .items-container .items .card-columns .thumbnail{align-self:center}#stac-browser .cc.catalog .catalogs-container,#stac-browser .cc.catalog .items-container{max-width:100%}@media(min-width:576px){#stac-browser .cc.catalog .catalogs-container .catalogs .card-columns,#stac-browser .cc.catalog .catalogs-container .items .card-columns,#stac-browser .cc.catalog .items-container .catalogs .card-columns,#stac-browser .cc.catalog .items-container .items .card-columns{-moz-column-count:2;column-count:2}}@media(min-width:992px){#stac-browser .cc.catalog .catalogs-container .catalogs .card-columns,#stac-browser .cc.catalog .catalogs-container .items .card-columns,#stac-browser .cc.catalog .items-container .catalogs .card-columns,#stac-browser .cc.catalog .items-container .items .card-columns{-moz-column-count:3;column-count:3}}@media(min-width:1600px){#stac-browser .cc.catalog .catalogs-container .catalogs .card-columns,#stac-browser .cc.catalog .catalogs-container .items .card-columns,#stac-browser .cc.catalog .items-container .catalogs .card-columns,#stac-browser .cc.catalog .items-container .items .card-columns{-moz-column-count:4;column-count:4}}@media(min-width:2500px){#stac-browser .cc.catalog .catalogs-container .catalogs .card-columns,#stac-browser .cc.catalog .catalogs-container .items .card-columns,#stac-browser .cc.catalog .items-container .catalogs .card-columns,#stac-browser .cc.catalog .items-container .items .card-columns{-moz-column-count:6;column-count:6}}@media(min-width:768px)and (max-width:991.98px){#stac-browser .cc.collection .catalogs-container .catalogs .card-columns,#stac-browser .cc.collection .catalogs-container .items .card-columns,#stac-browser .cc.collection .items-container .catalogs .card-columns,#stac-browser .cc.collection .items-container .items .card-columns{-moz-column-count:2;column-count:2}}@media(min-width:992px){#stac-browser .cc.collection .catalogs-container .catalogs .card-columns,#stac-browser .cc.collection .catalogs-container .items .card-columns,#stac-browser .cc.collection .items-container .catalogs .card-columns,#stac-browser .cc.collection .items-container .items .card-columns{-moz-column-count:1;column-count:1}}@media(min-width:1600px){#stac-browser .cc.collection .catalogs-container .catalogs .card-columns,#stac-browser .cc.collection .catalogs-container .items .card-columns,#stac-browser .cc.collection .items-container .catalogs .card-columns,#stac-browser .cc.collection .items-container .items .card-columns{-moz-column-count:2;column-count:2}}@media(min-width:2500px){#stac-browser .cc.collection .catalogs-container .catalogs .card-columns,#stac-browser .cc.collection .catalogs-container .items .card-columns,#stac-browser .cc.collection .items-container .catalogs .card-columns,#stac-browser .cc.collection .items-container .items .card-columns{-moz-column-count:3;column-count:3}}@media(min-width:992px){#stac-browser .cc.catalog.mixed .catalogs-container .catalogs .card-columns,#stac-browser .cc.catalog.mixed .catalogs-container .items .card-columns,#stac-browser .cc.catalog.mixed .items-container .catalogs .card-columns,#stac-browser .cc.catalog.mixed .items-container .items .card-columns{-moz-column-count:1;column-count:1}}@media(min-width:1100px){#stac-browser .cc.catalog.mixed .catalogs-container .catalogs .card-columns,#stac-browser .cc.catalog.mixed .catalogs-container .items .card-columns,#stac-browser .cc.catalog.mixed .items-container .catalogs .card-columns,#stac-browser .cc.catalog.mixed .items-container .items .card-columns{-moz-column-count:2;column-count:2}}@media(min-width:1600px){#stac-browser .cc.catalog.mixed .catalogs-container .catalogs .card-columns,#stac-browser .cc.catalog.mixed .catalogs-container .items .card-columns,#stac-browser .cc.catalog.mixed .items-container .catalogs .card-columns,#stac-browser .cc.catalog.mixed .items-container .items .card-columns{-moz-column-count:3;column-count:3}}#stac-browser .cc.collection.mixed .catalogs-container,#stac-browser .cc.collection.mixed .items-container{max-width:33%}@media(min-width:992px){#stac-browser .cc.collection.mixed .catalogs-container .catalogs .card-columns,#stac-browser .cc.collection.mixed .catalogs-container .items .card-columns,#stac-browser .cc.collection.mixed .items-container .catalogs .card-columns,#stac-browser .cc.collection.mixed .items-container .items .card-columns{-moz-column-count:1;column-count:1}}@media(min-width:1600px){#stac-browser .cc.collection.mixed .catalogs-container .catalogs .card-columns,#stac-browser .cc.collection.mixed .catalogs-container .items .card-columns,#stac-browser .cc.collection.mixed .items-container .catalogs .card-columns,#stac-browser .cc.collection.mixed .items-container .items .card-columns{-moz-column-count:2;column-count:2}}@media(min-width:2500px){#stac-browser .cc.collection.mixed .catalogs-container .catalogs .card-columns,#stac-browser .cc.collection.mixed .catalogs-container .items .card-columns,#stac-browser .cc.collection.mixed .items-container .catalogs .card-columns,#stac-browser .cc.collection.mixed .items-container .items .card-columns{-moz-column-count:3;column-count:3}}#stac-browser .cc .meta{min-width:100%;margin-bottom:1rem}#stac-browser .cc.collection .meta{min-width:33%;margin-bottom:0}@media(min-width:992px){#stac-browser .cc.collection.empty .meta{-moz-column-count:2;column-count:2}#stac-browser .cc.collection.empty .meta>section{-moz-column-break-inside:avoid;break-inside:avoid}}@media(min-width:1100px){#stac-browser .cc.catalog .meta{display:flex;flex-direction:row;flex-wrap:wrap;gap:30px}#stac-browser .cc.catalog .meta>section{flex-basis:0;flex-grow:1;max-width:100%;min-width:40%}}@media(max-width:991.98px){#stac-browser .cc>.row>.catalogs-container,#stac-browser .cc>.row>.items-container,#stac-browser .cc>.row>.meta{min-width:100%}#stac-browser .cc>.row>.meta{order:1;margin-bottom:1rem}#stac-browser .cc>.row>.items-container{order:2}#stac-browser .cc>.row>.catalogs-container{order:3}}#stac-browser .cc .metadata .card-columns{-moz-column-count:1;column-count:1}@media(min-width:2500px){#stac-browser .cc .metadata .card-columns:not(.count-1){-moz-column-count:2;column-count:2}}.popover[data-v-74684ede]{width:100%;max-width:800px}#popover-link,#popover-root,#popover-share{width:80%;max-width:800px}#popover-link .popover-body,#popover-root .popover-body,#popover-share .popover-body{overflow-y:auto;overflow-x:hidden;max-height:80vh}#popover-link .stac-id .copy-button{padding-top:.1rem;padding-bottom:.1rem;font-size:.7rem}.lang-item>.dropdown-item[data-v-03548d8c]{display:flex}.lang-item>.dropdown-item>.title[data-v-03548d8c]{flex:1}h1[data-v-e9cfbf72]{word-break:break-word} /*! * Bootstrap v4.6.2 (https://getbootstrap.com/) * Copyright 2011-2022 The Bootstrap Authors diff --git a/index.html b/index.html index 59bfd6e2b..0ece8e33e 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -STAC Browser
\ No newline at end of file +STAC Browser
\ No newline at end of file diff --git a/js/app.de8eacc9.js b/js/app.f8e1cff5.js similarity index 99% rename from js/app.de8eacc9.js rename to js/app.f8e1cff5.js index 3b8b587f5..f45dca016 100644 --- a/js/app.de8eacc9.js +++ b/js/app.f8e1cff5.js @@ -1,2 +1,2 @@ -(function(){var t={73076:function(t,e,a){"use strict";a.d(e,{Z:function(){return m}});var s=function(){var t=this,e=t._self._c;return e("b-card",{directives:[{name:"b-visible",rawName:"v-b-visible.400",value:t.load,expression:"load",modifiers:{400:!0}}],class:t.classes,attrs:{"no-body":"","img-right":t.isList}},[t.hasImage?e("b-card-img-lazy",t._b({staticClass:"thumbnail",attrs:{offset:"200"}},"b-card-img-lazy",t.thumbnail,!1)):t._e(),e("b-card-body",[e("b-card-title",[e("StacLink",{staticClass:"stretched-link",attrs:{data:[t.data,t.catalog]}})],1),t.data&&(t.fileFormats.length>0||t.data.description||t.data.deprecated)?e("b-card-text",{staticClass:"intro"},[t.data.deprecated?e("b-badge",{staticClass:"mr-1 mt-1 deprecated",attrs:{variant:"warning"}},[t._v(t._s(t.$t("deprecated")))]):t._e(),t._l(t.fileFormats,(function(a){return e("b-badge",{key:a,staticClass:"mr-1 mt-1 fileformat",attrs:{variant:"secondary"}},[t._v(t._s(t._f("formatMediaType")(a)))])})),t._v(" "+t._s(t._f("summarize")(t.data.description))+" ")],2):t._e(),t.temporalExtent?e("b-card-text",{staticClass:"datetime"},[e("small",{domProps:{innerHTML:t._s(t.temporalExtent)}})]):t._e()],1),e("b-card-footer",[t._t("footer",null,{data:t.data})],2)],1)},r=[],i=(a(57658),a(20629)),n=a(83681),o=a(59642),l=a(63338),c=a(43989),u=a(35834),d=a(79879),h={name:"Catalog",components:{StacLink:l["default"]},filters:{summarize:t=>d.ZP.summarizeMd(t,300),formatMediaType:t=>(0,u.formatMediaType)(t,null,{shorten:!0})},mixins:[o.Z,(0,n.Z)({formatTemporalExtent:u.formatTemporalExtent})],props:{catalog:{type:Object,required:!0}},computed:{...(0,i.Se)(["getStac"]),classes(){let t=["catalog-card"];return this.data||t.push("queued"),this.data&&this.data.deprecated&&t.push("deprecated"),this.hasImage&&t.push("has-thumbnail"),this.temporalExtent&&t.push("has-extent"),t},data(){return this.getStac(this.catalog)},temporalExtent(){var t,e,a;if(null!==(t=this.data)&&void 0!==t&&t.isCollection()&&(null===(e=this.data.extent)||void 0===e||null===(a=e.temporal)||void 0===a?void 0:a.interval.length)>0){let t=this.data.extent.temporal.interval[0];if(Array.isArray(t)&&("string"===typeof t[0]||"string"===typeof t[1]))return this.formatTemporalExtent(this.data.extent.temporal.interval[0],!0)}return null},fileFormats(){return this.data?this.data.getFileFormats():[]}},methods:{load(t){this.catalog instanceof c.Z||this.$store.commit(t?"queue":"unqueue",this.catalog.href)}}},p=h,f=a(1001),g=(0,f.Z)(p,s,r,!1,null,null,null),m=g.exports},33149:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return C}});var s=function(){var t=this,e=t._self._c;return e("section",{staticClass:"catalogs mb-4"},[e("header",[e("h2",{staticClass:"title mr-2"},[t._v(t._s(t.title))]),null!==t.catalogCount?e("b-badge",{staticClass:"mr-4",attrs:{pill:"",variant:"secondary"}},[t._v(t._s(t.catalogCount))]):t._e(),e("ViewButtons",{staticClass:"mr-2",model:{value:t.view,callback:function(e){t.view=e},expression:"view"}}),t.isComplete&&t.catalogs.length>1?e("SortButtons",{model:{value:t.sort,callback:function(e){t.sort=e},expression:"sort"}}):t._e()],1),t.isComplete&&t.catalogs.length>1?e("SearchBox",{staticClass:"mt-1 mb-1",attrs:{placeholder:t.$t("catalogs.filterByTitle")},model:{value:t.searchTerm,callback:function(e){t.searchTerm=e},expression:"searchTerm"}}):t._e(),t.showPagination?e("Pagination",{ref:"topPagination",attrs:{pagination:t.pagination,placement:"top"},on:{paginate:t.paginate}}):t._e(),t.searchTerm&&0===t.catalogView.length?e("b-alert",{attrs:{variant:"warning",show:""}},[t._v(t._s(t.$t("catalogs.noMatches")))]):t._e(),e("section",{staticClass:"list"},[t.loading?e("Loading",{attrs:{fill:"",top:""}}):t._e(),e(t.cardsComponent,t._b({tag:"component"},"component",t.cardsComponentProps,!1),t._l(t.catalogView,(function(a){return e("Catalog",{key:a.href,attrs:{catalog:a},scopedSlots:t._u([{key:"footer",fn:function({data:e}){return[t._t("catalogFooter",null,{data:e})]}}],null,!0)})})),1)],1),t.showPagination?e("Pagination",{attrs:{pagination:t.pagination},on:{paginate:t.paginate}}):t.hasMore?e("b-button",{directives:[{name:"b-visible",rawName:"v-b-visible.300",value:t.loadMore,expression:"loadMore",modifiers:{300:!0}}],attrs:{variant:"primary"},on:{click:t.loadMore}},[t._v(t._s(t.$t("catalogs.loadMore")))]):t._e()],1)},r=[],i=(a(57658),a(20629)),n=a(73076),o=a(79091),l=a(43989),c=function(){var t=this,e=t._self._c;return e("b-button-group",{attrs:{title:t.$t("view.title"),size:"sm"}},[e("b-button",{attrs:{title:t.$t("view.tiles.title"),variant:"outline-primary",pressed:"cards"===t.value},on:{click:function(e){return t.toggle("cards")}}},[e("b-icon-bricks"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("view.tiles.label")))])],1),e("b-button",{attrs:{title:t.$t("view.list.title"),variant:"outline-primary",pressed:"list"===t.value},on:{click:function(e){return t.toggle("list")}}},[e("b-icon-list-task"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("view.list.label")))])],1)],1)},u=[],d=a(38019),h={id:"SortButtons",components:{BIconBricks:d.S3S,BIconListTask:d.WPR},props:{value:{type:String,default:"cards"}},methods:{toggle(t){this.value!==t&&this.$emit("input",t)}}},p=h,f=a(1001),g=(0,f.Z)(p,c,u,!1,null,null,null),m=g.exports,b={components:{ViewButtons:m},computed:{cardsComponent(){return"list"===this.view?"div":"b-card-group"},cardsComponentProps(){return"list"===this.view?{class:["card-list"]}:{columns:!0}},view:{get(){return this.$store.state.cardViewMode},set(t){this.$store.commit("config",{cardViewMode:t})}}}},y=a(79879),v={name:"Catalogs",components:{Catalog:n.Z,Loading:o.Z,Pagination:()=>Promise.resolve().then(a.bind(a,68289)),SearchBox:()=>a.e(624).then(a.bind(a,40624)),SortButtons:()=>a.e(2968).then(a.bind(a,2968))},mixins:[b],props:{catalogs:{type:Array,required:!0},collectionsOnly:{type:Boolean,required:!1},loading:{type:Boolean,default:!1},hasMore:{type:Boolean,default:!1},pagination:{type:Object,default:()=>({})},count:{type:Number,default:null}},data(){return{searchTerm:"",sort:0}},computed:{...(0,i.rn)(["cardViewSort","uiLanguage"]),...(0,i.Se)(["getStac"]),catalogCount(){return this.catalogs.length!==this.catalogView.length?this.catalogView.length+"/"+this.catalogs.length:null!==this.count?this.count:this.isComplete?this.catalogs.length:null},title(){return this.collectionsOnly?this.$tc("stacCollection",this.catalogs.length):this.$tc("stacCatalog",this.catalogs.length)},isComplete(){return!this.hasMore&&!this.showPagination},showPagination(){return Object.values(this.pagination).some((t=>!!t))},catalogView(){if(this.hasMore)return this.catalogs;let t=this.catalogs.map((t=>{let e=this.getStac(t);return e||t}));return this.searchTerm&&(t=t.filter((t=>{let e=[t.title];return t instanceof l.Z?(e.push(t.id),Array.isArray(t.keywords)&&(e=e.concat(t.keywords))):e.push(t.href),y.ZP.search(this.searchTerm,e)}))),this.hasMore||0===this.sort||(t=t.slice(0).sort(((t,e)=>l.Z.getDisplayTitle(t).localeCompare(l.Z.getDisplayTitle(e),this.uiLanguage))),-1===this.sort&&(t=t.reverse())),t}},created(){this.sort=this.cardViewSort},methods:{loadMore(t=!0){t&&(this.sort=0,this.$emit("loadMore"))},paginate(t,e){"bottom"===e&&this.$refs.topPagination&&y.ZP.scrollTo(this.$refs.topPagination.$el),this.$emit("paginate",t)}}},w=v,_=(0,f.Z)(w,s,r,!1,null,null,null),C=_.exports},89988:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return d}});var s=function(){var t=this,e=t._self._c;return e("b-button",t._b({staticClass:"copy-button",attrs:{variant:t.copyColor,title:t.$t("copy")},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.copy.apply(null,arguments)}}},"b-button",t.buttonProps,!1),[e(t.copyIcon,{tag:"component"}),t._t("default")],2)},r=[],i=a(38019),n=a(18882),o={name:"CopyButton",components:{BIconClipboard:i.O48,BIconClipboardCheck:i.bEK,BIconClipboardX:i.R5z},props:{copyText:{type:String,required:!0},variant:{type:String,default:"primary"},buttonProps:{type:Object,default:()=>({})}},data(){return{status:null}},computed:{copyColor(){let t=this.variant;return!0===this.status?t="success":!1===this.status&&(t="danger"),this.variant.startsWith("outline-")&&(t="outline-"+t),t},copyIcon(){return!0===this.status?"b-icon-clipboard-check":!1===this.status?"b-icon-clipboard-x":"b-icon-clipboard"}},methods:{async copy(){try{let t=document.activeElement;await n.T.copy(this.copyText),t.focus(),this.status=!0}catch(t){console.error(t),this.status=!1}setTimeout((()=>this.status=null),2500)}}},l=o,c=a(1001),u=(0,c.Z)(l,s,r,!1,null,null,null),d=u.exports},2778:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return u}});var s=function(){var t=this,e=t._self._c;return e("div",{staticClass:"styled-description",class:{compact:t.compact,inline:t.inline},domProps:{innerHTML:t._s(t.markup(t.description))}})},r=[],i=a(75064),n={name:"Description",props:{description:{type:String,default:""},compact:{type:Boolean,default:!1},inline:{type:Boolean,default:!1},allowHTML:{type:Boolean,default:!1}},methods:{markup(t){if("string"!==typeof t)return"";var e=new i._b,a=new i.VI({safe:!this.allowHTML,smart:!0}),s=e.parse(t);return a.render(s)}}},o=n,l=a(1001),c=(0,l.Z)(o,s,r,!1,null,null,null),u=c.exports},90883:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return b}});var s=function(){var t=this,e=t._self._c;return e("b-card",{directives:[{name:"b-visible",rawName:"v-b-visible.400",value:t.load,expression:"load",modifiers:{400:!0}}],staticClass:"item-card",class:{queued:!t.data,deprecated:t.isDeprecated,description:t.hasDescription},attrs:{"no-body":""}},[t.hasImage?e("b-card-img-lazy",t._b({staticClass:"thumbnail",attrs:{offset:"200"}},"b-card-img-lazy",t.thumbnail,!1)):t._e(),e("b-card-body",[e("b-card-title",[e("StacLink",{staticClass:"stretched-link",attrs:{data:[t.data,t.item]}})],1),t.fileFormats.length>0||t.hasDescription||t.isDeprecated?e("b-card-text",{staticClass:"intro"},[t.isDeprecated?e("b-badge",{staticClass:"mr-1 mt-1 deprecated",attrs:{variant:"warning"}},[t._v(t._s(t.$t("deprecated")))]):t._e(),t._l(t.fileFormats,(function(a){return e("b-badge",{key:a,staticClass:"mr-1 mt-1 fileformat",attrs:{variant:"secondary"}},[t._v(t._s(t._f("formatMediaType")(a)))])})),t.hasDescription?[t._v(t._s(t._f("summarize")(t.data.properties.description)))]:t._e()],2):t._e(),e("b-card-text",[e("small",{staticClass:"text-muted"},[t.extent?[t._v(t._s(t._f("formatTemporalExtent")(t.extent)))]:t.data&&t.data.properties.datetime?[t._v(t._s(t._f("formatTimestamp")(t.data.properties.datetime)))]:[t._v(t._s(t.$t("items.noTime")))]],2)])],1)],1)},r=[],i=a(20629),n=a(59642),o=a(63338),l=a(43989),c=a(35834),u=a(65571),d=a.n(u),h=a(79879);d().addDependency("content-type",a(37811));var p={name:"Item",components:{StacLink:o["default"]},filters:{summarize:t=>h.ZP.summarizeMd(t,150),formatMediaType:t=>(0,c.formatMediaType)(t,null,{shorten:!0}),formatTemporalExtent:c.formatTemporalExtent,formatTimestamp:c.formatTimestamp},mixins:[n.Z],props:{item:{type:Object,required:!0}},computed:{...(0,i.Se)(["getStac"]),data(){return this.getStac(this.item)},extent(){return this.data&&(this.data.properties.start_datetime||this.data.properties.end_datetime)?[this.data.properties.start_datetime,this.data.properties.end_datetime]:null},fileFormats(){return this.data?this.data.getFileFormats():[]},isDeprecated(){return this.data instanceof l.Z&&Boolean(this.data.properties.deprecated)},hasDescription(){return this.data instanceof l.Z&&h.ZP.hasText(this.data.properties.description)}},methods:{load(t){this.item instanceof l.Z||this.$store.commit(t?"queue":"unqueue",this.item.href)}}},f=p,g=a(1001),m=(0,g.Z)(f,s,r,!1,null,null,null),b=m.exports},30578:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return b}});var s=function(){var t=this,e=t._self._c;return e("section",{staticClass:"items mb-4"},[e("header",[e("h2",{staticClass:"title mr-2"},[t._v(t._s(t.$tc("stacItem",t.items.length)))]),null!==t.itemCount?e("b-badge",{staticClass:"mr-4",attrs:{pill:"",variant:"secondary"}},[t._v(t._s(t.itemCount))]):t._e(),!t.api&&t.items.length>1?e("SortButtons",{model:{value:t.sort,callback:function(e){t.sort=e},expression:"sort"}}):t._e()],1),t.showPagination?e("Pagination",{ref:"topPagination",attrs:{pagination:t.pagination,placement:"top"},on:{paginate:t.paginate}}):t._e(),t.allowFilter?[t.api?e("b-button",{directives:[{name:"b-toggle",rawName:"v-b-toggle.itemFilter",modifiers:{itemFilter:!0}}],staticClass:"mb-4 mt-2",class:{"ml-3":t.showPagination},attrs:{variant:t.hasFilters&&!t.filtersOpen?"primary":"outline-primary"}},[e("b-icon-search"),t._v(" "+t._s(t.filtersOpen?t.$t("items.hideFilter"):t.$t("items.showFilter"))+" "),t.hasFilters&&!t.filtersOpen?e("b-badge",{attrs:{variant:"dark"}},[t._v(t._s(t.filterCount))]):t._e()],1):t._e(),e("b-collapse",{attrs:{id:"itemFilter"},model:{value:t.filtersOpen,callback:function(e){t.filtersOpen=e},expression:"filtersOpen"}},[e("SearchFilter",{attrs:{type:"Items",title:t.$t("items.filter"),parent:t.stac,value:t.apiFilters},on:{input:t.emitFilter}})],1)]:t._e(),e("section",{staticClass:"list"},[t.loading?e("Loading",{attrs:{fill:"",top:""}}):t._e(),t.chunkedItems.length>0?e("b-card-group",{attrs:{columns:""}},t._l(t.chunkedItems,(function(t){return e("Item",{key:t.href,attrs:{item:t}})})),1):e("b-alert",{attrs:{variant:t.hasFilters?"warning":"info",show:""}},[t.hasFilters?[t._v(t._s(t.$t("search.noItemsFound")))]:[t._v(t._s(t.$t("items.noneAvailableForCollection")))]],2)],1),t.showPagination?e("Pagination",{attrs:{pagination:t.pagination},on:{paginate:t.paginate}}):t.hasMore?e("b-button",{directives:[{name:"b-visible",rawName:"v-b-visible.300",value:t.showMore,expression:"showMore",modifiers:{300:!0}}],attrs:{variant:"primary"},on:{click:t.showMore}},[t._v(t._s(t.$t("showMore")))]):t._e()],2)},r=[],i=a(90883),n=a(79091),o=a(68289),l=a(11688),c=a(38019),u=a(79879),d=a(43989),h=a(20629),p={name:"Items",components:{BCollapse:l.k,BIconSearch:c.Lln,Item:i["default"],SearchFilter:()=>Promise.all([a.e(9539),a.e(7053),a.e(1095)]).then(a.bind(a,77053)),Loading:n.Z,Pagination:o["default"],SortButtons:()=>a.e(2968).then(a.bind(a,2968))},props:{items:{type:Array,required:!0},loading:{type:Boolean,default:!1},stac:{type:Object,required:!0},api:{type:Boolean,default:!1},allowFilter:{type:Boolean,default:!0},showFilters:{type:Boolean,default:!1},apiFilters:{type:Object,default:()=>({})},pagination:{type:Object,default:()=>({})},chunkSize:{type:Number,default:90},count:{type:Number,default:null}},data(){return{shownItems:this.chunkSize,filtersOpen:this.showFilters,sort:0}},computed:{...(0,h.rn)(["cardViewSort","uiLanguage"]),itemCount(){return null!==this.count?this.count:!this.api&&this.items.length>0?this.items.length:null},hasMore(){return this.items.length>this.shownItems},filterCount(){return Object.values(this.apiFilters).filter((t=>!(null===t||0===u.ZP.size(t)))).length},hasFilters(){return this.filterCount>0},chunkedItems(){let t=this.items;return 0!==this.sort&&(t=t.slice(0).sort(((t,e)=>d.Z.getDisplayTitle(t).localeCompare(d.Z.getDisplayTitle(e),this.uiLanguage))),-1===this.sort&&(t=t.reverse())),!this.api&&this.items.length>this.chunkSize?t.slice(0,this.shownItems):t},showPagination(){if(this.api){if(this.hasFilters)return!0;if(this.items.length>0)return Object.values(this.pagination).some((t=>!!t))}return!1}},watch:{showFilters(){this.filter=this.showFilters},filtersOpen(){this.$emit("filtersShown",this.filtersOpen)}},created(){this.sort=this.cardViewSort},mounted(){this.showFilters&&setTimeout((()=>u.ZP.scrollTo(this.$el)),250)},methods:{emitFilter(t,e){this.$emit("filterItems",t,e)},showMore(){this.shownItems+=this.chunkSize},paginate(t,e){"bottom"===e&&this.$refs.topPagination&&u.ZP.scrollTo(this.$refs.topPagination.$el),this.$emit("paginate",t)}}},f=p,g=a(1001),m=(0,g.Z)(f,s,r,!1,null,null,null),b=m.exports},79091:function(t,e,a){"use strict";a.d(e,{Z:function(){return c}});var s=function(){var t=this,e=t._self._c;return e("div",{class:t.classes},[e("b-spinner",{attrs:{label:t.$t("loading"),small:t.small}})],1)},r=[],i=(a(57658),{name:"Loading",props:{fill:{type:Boolean,default:!1},stretch:{type:Boolean,default:!1},small:{type:Boolean,default:!1},top:{type:Boolean,default:!1}},computed:{classes(){let t=["loading"];return this.fill?t.push("loading-fill"):this.stretch&&t.push("loading-stretch"),this.top&&t.push("top"),t}}}),n=i,o=a(1001),l=(0,o.Z)(n,s,r,!1,null,"67931bb8",null),c=l.exports},68289:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return c}});var s=function(){var t=this,e=t._self._c;return e("b-button-group",{class:t.classes},[e("b-button",{attrs:{disabled:!t.pagination.first,variant:"primary"},on:{click:function(e){return t.paginate(t.pagination.first)}}},[t._v(t._s(t.$t("pagination.first")))]),e("b-button",{attrs:{disabled:!t.pagination.prev,variant:"primary"},on:{click:function(e){return t.paginate(t.pagination.prev)}}},[t._v(t._s(t.$t("pagination.previous")))]),e("b-button",{attrs:{disabled:!t.pagination.next,variant:"primary"},on:{click:function(e){return t.paginate(t.pagination.next)}}},[t._v(t._s(t.$t("pagination.next")))]),t.pagination.last?e("b-button",{attrs:{variant:"primary"},on:{click:function(e){return t.paginate(t.pagination.last)}}},[t._v(t._s(t.$t("pagination.last")))]):t._e()],1)},r=[],i={name:"Pagination",props:{pagination:{type:Object,default:()=>({})},placement:{type:String,default:"bottom"}},computed:{classes(){return"top"===this.placement?"mb-4 mt-2":"mb-2 mt-2"}},methods:{paginate(t){this.$emit("paginate",t,this.placement)}}},n=i,o=a(1001),l=(0,o.Z)(n,s,r,!1,null,null,null),c=l.exports},63338:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return g}});var s=function(){var t=this,e=t._self._c;return e(t.component,t._b({tag:"component",staticClass:"stac-link",attrs:{title:t.tooltip}},"component",t.attributes,!1),[t.icon?[e("img",{staticClass:"icon mr-2",attrs:{src:t.icon.href,alt:t.icon.title,title:t.icon.title}})]:t._e(),e("span",{staticClass:"title"},[t._v(t._s(t.displayTitle))])],2)},r=[],i=a(20629),n=a(54261),o=a(79879),l=a(43989),c=a(54998),u=a.n(c),d={name:"StacLink",props:{data:{type:[Object,Array],default:null},title:{type:String,default:null},fallbackTitle:{type:[String,Function],default:null},tooltip:{type:String,default:null},button:{type:[Boolean,Object],default:!1},state:{type:Object,default:null}},computed:{...(0,i.rn)(["allowExternalAccess","privateQueryParameters"]),...(0,i.Se)(["toBrowserPath","getRequestUrl","isExternalUrl"]),icon(){if(this.stac){let t=this.stac.getIcons();if(t.length>0)return t[0]}return null},stac(){return this.data instanceof l.Z?this.data:Array.isArray(this.data)?this.data.find((t=>t instanceof l.Z)):null},link(){return this.isLink(this.data)?this.data:Array.isArray(this.data)&&this.data.find((t=>this.isLink(t)))||{}},isStacBrowserLink(){return!!this.stac||!!o.ZP.isStacMediaType(this.link.type,!0)&&(!(!this.allowExternalAccess&&this.isExternalUrl(this.link.href))&&n.rt.includes(this.link.rel))},attributes(){if(this.isStacBrowserLink||this.button){let t={to:this.href,rel:this.rel};return o.ZP.isObject(this.button)&&Object.assign(t,this.button),t}return{href:this.href,target:"_blank",rel:this.rel}},component(){return this.button?"b-button":this.isStacBrowserLink?"router-link":"a"},href(){if(this.stac||this.isStacBrowserLink){let t;if(t=this.stac?this.stac.getBrowserPath():this.toBrowserPath(this.link.href),t.startsWith("/")||(t="/"+t),o.ZP.size(this.privateQueryParameters)>0||o.ZP.size(this.state)>0){let e=u()(t),a=(t,a)=>{for(let s in t){let r=`${a}${s}`;e.hasQuery(r)||e.addQuery(r,t[s])}};a(this.privateQueryParameters,"~"),a(this.state,"."),t=e.toString()}return t}return this.getRequestUrl(this.link.href)},displayTitle(){if(this.title)return this.title;let t="function"===typeof this.fallbackTitle?this.fallbackTitle():this.fallbackTitle;return l.Z.getDisplayTitle(this.data,t)}},methods:{isLink(t){return o.ZP.isObject(t)&&!(t instanceof l.Z)}}},h=d,p=a(1001),f=(0,p.Z)(h,s,r,!1,null,null,null),g=f.exports},4216:function(t){t.exports={catalogUrl:null,catalogTitle:"STAC Browser",allowExternalAccess:!0,allowedDomains:[],detectLocaleFromBrowser:!0,storeLocale:!0,locale:"en",fallbackLocale:"en",supportedLocales:["de","es","en","fr","it","ro"],apiCatalogPriority:null,useTileLayerAsFallback:!0,displayGeoTiffByDefault:!1,buildTileUrlTemplate:({href:t,asset:e})=>"https://tiles.rdnt.io/tiles/{z}/{x}/{y}@2x?url="+encodeURIComponent(e.href.startsWith("/vsi")?e.href:t),stacProxyUrl:null,pathPrefix:"/",historyMode:"history",cardViewMode:"cards",cardViewSort:"asc",showThumbnailsAsAssets:!1,stacLint:!0,geoTiffResolution:128,redirectLegacyUrls:!1,itemsPerPage:12,defaultThumbnailSize:null,maxPreviewsOnMap:50,crossOriginMedia:null,requestHeaders:{},requestQueryParameters:{},preprocessSTAC:null,authConfig:null}},59189:function(t,e,a){"use strict";a.d(e,{v:function(){return o}});var s=a(20629);const r=["https://api.stacspec.org/v1.*/item-search#filter:cql-text","http://www.opengis.net/spec/cql2/1.*/conf/cql2-text"],i=["https://api.stacspec.org/v1.*/item-search#filter:cql-json","http://www.opengis.net/spec/cql2/1.*/conf/cql2-json"],n=["http://www.opengis.net/spec/cql2/1.*/req/advanced-comparison-operators"],o={Items:{BasicFilters:["https://api.stacspec.org/v1.*/ogcapi-features","http://www.opengis.net/spec/ogcapi-features-1/1.*/conf/core"],CollectionIdFilter:!1,ItemIdFilter:!1,CqlFilters:["http://www.opengis.net/spec/ogcapi-features-3/1.*/*/features-filter"],Sort:["https://api.stacspec.org/v1.*/ogcapi-features#sort","http://www.opengis.net/spec/ogcapi-records-1/1.*/conf/sorting"],FreeText:["https://api.stacspec.org/v1.*/ogcapi-features#free-text"]},Global:{BasicFilters:!0,CollectionIdFilter:!0,ItemIdFilter:!0,CqlFilters:["https://api.stacspec.org/v1.*/item-search#filter"],Sort:["https://api.stacspec.org/v1.*/item-search#sort"],FreeText:["https://api.stacspec.org/v1.*/item-search#free-text"]},Collections:{BasicFilters:["https://api.stacspec.org/v1.*/collection-search"],CollectionIdFilter:!1,ItemIdFilter:!1,CqlFilters:["https://api.stacspec.org/v1.*/collection-search#filter"],Sort:["https://api.stacspec.org/v1.*/collection-search#sort"],FreeText:["https://api.stacspec.org/v1.*/collection-search#free-text"]}};e.Z={props:{type:{type:String,required:!0}},computed:{...(0,s.Se)(["supportsConformance"]),conformances(){return o[this.type]},canSort(){return this.supportsConformance(this.conformances.Sort)},canFilterExtents(){return this.supportsConformance(this.conformances.BasicFilters)},canFilterFreeText(){return this.supportsConformance(this.conformances.FreeText)},cql(){if(!this.supportsConformance(this.conformances.CqlFilters))return null;let t=this.supportsConformance(r),e=this.supportsConformance(i);return t||e?{textMode:t,jsonMode:e,advancedComparison:this.supportsConformance(n)}:null}}}},83681:function(t,e,a){"use strict";var s=a(20629);e.Z=t=>{let e={computed:{...(0,s.rn)(["uiLanguage"])},methods:{}};for(let a in t){let s=t[a];e.methods[a]=function(){return this.uiLanguage,s(...arguments)}}return e}},59642:function(t,e,a){"use strict";var s=a(20629);e.Z={props:{showThumbnail:{type:Boolean,default:!0}},computed:{...(0,s.rn)(["cardViewMode","crossOriginMedia","defaultThumbnailSize"]),isList(){return this.data&&!this.data.isItem()&&"list"===this.cardViewMode},hasImage(){return this.showThumbnail&&this.thumbnail},thumbnail(){if(this.data){let t=this.data.getThumbnails(!0,"thumbnail");if(t.length>0){let e,a,s=t[0];return Array.isArray(s["proj:shape"])&&2===s["proj:shape"].length?[a,e]=s["proj:shape"]:Array.isArray(this.defaultThumbnailSize)&&2===this.defaultThumbnailSize.length&&([a,e]=this.defaultThumbnailSize),{src:s.href,alt:s.title,crossorigin:this.crossOriginMedia,right:this.isList,blankColor:"rgba(0, 0, 0, 0.125)",width:e,height:a,"blank-width":e,"blank-height":a}}}return null}}}},60054:function(t,e,a){"use strict";let s;s=a(4216),e.Z=Object.assign(s,{pathPrefix:"/stac-browser",historyMode:"hash"},window.STAC_BROWSER_CONFIG)},71259:function(t,e,a){"use strict";a.d(e,{Cy:function(){return g},EV:function(){return f},Mk:function(){return c},_j:function(){return p}});var s=a(20144),r=a(17152),i=a(60054),n=a(28713),o=a.n(n),l=a(79879);s.ZP.use(r.Z);const c=["https://api.stacspec.org/v1.*/language"],u={};function d(){for(let e of i.Z.supportedLocales)u[e]=a(82599)(`./${e}/config.json`);const t={};for(let e in u)t[e]={languages:u};return t}const h=new r.Z({locale:i.Z.locale,fallbackLocale:i.Z.fallbackLocale,messages:d()});function p(){return Promise.all([f(i.Z.locale),f(i.Z.fallbackLocale)])}async function f(t){if(l.ZP.size(h.messages[t])>1)return;const e=(await a(50448)(`./${t}/default.js`)).default;h.mergeLocaleMessage(t,e)}function g(t,e=null){if("string"!==typeof t||0===t.length)return t;let a=`fields.${t}`;return h.te(a)?h.t(a,null,e):o().format(t,e)}e.ZP=h},62846:function(t,e,a){"use strict";a.d(e,{Si:function(){return i},xI:function(){return r}});a(57658);function s(t){if(!t)return;const e=String(t),a=e.indexOf("@"),s=-1!==a?e.substr(a+1):void 0,r=-1!==a?e.substr(0,a):e,i=String(r).replace(/-/g,"_").split("_");if(!i.length||i.length>4)return;const n=i.shift();if(!n)return;const o={keyword:s,language:n.toLowerCase()};if(!i.length)return o;if(3===i.length){const t=i.pop();t&&(o.variant=t.toUpperCase())}let l=i.pop();if(l.length>3&&(o.keyword=l,l=i.pop()),l&&(o.country=l.toUpperCase()),!i.length)return o;const c=i.pop();return"string"===typeof c&&c.length>=1&&(o.script=c[0].toUpperCase()+c.substring(1).toLowerCase()),o}function r(t){const e={};return t.forEach((t=>{const{language:a,country:r}=s(t);if(!a)throw new Error(`Locale ${t} is not parsable`);e[a]||(e[a]={countries:{},firstCountry:void 0,main:void 0});const i=e[a];r?(i.countries[r]=t,i.firstCountry||(i.firstCountry=t)):i.main=t})),e}function i(t,e,a,n){const o=Array.isArray(t)?r(t):t;if(!e&&a)return i(t,a,void 0,n);if(!e)return;const{language:l,country:c}=s(e);if(!l)return a;if(!o[l]){if(e===a)return;return i(t,a,null,n)}const{countries:u,main:d=a,firstCountry:h}=o[l];return u&&c?n&&h?u[c]?u[c]:h:u[c]?u[c]:d:n&&h?h:d}},23472:function(t,e,a){"use strict";var s=a(20144),r=function(){var t=this,e=t._self._c;return e("b-container",{attrs:{id:"stac-browser"}},[t.doAuth.length>0?e("Authentication"):t._e(),t.globalError?e("ErrorAlert",t._b({staticClass:"global-error",on:{close:t.hideError}},"ErrorAlert",t.globalError,!1)):t._e(),t.sidebar?e("Sidebar"):t._e(),e("header",[e("div",{staticClass:"logo"},[t._v(t._s(t.displayCatalogTitle))]),e("StacHeader",{on:{enableSidebar:function(e){t.sidebar=!0}}})],1),e("router-view"),e("footer",[e("i18n",{staticClass:"poweredby text-muted",attrs:{tag:"small",path:"poweredBy"},scopedSlots:t._u([{key:"link",fn:function(){return[e("a",{attrs:{href:"https://github.com/radiantearth/stac-browser",target:"_blank"}},[t._v("STAC Browser")]),t._v(" "+t._s(t.browserVersion)+" ")]},proxy:!0}])})],1)],1)},i=[],n=(a(57658),a(78345)),o=a(20629),l=a(60054),c=function(){var t=this,e=t._self._c;return e("main",{staticClass:"browse d-flex flex-column"},[!t.allowExternalAccess&&t.isExternal?e("b-alert",{attrs:{show:""}},[t._v(t._s(t.$t("errors.noExternalAccess")))]):t.error?e("ErrorAlert",{attrs:{dismissible:!1,url:t.url,description:t.errorDescription,id:t.errorId}}):t.loading?e("Loading",{attrs:{stretch:""}}):e(t.component,{tag:"component"})],1)},u=[],d=function(){var t=this,e=t._self._c;return e("b-alert",{attrs:{variant:"danger",show:"",dismissible:t.dismissible},on:{dismissed:function(e){return t.$emit("close")}}},[e("p",{staticClass:"message"},[t._v(t._s(t.message||t.$t("errors.default")))]),t.error&&t.error.message?e("dl",{staticClass:"error"},[e("dt",[t._v(t._s(t.$t("errors.labels.cause")))]),e("dd",[t._v(t._s(t.error.message))])]):t._e(),t.description?e("dl",{staticClass:"description"},[e("dt",[t._v(t._s(t.$t("errors.labels.reason")))]),e("dd",[t._v(t._s(t.description))])]):t._e(),t.id?e("dl",{staticClass:"id"},[e("dt",[t._v(t._s(t.$t("errors.labels.code")))]),e("dd",[e("code",[t._v(t._s(t.id))])])]):t._e(),t.url?e("dl",{staticClass:"url"},[e("dt",[t._v(t._s(t.$t("errors.labels.requestURL")))]),e("dd",[e("code",[t._v(t._s(t.url))])])]):t._e()])},h=[],p={name:"ErrorAlert",props:{message:{type:String,default:null},description:{type:String,default:""},error:{type:[Object,Error],default:null},id:{type:[String,Number],default:null},url:{type:String,default:""},dismissible:{type:Boolean,default:!0}}},f=p,g=a(1001),m=(0,g.Z)(f,d,h,!1,null,"09bb7d1b",null),b=m.exports,y=a(79091),v=function(){var t=this,e=t._self._c;return e("div",{key:t.data.id,staticClass:"item"},[e("b-row",[e("b-col",{staticClass:"left"},[e("section",{staticClass:"mb-4"},[e("b-card",{staticClass:"maps-preview",attrs:{"no-body":""}},[e("b-tabs",{ref:"tabs",attrs:{card:"",pills:"",vertical:"",end:""},model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[e("b-tab",{attrs:{title:t.$t("map"),"no-body":""}},[e("Map",{attrs:{stac:t.data,stacLayerData:t.selectedAsset,scrollWheelZoom:""},on:{dataChanged:t.dataChanged}})],1),t.thumbnails.length>0?e("b-tab",{attrs:{title:t.$t("thumbnails"),"no-body":""}},[e("Thumbnails",{attrs:{thumbnails:t.thumbnails}})],1):t._e()],1)],1)],1),t.hasAssets?e("Assets",{attrs:{assets:t.assets,context:t.data,shown:t.shownAssets},on:{showAsset:t.showAsset}}):t._e(),t.additionalLinks.length>0?e("Links",{attrs:{title:t.$t("additionalResources"),links:t.additionalLinks}}):t._e()],1),e("b-col",{staticClass:"right"},[e("section",{staticClass:"intro"},[t.data.properties.description?e("h2",[t._v(t._s(t.$t("description")))]):t._e(),t.data.properties.deprecated?e("DeprecationNotice",{attrs:{data:t.data}}):t._e(),t.data.properties["anon:warning"]?e("AnonymizedNotice",{attrs:{warning:t.data.properties["anon:warning"]}}):t._e(),t.data.properties.description?e("ReadMore",{attrs:{lines:10,text:t.$t("read.more"),"text-less":t.$t("read.less")}},[e("Description",{attrs:{description:t.data.properties.description}})],1):t._e(),Array.isArray(t.data.properties.keywords)&&t.data.properties.keywords.length>0?e("Keywords",{attrs:{keywords:t.data.properties.keywords}}):t._e()],1),t.collectionLink?e("CollectionLink",{attrs:{link:t.collectionLink}}):t._e(),t.data.properties.providers?e("Providers",{attrs:{providers:t.data.properties.providers}}):t._e(),e("Metadata",{attrs:{data:t.data,type:"Item",ignoreFields:t.ignoredMetadataFields}})],1)],1)],1)},w=[],_=a(2778),C=a(78907),P=a.n(C),k=a(79879),L={data(){return{shownAssetsOnMap:[],shownBandsOnMap:[],tab:null,selectedAsset:null,selectedAssetKey:null}},computed:{...(0,o.Se)(["thumbnails","hasAssets","assets"]),shownAssets(){if(0===this.tab)return this.shownAssetsOnMap;if(1===this.tab||null===this.tab&&this.thumbnails.length>0){let t=[],e=this.thumbnails.map((t=>t.href));for(let a in this.assets){let s=this.assets[a];e.includes(s.href)&&t.push(a)}return t}return[]}},methods:{showAsset(t,e,a){a?this.tab=1:(this.tab=0,this.selectedAsset=t,this.selectedAssetKey=e),this.$refs.tabs&&k.ZP.scrollTo(this.$refs.tabs.$el)},dataChanged(t){k.ZP.isObject(t)?t.assets||t.bands?(k.ZP.size(t.assets)>0&&(this.selectedAssetKey?this.shownAssetsOnMap=[this.selectedAssetKey]:this.shownAssetsOnMap=t.assets.map((t=>t.key))),k.ZP.size(t.bands)>0&&(this.shownBandsOnMap=t.bands)):this.selectedAssetKey&&(this.shownAssetsOnMap=[this.selectedAssetKey]):(this.shownBandsOnMap=[],this.shownAssetsOnMap=[])}}},A=a(82996),Z=a(51015),x=a(43989),S=a(54998),T=a.n(S),O=a(71259);function $(t,e){let a=e.getters.toBrowserPath(t),s=T()(window.location.origin.toString());return"hash"===e.state.historyMode?(s.path(e.state.pathPrefix),s.fragment(a)):s.path(e.state.pathPrefix.replace(/\/$/,"")+a),s.toString()}function I(t,e){Array.isArray(e)&&e.length>=4&&(t.spatialCoverage={"@type":"Place",geo:{"@type":"GeoShape",box:(e||[]).join(" ")}})}function j(t){return!Array.isArray(t)||2!==t.length||"string"!==typeof t[0]&&"string"!==typeof t[1]?null:t.map((t=>t||"..")).join("/")}function B(t){return k.ZP.size(t.assets)>0?Object.values(t.assets).map((e=>({"@type":"DataDownload",contentUrl:k.ZP.toAbsolute(e.href,t.getAbsoluteUrl()),encodingFormat:e.type,name:e.title}))):[]}function F(t,e,a,s="DataCatalog"){return t.map((t=>{let r,i;t instanceof x.Z?(r=x.Z.getDisplayTitle(t),i=t.getAbsoluteUrl()):(r=t.title,i=k.ZP.toAbsolute(t.href,e.getAbsoluteUrl()));let n={"@type":s,name:r,url:$(i,a),isBasedOn:i};return"Dataset"===s&&(n.description=U(t,a)),n}))}function M(t,e){return t.filter((t=>k.ZP.isObject(t)&&Array.isArray(t.roles)&&t.roles.includes(e))).map((t=>({"@type":"Organization",name:t.name,description:t.description,url:t.url,email:t.email||t.mail})))}function U(t,e){let a,s;if(t instanceof x.Z?(a=t.isItem()?"Item":t.type,s=t.collection):k.ZP.isObject(t)&&"item"===t.rel&&(a="Item"),a){let r=O.ZP.tc(`stac${a}`),i=O.ZP.t("in",{catalog:s||e.catalogTitle});return`SpatioTemporal Asset Catalog (STAC)\n${r} - ${t.id} ${i}`}}function E(t,e,a){var s;let r,i=x.Z.getDisplayTitle(t),n=t.getAbsoluteUrl(),o=$(n,a),l=null===(s=t.getMetadata("language"))||void 0===s?void 0:s.code,c=t.getThumbnails(!0);c.length>0&&(r=k.ZP.toAbsolute(c[0].href,t.getAbsoluteUrl()));let u=t.getMetadata("license");var d;u&&"proprietary"!==u&&"various"!==u?u=`https://spdx.org/licenses/${u}.html`:u=null===(d=t.getLinkWithRel("license"))||void 0===d?void 0:d.href;u&&(u=k.ZP.toAbsolute(u,t.getAbsoluteUrl()));let h,p,f,g,m=t.getMetadata("providers");return k.ZP.size(m)>0&&(h=M(m,"licensor"),p=M(m,"producer"),f=M(m,"host"),g=M(m,"processor")),{"@context":"https://schema.org/","@type":e,name:i,description:t.getMetadata("description")||U(t,a),citation:t.getMetadata("sci:citation"),identifier:t.getMetadata("sci:doi")||t.id,keywords:t.getMetadata("keywords"),license:u,url:o,isBasedOn:n,dateCreated:t.getMetadata("created"),dateModified:t.getMetadata("updated"),datePublished:t.getMetadata("published"),expires:t.getMetadata("expires"),inLanguage:l,thumbnailUrl:r,version:t.getMetadata("version"),image:r,copyrightHolder:h,producer:p,provider:f,creator:g}}function q(t,e,a){if(!(t instanceof x.Z))return null;e=e.filter((t=>k.ZP.isObject(t))),e.length>1&&(e=e.filter(((t,a)=>e.findIndex((e=>e.isBasedOn===t.isBasedOn))!==a)));let s=E(t,"DataCatalog",a);var r,i,n,o;t.isCollection()&&((null===(r=t.extent)||void 0===r||null===(i=r.temporal)||void 0===i?void 0:i.interval.length)>0&&(s.temporalCoverage=j(t.extent.temporal.interval[0])),(null===(n=t.extent)||void 0===n||null===(o=n.spatial)||void 0===o?void 0:o.bbox.length)>0&&I(s,t.extent.spatial.bbox[0]),s.associatedMedia=B(t));return s.hasPart=F(a.getters.catalogs,t,a),s.dataset=F(a.getters.items,t,a,"Dataset"),s.isPartOf=F(e,t,a),s}function D(t,e,a){if(!(t instanceof x.Z))return null;e=e.filter((t=>k.ZP.isObject(t)));let s=E(t,"Dataset",a);s.includedInDataCatalog=F(e,t,a);let r=t.getMetadata("start_datetime"),i=t.getMetadata("end_datetime");return s.temporalCoverage=r||i?j([r,i]):t.getMetadata("datetime"),I(s,t.bbox),s.distribution=B(t),s}function R(t,e){let a="schema-org",s=t.getElementById(a);s||(s=t.createElement("script"),s.type="application/ld+json",s.id=a,t.head.appendChild(s)),s.innerText=JSON.stringify(e)}var z={name:"Item",components:{AnonymizedNotice:()=>a.e(6553).then(a.bind(a,96553)),Assets:()=>a.e(1198).then(a.bind(a,41198)),BTabs:A.M,BTab:Z.L,CollectionLink:()=>a.e(1247).then(a.bind(a,91247)),Description:_["default"],DeprecationNotice:()=>a.e(2815).then(a.bind(a,42815)),Links:()=>Promise.all([a.e(9539),a.e(2407),a.e(3154)]).then(a.bind(a,53154)),Map:()=>a.e(3805).then(a.bind(a,13805)),Metadata:()=>Promise.all([a.e(9539),a.e(2407),a.e(4622)]).then(a.bind(a,24622)),Providers:()=>a.e(604).then(a.bind(a,30604)),ReadMore:P(),Thumbnails:()=>a.e(5998).then(a.bind(a,55998))},mixins:[L],data(){return{ignoredMetadataFields:["title","description","providers","deprecated","proj:bbox","proj:geometry","anon:warning"]}},computed:{...(0,o.rn)(["data","url"]),...(0,o.Se)(["additionalLinks","collectionLink","parentLink"])},watch:{data:{immediate:!0,handler(t){try{let e=D(t,[this.collectionLink,this.parentLink],this.$store);R(document,e)}catch(e){console.error(e)}}}}},W=z,V=(0,g.Z)(W,v,w,!1,null,null,null),N=V.exports,Q=function(){var t=this,e=t._self._c;return e("div",{key:t.data.id,class:{cc:!0,[t.data.type.toLowerCase()]:!0,mixed:t.hasCatalogs&&t.hasItems,empty:!t.hasCatalogs&&!t.hasItems}},[e("b-row",[e("b-col",{staticClass:"meta"},[e("section",{staticClass:"intro"},[e("h2",[t._v(t._s(t.$t("description")))]),t.data.deprecated?e("DeprecationNotice",{attrs:{data:t.data}}):t._e(),t.data["anon:warning"]?e("AnonymizedNotice",{attrs:{warning:t.data["anon:warning"]}}):t._e(),t.data.description?e("ReadMore",{attrs:{lines:10,text:t.$t("read.more"),"text-less":t.$t("read.less")}},[e("Description",{attrs:{description:t.data.description}})],1):t._e(),Array.isArray(t.data.keywords)&&t.data.keywords.length>0?e("Keywords",{attrs:{keywords:t.data.keywords}}):t._e(),t.isCollection?e("section",{staticClass:"metadata mb-4"},[t.licenses?e("b-row",[e("b-col",{staticClass:"label",attrs:{md:"4"}},[t._v(t._s(t.$t("catalog.license")))]),e("b-col",{staticClass:"value",attrs:{md:"8"}},[e("span",{domProps:{innerHTML:t._s(t.licenses)}})])],1):t._e(),t.temporalExtents?e("b-row",[e("b-col",{staticClass:"label",attrs:{md:"4"}},[t._v(t._s(t.$t("catalog.temporalExtent")))]),e("b-col",{staticClass:"value",attrs:{md:"8"}},[e("span",{domProps:{innerHTML:t._s(t.temporalExtents)}})])],1):t._e()],1):t._e(),"left"===t.linkPosition?e("Links",{attrs:{title:t.$t("additionalResources"),links:t.additionalLinks}}):t._e()],1),t.isCollection||t.hasThumbnails?e("section",{staticClass:"mb-4"},[e("b-card",{staticClass:"maps-preview",attrs:{"no-body":""}},[e("b-tabs",{ref:"tabs",attrs:{pills:"",card:"",vertical:"",end:""},model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[t.isCollection?e("b-tab",{attrs:{title:t.$t("map"),"no-body":""}},[e("Map",{attrs:{stac:t.data,stacLayerData:t.mapData,fitBoundsOnce:"",popover:""},on:{dataChanged:t.dataChanged}})],1):t._e(),t.hasThumbnails?e("b-tab",{attrs:{title:t.$t("thumbnails"),"no-body":""}},[e("Thumbnails",{attrs:{thumbnails:t.thumbnails}})],1):t._e()],1)],1)],1):t._e(),t.hasAssets?e("Assets",{attrs:{assets:t.assets,context:t.data,shown:t.shownAssets},on:{showAsset:t.showAsset}}):t._e(),t.hasItemAssets&&!t.hasItems?e("Assets",{attrs:{assets:t.data.item_assets,definition:!0}}):t._e(),t.providers?e("Providers",{attrs:{providers:t.providers}}):t._e(),e("Metadata",{staticClass:"mb-4",attrs:{title:t.$t("metadata.title"),type:t.data.type,data:t.data,ignoreFields:t.ignoredMetadataFields}}),t.collectionLink?e("CollectionLink",{attrs:{link:t.collectionLink}}):t._e(),"right"===t.linkPosition?e("Links",{attrs:{title:t.$t("additionalResources"),links:t.additionalLinks}}):t._e()],1),t.hasCatalogs?e("b-col",{staticClass:"catalogs-container"},[e("Catalogs",{attrs:{catalogs:t.catalogs,hasMore:!!t.nextCollectionsLink},on:{loadMore:t.loadMoreCollections}})],1):t._e(),t.hasItems?e("b-col",{staticClass:"items-container"},[e("Items",{attrs:{stac:t.data,items:t.items,api:t.isApi,showFilters:t.showFilters,apiFilters:t.filters,pagination:t.itemPages,loading:t.apiItemsLoading},on:{paginate:t.paginateItems,filterItems:t.filterItems,filtersShown:t.filtersShown}}),t.hasItemAssets?e("Assets",{attrs:{assets:t.data.item_assets,definition:!0}}):t._e()],1):t._e()],1)],1)},H=[],G=a(33149),J=a(30578),K=a(83681),X=a(35834),Y={name:"Catalog",components:{AnonymizedNotice:()=>a.e(6553).then(a.bind(a,96553)),Assets:()=>a.e(1198).then(a.bind(a,41198)),BTabs:A.M,BTab:Z.L,Catalogs:G["default"],CollectionLink:()=>a.e(1247).then(a.bind(a,91247)),DeprecationNotice:()=>a.e(2815).then(a.bind(a,42815)),Description:_["default"],Items:J["default"],Keywords:()=>a.e(7245).then(a.bind(a,77245)),Links:()=>Promise.all([a.e(9539),a.e(2407),a.e(3154)]).then(a.bind(a,53154)),Map:()=>a.e(3805).then(a.bind(a,13805)),Metadata:()=>Promise.all([a.e(9539),a.e(2407),a.e(4622)]).then(a.bind(a,24622)),Providers:()=>a.e(604).then(a.bind(a,30604)),ReadMore:P(),Thumbnails:()=>a.e(5998).then(a.bind(a,55998))},mixins:[L,(0,K.Z)({formatLicense:X.formatLicense,formatTemporalExtents:X.formatTemporalExtents})],data(){return{filters:{},ignoredMetadataFields:["stac_version","stac_extensions","id","type","title","description","keywords","providers","license","extent","summaries","links","assets","item_assets","proj:bbox","proj:geometry","conformsTo","deprecated","anon:warning","stats:catalogs","stats:collections","stats:items","stac_browser"]}},computed:{...(0,o.rn)(["data","url","apiItems","apiItemsLink","apiItemsPagination","nextCollectionsLink","stateQueryParameters"]),...(0,o.Se)(["additionalLinks","catalogs","collectionLink","isCollection","items","getApiItemsLoading","parentLink","rootLink"]),showFilters(){return Boolean(this.stateQueryParameters["itemFilterOpen"])},hasThumbnails(){return this.thumbnails.length>0},linkPosition(){return 0===this.additionalLinks.length?null:this.isCollection||!this.hasThumbnails?"right":"left"},apiItemsLoading(){return this.getApiItemsLoading(this.data)},licenses(){return this.isCollection&&this.data.license?this.formatLicense(this.data.license,null,null,this.data):null},providers(){let t=[];return Array.isArray(this.data.providers)&&this.data.providers.length>0?t=this.data.providers:this.isCollection&&k.ZP.isObject(this.data.summaries)&&Array.isArray(this.data.summaries.providers)&&(t=this.data.summaries.providers),t.length>0?t:null},temporalExtents(){if(this.isCollection&&this.data.extent.temporal.interval.length>0){let t=this.data.extent.temporal.interval;return t.length>1&&(t=t.slice(1)),this.formatTemporalExtents(t)}return null},hasItemAssets(){var t;return k.ZP.size(null===(t=this.data)||void 0===t?void 0:t.item_assets)>0},itemPages(){let t=Object.assign({},this.apiItemsPagination);return!t.first&&this.data&&this.apiItemsLink&&"items"!==this.apiItemsLink.rel&&(t.first=k.ZP.addFiltersToLink(this.data.getApiItemsLink(),this.filters)),t},isApi(){return Boolean(this.apiItemsLink)},hasItems(){return this.items.length>0||this.isApi},hasCatalogs(){return this.catalogs.length>0},mapData(){return this.selectedAsset?this.selectedAsset:{type:"FeatureCollection",features:this.items}}},watch:{data:{immediate:!0,handler(t){try{let e=q(t,[this.parentLink,this.rootLink],this.$store);R(document,e)}catch(e){console.error(e)}}}},methods:{filtersShown(t){this.$store.commit("updateState",{type:"itemFilterOpen",value:t?1:null})},loadMoreCollections(){this.$store.dispatch("loadNextApiCollections",{show:!0})},async paginateItems(t){try{await this.$store.dispatch("loadApiItems",{link:t,show:!0,filters:this.filters})}catch(e){this.$root.$emit("error",e,this.$t("errors.loadItems"))}},async filterItems(t,e){this.filters=t,e&&this.$store.commit("resetApiItems",this.data.getApiItemsLink());try{await this.$store.dispatch("loadApiItems",{link:this.apiItemsLink,show:!0,filters:t})}catch(a){let t=e?this.$t("errors.loadItems"):this.$t("errors.loadFilteredItems");this.$root.$emit("error",a,t)}}}},tt=Y,et=(0,g.Z)(tt,Q,H,!1,null,null,null),at=et.exports,st={name:"Browse",components:{ErrorAlert:b,Loading:y.Z,Catalog:at,Item:N},props:{path:{type:String,default:""}},computed:{...(0,o.rn)(["allowExternalAccess","url","data","redirectLegacyUrls"]),...(0,o.Se)(["fromBrowserPath","isItem","error","loading"]),errorId(){if(this.error instanceof Error&&this.error.isAxiosError&&k.ZP.isObject(this.error.response)){let t=this.error.response;return k.ZP.isObject(t.data)&&t.data.code?t.data.code:t.status}return null},errorDescription(){if(this.error instanceof Error&&this.error.isAxiosError&&k.ZP.isObject(this.error.response)){let t=this.error.response;if(k.ZP.isObject(t.data)&&"string"===typeof t.data.description)return t.data.description;if(401===t.status)return this.$t("errors.unauthorized");if(403===t.status)return this.$t("errors.forbidden");if(404===t.status)return this.$t("errors.notFound");if(t.status>500)return this.$t("errors.serverError");if(t.status>400)return this.$t("errors.badRequest")}else if(this.error instanceof k.vV)return this.error.message;return this.$t("errors.networkError")},component(){return this.isItem?"Item":"Catalog"},isExternal(){return T()(this.path).is("absolute")}},watch:{path:{immediate:!0,async handler(t,e){if(t===e)return;if(!this.allowExternalAccess&&this.isExternal)return;if(this.redirectLegacyUrls&&await this.redirectLegacyUrl(t))return;let a=this.fromBrowserPath(t||"/");this.$store.dispatch("load",{url:a,show:!0,loadApi:!0})}}},methods:{async redirectLegacyUrl(t){if(!t||"/"===t)return!1;let e=t.split("/").filter((t=>t.length>0&&"item"!==t&&"collection"!==t));if(e.length>0&&e.every((t=>t.match(/^[123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ]+$/)))){const{decode:t}=await a.e(7191).then(a.t.bind(a,77191,23));let s=t(e[e.length-1]).toString();if(s){let t=T()(s);return this.$router.replace({path:"/"+t.path().replace(/(collections|items)\/?$/,""),query:t.query(!0)}),!0}}return!1}}},rt=st,it=(0,g.Z)(rt,c,u,!1,null,null,null),nt=it.exports;function ot(t){let e=[];return t.allowExternalAccess&&e.push({path:"/external/(.*)",name:"browseExternal",component:nt,props:t=>({path:`/external/${t.params.pathMatch}`})}),t.catalogUrl?e.push({path:"/search",name:"search",component:()=>Promise.all([a.e(9539),a.e(7053),a.e(8493)]).then(a.bind(a,9240))}):(e.push({path:"/",name:"select",component:()=>a.e(5260).then(a.bind(a,5260))}),e.push({path:"/search/external/(.*)",name:"search",component:()=>Promise.all([a.e(9539),a.e(7053),a.e(8493)]).then(a.bind(a,9240)),props:t=>({loadParent:`/external/${t.params.pathMatch}`})})),e.push({path:"/(.*)",name:"browse",component:nt,props:t=>({path:t.params.pathMatch})}),e}var lt=ot,ct=(a(30541),a(6154)),ut=a(54261),dt=a(57273),ht=a(62846),pt=a(59189);function ft(t,e){const a=()=>({url:"",title:t.catalogTitle,description:null,data:null,valid:null,parents:null,globalError:null,localRequestQueryParameters:{},stateQueryParameters:{language:null,asset:[],itemdef:[]},apiItems:[],apiItemsLink:null,apiItemsPagination:{}}),r=()=>({queue:[],privateQueryParameters:{},authData:null,doAuth:[],conformsTo:[],dataLanguage:null,dataLanguages:[],apiCollections:[],apiItemsLoading:{},nextCollectionsLink:null});return new o.ZP.Store({strict:!0,state:Object.assign({},t,a(),r(),{database:{},allowSelectCatalog:!t.catalogUrl,globalRequestQueryParameters:t.requestQueryParameters,uiLanguage:t.locale}),getters:{loading:t=>!t.url||!t.data||t.database[t.url]instanceof dt.gb,getApiItemsLoading:t=>e=>{let a="";return e instanceof dt.gb||(e instanceof x.Z?a=e.id:"string"===typeof e&&(a=e),t.apiItemsLoading[a]||!1)},error:t=>t.database[t.url]instanceof Error?t.database[t.url]:null,getStac:t=>(e,a=!1)=>{if(e instanceof x.Z)return e;if(k.ZP.isObject(e)&&k.ZP.hasText(e.href)&&(e=e.href),!k.ZP.hasText(e))return null;let s=k.ZP.toAbsolute(e,t.url),r=t.database[s];return r instanceof x.Z||a&&r instanceof Error?r:null},displayCatalogTitle:(t,e)=>x.Z.getDisplayTitle(e.root,t.catalogTitle),isCollection:t=>{var e;return(null===(e=t.data)||void 0===e?void 0:e.isCollection())||!1},isCatalog:t=>{var e;return(null===(e=t.data)||void 0===e?void 0:e.isCatalog())||!1},isCatalogLike:t=>{var e;return(null===(e=t.data)||void 0===e?void 0:e.isCatalogLike())||!1},isItem:t=>{var e;return(null===(e=t.data)||void 0===e?void 0:e.isItem())||!1},root:(t,e)=>e.getStac(e.rootLink),rootLink:t=>{var e;let a=null===(e=t.data)||void 0===e?void 0:e.getStacLinkWithRel("root");if(a)return a;if(t.catalogUrl)return k.ZP.createLink(t.catalogUrl,"root");if(t.url&&t.data instanceof x.Z&&t.data.getLinksWithRels(["conformance","service-desc","service-doc","data","search"]).length>0)return k.ZP.createLink(t.url,"root");if(t.url){let e=T()(t.url),a=e.segment(-2);if(["collections","items"].includes(a))return e.segment(-1,""),e.segment(-1,""),"items"===a&&(e.segment(-1,""),e.segment(-1,"")),k.ZP.createLink(e.toString(),"root")}return null},parentLink:t=>{if(t.data instanceof x.Z){let e=t.data.getStacLinkWithRel("parent");if(e)return e}if(t.url){let e=T()(t.url),a=e.segment(-2);if(["collections","items"].includes(a))return e.segment(-1,""),e.segment(-1,""),k.ZP.createLink(e.toString(),"parent")}return null},collectionLink:t=>{if(t.data instanceof x.Z){var e;let a=null===(e=t.data)||void 0===e?void 0:e.getStacLinkWithRel("collection");if(a)return a}if(t.url){let e=T()(t.url),a=e.segment(-2);if("items"==a)return e.segment(-1,""),e.segment(-1,""),k.ZP.createLink(e.toString(),"collection")}return null},supportsConformance:t=>e=>{if(!Array.isArray(e))return e;let a=e.map((t=>t.replaceAll("*","[^/]+").replace(/\/?#/,"/?#"))).join("|"),s=new RegExp("^("+a+")$");return Boolean(t.conformsTo.find((t=>t.match(s))))},supportsExtension:t=>e=>k.ZP.supportsExtension(t.data,e),canSearch:(t,e)=>e.canSearchCollections||e.canSearchItems,canSearchItems:(t,e)=>e.supportsConformance(pt.v.Items.BasicFilters),canSearchCollections:(t,e)=>e.supportsConformance(pt.v.Collections.BasicFilters),items:t=>t.apiItems.length>0?t.apiItems:t.data?t.data.getStacLinksWithRel("item"):[],catalogs:t=>{let e=Boolean(t.data instanceof x.Z&&t.data.getApiCollectionsLink()&&t.apiCollections.length>0),a=Boolean(t.data instanceof x.Z),s=!t.apiCatalogPriority||"collections"===t.apiCatalogPriority,r=!t.apiCatalogPriority||"childs"===t.apiCatalogPriority,i=[];return e&&s&&(i=i.concat(t.apiCollections)),a&&r&&(i=x.Z.addMissingChildren(i,t.data)),i},hasAssets:(t,e)=>Boolean(Object.values(e.assets).find((t=>k.ZP.isObject(t)&&"string"===typeof t.href))),assets:(t,e)=>{var a;if(k.ZP.isObject(null===(a=t.data)||void 0===a?void 0:a.assets)){if(t.showThumbnailsAsAssets)return t.data.assets;{let a={},s=e.thumbnails;for(let e in t.data.assets){let r=t.data.assets[e];s.includes(r)||(a[e]=r)}return a}}return{}},thumbnails:t=>t.data?t.data.getThumbnails(!0):[],additionalLinks:t=>t.data?t.data.getLinksWithOtherRels(ut.RG).filter((t=>"preview"!==t.rel||!k.ZP.canBrowserDisplayImage(t))):[],toBrowserPath:(t,e)=>a=>{k.ZP.hasText(a)||(a="/");let s,r=k.ZP.toAbsolute((0,dt.dJ)(a,t.stacProxyUrl),t.url,!1);if(!t.allowSelectCatalog&&t.catalogUrl&&(s=r.relativeTo(t.catalogUrl)),"undefined"===typeof s||e.isExternalUrl(r,!1)){if(!t.allowExternalAccess)return r.toString();let e=["/external"],a=r.protocol();"https"!==a&&e.push(a+":"),e.push(r.authority()),e.push(r.path().replace(/^\//,""));let s=e.join("/"),i=r.query();return i&&(s+=`?${i}`),s}return"/"+s.toString()},fromBrowserPath:(t,e)=>a=>{const s=/^\/(search\/)?external\//;if(k.ZP.hasText(a)&&"/"!==a)if(a.match(s)){let t,e=a.replace(s,"").split("/");t=e[0].endsWith(":")?e.shift():"https:",a=`${t}//${e.join("/")}`}else!t.allowSelectCatalog&&t.catalogUrl&&(a=k.ZP.toAbsolute(a,t.catalogUrl,!1));else a=t.catalogUrl;return e.getRequestUrl(a,null,!0)},isExternalUrl:t=>(e,a=!0)=>{if(!t.catalogUrl)return!1;if(e instanceof T()||(e=T()(e)),a&&Array.isArray(t.allowedDomains)&&t.allowedDomains.includes(e.domain()))return!1;let s;if(e.is("relative"))s=e;else if(s=e.relativeTo(t.catalogUrl),s.equals(e))return!0;let r=s.toString();return r.startsWith("//")||r.startsWith("../")},getRequestUrl:(t,e)=>(a,s=null,r=!1)=>{let i=k.ZP.toAbsolute((0,dt.qy)(a,t.stacProxyUrl),s||t.url,!1);return e.isExternalUrl(i)||((0,dt.Us)(i,t.privateQueryParameters),(0,dt.Us)(i,t.globalRequestQueryParameters),r&&(0,dt.Us)(i,t.localRequestQueryParameters)),i.toString()},acceptedLanguages:t=>{const e={en:.1};return Array.isArray(t.supportedLocales)&&t.supportedLocales.forEach((t=>e[t]=.2)),k.ZP.hasText(t.fallbackLocale)&&(e[t.fallbackLocale]=.5),Array.isArray(navigator.languages)&&navigator.languages.forEach((t=>e[t]=.7)),k.ZP.hasText(t.locale)&&(e[t.locale]=1),Object.entries(e).sort(((t,e)=>t[1]>e[1]?-1:t[1]e>=1?t:`${t};q=${e}`)).join(",")}},mutations:{config(t,e){for(let a in e){let s=e[a];switch(a){case"catalogTitle":t.catalogTitle=s;break;case"catalogUrl":"function"===typeof s?t.catalogUrl=s():"string"===typeof s&&(t.catalogUrl=s);break;case"crossOriginMedia":t.crossOriginMedia=["anonymous","use-credentials"].includes(s)?s:null;break;case"cardViewSort":switch(s){case"asc":t.cardViewSort=1;break;case"desc":t.cardViewSort=-1;break;default:t.cardViewSort=0}break;default:t[a]=s}}},languages(t,{uiLanguage:e,dataLanguage:a}){t.dataLanguage=a||null,t.uiLanguage=e||null},setQueryParameter(t,{type:e,key:a,value:r}){e=`${e}QueryParameters`,"undefined"===typeof r?s.ZP.delete(t[e],a):s.ZP.set(t[e],a,r)},setRequestHeader(t,{key:e,value:a}){"undefined"===typeof a?s.ZP.delete(t.requestHeaders,e):s.ZP.set(t.requestHeaders,e,a)},requestAuth(t,e){"function"===typeof e?t.doAuth.push(e):t.doAuth=[]},setAuthData(t,e){t.authData=e},state(t,e){t.stateQueryParameters=e},updateState(t,{type:e,value:a}){null===a||"undefined"===typeof a?s.ZP.delete(t.stateQueryParameters,e):s.ZP.set(t.stateQueryParameters,e,a)},openCollapsible(t,{type:e,uid:a}){const s=t.stateQueryParameters[e].indexOf(a);-1===s&&t.stateQueryParameters[e].push(a)},closeCollapsible(t,{type:e,uid:a}){const r=t.stateQueryParameters[e].indexOf(a);r>-1&&s.ZP.delete(t.stateQueryParameters[e],r)},updateLoading(t,{url:e,show:a,loadApi:r}){let i=t.database[e];s.ZP.set(i,"show",a||i.show),s.ZP.set(i,"loadApi",r||i.loadApi)},loading(t,{url:e,loading:a}){s.ZP.set(t.database,e,a),a.show&&(t.url=e)},loaded(t,{url:e,data:a}){s.ZP.set(t.database,e,(0,dt.a_)(t,a))},clear(t,e){s.ZP.delete(t.database,e)},resetCatalog(e,s){Object.assign(e,r()),Object.assign(e,a()),e.supportedLocales.includes(e.locale)||(e.locale=t.locale),s&&(e.catalogUrl=t.catalogUrl,e.catalogTitle=t.catalogTitle,e.database={})},resetPage(t){Object.assign(t,a())},showPage(t,{url:e,title:a,description:s,stac:r}){if(r||(r=t.database[e]||null),t.url=e||null,t.data=r instanceof x.Z?r:null,t.valid=null,t.description=s,a)t.title=a;else if(t.title=x.Z.getDisplayTitle(t.data,t.catalogTitle),t.data){let e=t.data.getMetadata("description");k.ZP.hasText(e)&&(t.description=e)}if(t.data){let e=t.data.isItem()?t.data.properties:t.data,a=Array.isArray(e.languages)?e.languages.slice():[];k.ZP.isObject(e.language)&&a.unshift(e.language),t.dataLanguages=a.filter((t=>k.ZP.isObject(t)&&"string"===typeof t.code))}},errored(t,{url:e,error:a}){a instanceof Error||(a=new Error(a)),s.ZP.set(t.database,e,a)},valid(t,e){t.valid=e},queue(t,e){t.queue.push(e)},unqueue(t,e){let a=t.queue.indexOf(e);-1!==a&&t.queue.splice(a,1)},removeFromQueue(t,e){t.queue.splice(0,e)},setConformanceClasses(t,e){Array.isArray(e)&&(t.conformsTo=e)},setApiItemsLink(t,e){t.apiItemsLink=e},toggleApiItemsLoading(t,e=""){t.apiItemsLoading[e]?s.ZP.delete(t.apiItemsLoading,e):s.ZP.set(t.apiItemsLoading,e,!0)},setApiItems(t,{data:e,stac:a,show:s}){if(!k.ZP.isObject(e)||!Array.isArray(e.features))return;let r=e.features.map((e=>(0,dt.a_)(t,e)));s&&(t.apiItems=r);let i=k.ZP.getPaginationLinks(e);s&&(t.apiItemsPagination=i),a instanceof x.Z&&a.setApiData(r,i.next,i.prev)},addApiCollections(t,{data:e,stac:a,show:s}){if(!k.ZP.isObject(e)||!Array.isArray(e.collections))return;let r=e.collections.map((e=>(0,dt.a_)(t,e))),i=k.ZP.getLinkWithRel(e.links,"next");s&&(t.nextCollectionsLink=i,t.apiCollections=t.apiCollections.concat(r)),a instanceof x.Z&&a.setApiData(r,i)},resetApiItems(t,e){t.apiItems=[],t.apiItemsLink=e,t.apiItemsPagination={}},parents(t,e){t.parents=e},showGlobalError(t,e){console.error(e),t.globalError=e}},actions:{async switchLocale(t,{locale:e,userSelected:a}){if(t.commit("config",{locale:e}),t.state.storeLocale&&a)try{window.localStorage.setItem("locale",e)}catch(o){console.error(o)}let s=(0,ht.Si)(t.state.supportedLocales,e,t.state.fallbackLocale),r=t.state.dataLanguages.map((t=>t.code)),i=t.state.dataLanguages.length>0?t.state.dataLanguages[0].code:s,n=(0,ht.Si)(r,e,i);t.commit("languages",{dataLanguage:n,uiLanguage:s}),t.commit("setQueryParameter",{type:"state",key:"language",value:e})},async setAuth(t,e){k.ZP.hasText(e)||(e=null),t.commit("setAuthData",e);let a=t.state.authConfig,s=a.key;e&&("Bearer"===a.formatter?e=`Bearer ${e}`:"function"===typeof a.formatter&&(e=a.formatter(e))),k.ZP.hasText(e)||(e=void 0),"query"===a.type?t.commit("setQueryParameter",{type:"private",key:s,value:e}):"header"===a.type&&t.commit("setRequestHeader",{key:s,value:e})},async loadBackground(t,e){let a=t.state.queue.slice(0,e);if(a.length>0){let s=[];for(let e of a)s.push(t.dispatch("load",{url:e}));return t.commit("removeFromQueue",e),await Promise.all(s)}},async loadParents(t){if(!(t.state.data instanceof x.Z))return void t.commit("parents",[]);let e=[],a=t.state.data;while(a){let s=a.getLinkWithRel("parent")||a.getLinkWithRel("root");if(!s)break;let r=k.ZP.toAbsolute(s.href,a.getAbsoluteUrl());await t.dispatch("load",{url:r,loadApi:!0});let i=t.getters.getStac(r,!0);if(i instanceof Error)return void t.commit("parents",i);if(i===a)break;e.push(i),a=i}t.commit("parents",e)},async load(t,a){let{url:s,show:r,loadApi:i,loadRoot:n,force:o}=a,l=t.getters.toBrowserPath(s);s=k.ZP.toAbsolute(s,t.state.url),n||"/"===l||!t.state.catalogUrl||t.getters.getStac(t.state.catalogUrl)||await t.dispatch("load",{url:t.state.catalogUrl,loadApi:!0,loadRoot:!0}),o&&t.commit("clear",s);let c=new dt.gb(r,i),u=t.state.database[s];if(u instanceof dt.gb)t.commit("updateLoading",{url:s,show:r,loadApi:i});else{if(!u||u instanceof x.Z&&u.isPotentiallyIncomplete()){t.commit("loading",{url:s,loading:c});try{let a=await(0,dt.ui)(t,s);if(!k.ZP.isObject(a.data))throw new k.vV(O.ZP.t("errors.invalidJsonObject"));if(u=new x.Z(a.data,s,l),r){let a=u.getLocaleLink(t.state.dataLanguage);if(a)return void e.replace(t.getters.toBrowserPath(a.href))}if(t.commit("loaded",{url:s,data:u}),!t.getters.root){let e=u.getLinkWithRel("root");e&&t.commit("config",{catalogUrl:k.ZP.toAbsolute(e.href,s)})}let i=u.getStacLinkWithRel("conformance");Array.isArray(u.conformsTo)&&u.conformsTo.length>0?t.commit("setConformanceClasses",u.conformsTo):i&&await t.dispatch("loadOgcApiConformance",i)}catch(d){if(t.state.authConfig&&(0,dt.HH)(d))return t.commit("clear",s),void t.commit("requestAuth",(()=>t.dispatch("load",a)));console.error(d),t.commit("errored",{url:s,error:d})}}if(c.loadApi&&u instanceof x.Z){if(u.getApiCollectionsLink()){let e={stac:u,show:c.show};try{await t.dispatch("loadNextApiCollections",e)}catch(d){t.state.authConfig&&(0,dt.HH)(d)?t.commit("requestAuth",(()=>t.dispatch("loadNextApiCollections",e))):t.commit("showGlobalError",{message:O.ZP.t("errors.loadApiCollectionsFailed"),error:d})}}if(u.getApiItemsLink()){let e={stac:u,show:c.show};try{await t.dispatch("loadApiItems",e)}catch(d){t.state.authConfig&&(0,dt.HH)(d)?t.commit("requestAuth",(()=>t.dispatch("loadApiItems",e))):t.commit("showGlobalError",{message:O.ZP.t("errors.loadApiItemsFailed"),error:d})}}}c.show&&t.commit("showPage",{url:s})}},async loadApiItems(t,{link:e,stac:a,show:s,filters:r}){let i=a instanceof x.Z?a.id:"";t.commit("toggleApiItemsLoading",i);try{let n=t.state.url;a instanceof x.Z&&(e=a.getApiItemsLink(),n=a.getAbsoluteUrl()),e=k.ZP.addFiltersToLink(e,r,t.state.itemsPerPage);let o=await(0,dt.ui)(t,e);if(k.ZP.isObject(o.data)&&Array.isArray(o.data.features))return o.data.features=o.data.features.map((e=>{try{if(!k.ZP.isObject(e)||"Feature"!==e.type)return null;let s,r=k.ZP.getLinkWithRel(e.links,"self");if(null!==r&&void 0!==r&&r.href)s=k.ZP.toAbsolute(r.href,n);else{if("undefined"===typeof e.id)return null;{var a;let r=null===(a=t.getters.root)||void 0===a?void 0:a.getApiCollectionsLink();if(n)s=k.ZP.toAbsolute(`items/${e.id}`,n);else if(r)s=k.ZP.toAbsolute(`${i}/items/${e.id}`,r.href);else{if(!t.state.catalogUrl)return null;s=k.ZP.toAbsolute(`collections/${i}/items/${e.id}`,t.state.catalogUrl)}}}let o=t.getters.getStac(s);return o||(o=new x.Z(e,s,t.getters.toBrowserPath(s)),o.markPotentiallyIncomplete(),t.commit("loaded",{data:o,url:s}),o)}catch(s){return console.error(s),null}})).filter((t=>t instanceof x.Z)),s&&t.commit("setApiItemsLink",e),t.commit("setApiItems",{data:o.data,stac:a,show:s}),t.commit("toggleApiItemsLoading",i),o;throw new k.vV(O.ZP.t("errors.invalidStacItems"))}catch(n){throw t.commit("toggleApiItemsLoading",i),n}},async loadNextApiCollections(t,{stac:e,show:a}){let s;if(e){if(t.state.apiCollections.length>0)return;s=e.getLinkWithRel("data")}else e=t.state.data,s=t.state.nextCollectionsLink;if(!s)return;let r=await(0,dt.ui)(t,s);if(!k.ZP.isObject(r.data)||!Array.isArray(r.data.collections))throw new k.vV(O.ZP.t("errors.invalidStacCollections"));r.data.collections=r.data.collections.map((a=>{let s,r=k.ZP.getLinkWithRel(a.links,"self");s=null!==r&&void 0!==r&&r.href?k.ZP.toAbsolute(r.href,t.state.url||e.getAbsoluteUrl()):k.ZP.toAbsolute(`collections/${a.id}`,t.state.catalogUrl||e.getAbsoluteUrl());let i=t.getters.getStac(s);return i||(i=new x.Z(a,s,t.getters.toBrowserPath(s)),i.markPotentiallyIncomplete(),t.commit("loaded",{data:i,url:s}),i)})),t.commit("addApiCollections",{data:r.data,stac:e,show:a})},async loadOgcApiConformance(t,e){let a=await(0,dt.ui)(t,e);k.ZP.isObject(a.data)&&Array.isArray(a.data.conformsTo)&&t.commit("setConformanceClasses",a.data.conformsTo)},async loadGeoJson(t,e){try{let a=await(0,dt.ui)(t,e);return a.data}catch(a){return null}},async retryAfterAuth(t){let e=e=>t.commit("showGlobalError",{error:e,message:O.ZP.t("errors.authFailed")});for(let s of t.state.doAuth)try{let t=s();t instanceof Promise&&t.catch(e)}catch(a){e(a)}},async validate(t,e){if("boolean"!==typeof t.state.valid)try{var a,s;let r=T()("https://api.staclint.com/url");r.addSearch("stac_url",e);let i=await ct.Z.get(r.toString());t.commit("valid",Boolean(null===(a=i.data)||void 0===a||null===(s=a.body)||void 0===s?void 0:s.valid_stac))}catch(r){t.commit("valid",r)}}}})}var gt=ft,mt=a(54063),bt=a(63800),yt=a(1869),vt=a(32026),wt=a(12926),_t=a(8824),Ct=a(81899),Pt=a(71067),kt=a(58290),Lt=(a(57024),function(){var t=this,e=t._self._c;return e("b-row",[e("b-col",{attrs:{md:"12"}},[e("Source",{staticClass:"float-right",attrs:{title:t.title,stacUrl:t.url,stac:t.data}}),e("h1",[t.icon?[e("img",{staticClass:"icon mr-2",attrs:{src:t.icon.href,alt:t.icon.title,title:t.icon.title}})]:t._e(),e("span",{staticClass:"title"},[t._v(t._s(t.title))])],2),t.url||t.isSearchPage()?e("p",{staticClass:"lead"},[t.containerLink?e("i18n",{staticClass:"in mr-3",attrs:{tag:"span",path:"in"},scopedSlots:t._u([{key:"catalog",fn:function(){return[e("StacLink",{attrs:{data:t.containerLink}})]},proxy:!0}],null,!1,1458487365)}):t._e(),e("b-button-group",[t.parentLink?e("b-button",{attrs:{to:t.toBrowserPath(t.parentLink.href),title:t.parentLinkTitle,variant:"outline-primary",size:"sm"}},[e("b-icon-arrow-90deg-up"),t._v(" "),e("span",{staticClass:"button-label prio"},[t._v(t._s(t.$t("goToParent.label")))])],1):t._e(),t.collectionLink?e("b-button",{attrs:{to:t.toBrowserPath(t.collectionLink.href),title:t.collectionLinkTitle,variant:"outline-primary",size:"sm"}},[e("b-icon-folder-symlink"),t._v(" "),e("span",{staticClass:"button-label prio"},[t._v(t._s(t.$t("goToCollection.label")))])],1):t._e(),e("b-button",{directives:[{name:"b-toggle",rawName:"v-b-toggle.sidebar",modifiers:{sidebar:!0}}],attrs:{variant:"outline-primary",size:"sm",title:t.$t("browse")},on:{click:function(e){return t.$emit("enableSidebar")}}},[e("b-icon-book"),t._v(" "),e("span",{staticClass:"button-label prio"},[t._v(t._s(t.$t("browse")))])],1),t.canSearch?e("b-button",{attrs:{variant:"outline-primary",size:"sm",to:t.searchBrowserLink,title:t.$t("search.title"),pressed:t.isSearchPage()}},[e("b-icon-search"),t._v(" "),e("span",{staticClass:"button-label prio"},[t._v(t._s(t.$t("search.title")))])],1):t._e(),t.authConfig?e("b-button",{attrs:{variant:"outline-primary",size:"sm",title:t.$t("authentication.button.title")},on:{click:t.auth}},[t.authData?[e("b-icon-lock"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("authentication.button.authenticated")))])]:[e("b-icon-unlock"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("authentication.button.authenticate")))])]],2):t._e()],1)],1):t._e()],1)],1)}),At=[],Zt=function(){var t=this,e=t._self._c;return e("div",{staticClass:"share mt-1"},[e("b-button-group",[t.showRoot?e("b-button",{attrs:{size:"sm",variant:"outline-primary",id:"popover-root-btn"}},[e("b-icon-box"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.rootTitle))])],1):t._e(),t.stacUrl?e("b-button",{attrs:{size:"sm",variant:"outline-primary",id:"popover-link-btn",title:t.$t("source.detailsAboutSource")}},[e("b-icon-link"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("source.label")))])],1):t._e(),e("b-button",{attrs:{size:"sm",variant:"outline-primary",id:"popover-share-btn",title:t.$t("source.share.withOthers")}},[e("b-icon-share"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("source.share.label")))])],1),e("b-dropdown",{attrs:{size:"sm",variant:"outline-primary",right:"",title:t.$t("source.language.switch")},scopedSlots:t._u([{key:"button-content",fn:function(){return[e("b-icon-flag"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("source.language.label",{currentLanguage:t.currentLanguage})))])]},proxy:!0}])},t._l(t.languages,(function(a){return e("b-dropdown-item",{key:a.code,staticClass:"lang-item",on:{click:function(e){return t.switchLocale({locale:a.code,userSelected:!0})}}},[t.locale===a.code?e("b-icon-check"):e("b-icon-blank"),e("span",{staticClass:"title"},[t._v(" "+t._s(a.native)+" "),a.global&&a.global!==a.native?[t._v(" / "+t._s(a.global))]:t._e()],2),!t.supportsLanguageExt||a.ui&&a.data?t._e():e("b-icon-exclamation-triangle",{staticClass:"ml-2",attrs:{title:a.ui?t.$t("source.language.onlyUI"):t.$t("source.language.onlyData")}})],1)})),1)],1),t.showRoot?e("b-popover",{attrs:{id:"popover-root",target:"popover-root-btn",triggers:"focus",placement:"bottom",container:"stac-browser",title:t.rootTitle}},[e("RootStats")],1):t._e(),t.stacUrl?e("b-popover",{attrs:{id:"popover-link",target:"popover-link-btn",triggers:"click",placement:"bottom",container:"stac-browser",title:t.$t("source.title")},on:{show:t.validate}},[t.stac?[t.stacId?e("b-row",{staticClass:"stac-id"},[e("b-col",{attrs:{cols:"4"}},[t._v(t._s(t.$t("source.id")))]),e("b-col",[e("code",[t._v(t._s(t.stacId))]),e("CopyButton",{staticClass:"ml-2",attrs:{copyText:t.stacId,"button-props":{size:"sm"},variant:"primary"}})],1)],1):t._e(),t.stacVersion?e("b-row",{staticClass:"stac-version"},[e("b-col",{attrs:{cols:"4"}},[t._v(t._s(t.$t("source.stacVersion")))]),e("b-col",[t._v(t._s(t.stacVersion))])],1):t._e(),t.canValidate?e("b-row",{staticClass:"validation"},[e("b-col",{attrs:{cols:"4"}},[t._v(t._s(t.$t("source.valid")))]),e("b-col",[null===t.valid?e("b-spinner",{attrs:{label:t.$t("source.validating"),small:""}}):!0===t.valid?[t._v("✔️")]:!1===t.valid?[t._v("❌")]:[t._v(t._s(t.$t("source.validationNA")))]],2)],1):t._e(),e("hr")]:t._e(),e("Url",{attrs:{id:"stacUrl",url:t.stacUrl,label:t.$t("source.locatedAt")}})],2):t._e(),e("b-popover",{attrs:{id:"popover-share",target:"popover-share-btn",triggers:"focus",placement:"bottom",container:"stac-browser",title:t.$t("source.share.title")}},[e("Url",{attrs:{id:"browserUrl",url:t.browserUrl(),label:t.$t("source.share.sharePageWithOthers"),open:!1}}),e("hr"),e("b-button",{staticClass:"twitter mr-1",attrs:{href:t.twitterUrl}},[e("b-icon-twitter"),t._v(" "+t._s(t.$t("source.share.twitter")))],1),e("b-button",{attrs:{variant:"dark",href:t.mailTo}},[e("b-icon-envelope"),t._v(" "+t._s(t.$t("source.share.email")))],1)],1)],1)},xt=[],St=a(36537),Tt=a(87379),Ot=a(38019),$t=a(87450),It=function(){var t=this,e=t._self._c;return e("b-form-group",{attrs:{label:t.label,"label-for":t.id}},[e("b-input-group",{attrs:{size:"sm"}},[e("b-form-input",{ref:"input",attrs:{id:t.id,value:t.url,readonly:""}}),e("b-input-group-append",[e("CopyButton",{attrs:{copyText:t.url,variant:"primary"}}),t.open?e("b-button",{attrs:{href:t.url,target:"_blank",variant:"primary",title:t.$t("open")}},[e("b-icon-arrow-up-right-square")],1):t._e()],1)],1)],1)},jt=[],Bt=a(54240),Ft=a(27353),Mt=a(91317),Ut=a(22418),Et={name:"Share",components:{BFormGroup:Bt.x,BFormInput:Ft.e,BIconArrowUpRightSquare:Ot.k$g,BInputGroup:Mt.w,BInputGroupAppend:Ut.B,CopyButton:()=>Promise.resolve().then(a.bind(a,89988))},props:{id:{type:String,required:!0},url:{type:String,required:!0},label:{type:String,required:!0},open:{type:Boolean,default:!0}}},qt=Et,Dt=(0,g.Z)(qt,It,jt,!1,null,"74684ede",null),Rt=Dt.exports,zt=a(89988);const Wt="https://stac-extensions.github.io/language/v1.*/schema.json";var Vt={name:"Source",components:{BDropdown:St.R,BDropdownItem:Tt.E,BIconBlank:Ot.GWp,BIconBox:Ot.rqI,BIconCheck:Ot.PaS,BIconEnvelope:Ot.AzZ,BIconExclamationTriangle:Ot.Sbj,BIconFlag:Ot.G49,BIconLink:Ot.ZV1,BIconShare:Ot.Rq4,BIconTwitter:Ot.A82,BPopover:$t.x,RootStats:()=>a.e(2588).then(a.bind(a,42588)),Url:Rt,CopyButton:zt["default"]},props:{title:{type:String,required:!0},stacUrl:{type:String,default:null},stac:{type:String,default:null}},computed:{...(0,o.rn)(["conformsTo","dataLanguages","locale","privateQueryParameters","supportedLocales","stacLint","stacProxyUrl","uiLanguage","valid"]),...(0,o.Se)(["supportsExtension","root"]),stacVersion(){var t;return null===(t=this.stac)||void 0===t?void 0:t.stac_version},stacId(){var t;return null===(t=this.stac)||void 0===t?void 0:t.id},showRoot(){return!!this.root&&(Array.isArray(this.conformsTo)&&this.conformsTo.length>0||k.ZP.isObject(this.root["stats:collections"])||k.ZP.isObject(this.root["stats:catalogs"])||k.ZP.isObject(this.root["stats:items"]))},rootTitle(){return Array.isArray(this.conformsTo)&&this.conformsTo.length>0?this.$t("index.api"):this.$t("index.catalog")},currentLanguage(){let t=this.languages.find((t=>t.code===this.locale));return t?t.native:"-"},canValidate(){if(!this.stacLint||"string"!==typeof this.stacUrl)return!1;if(k.ZP.size(this.privateQueryParameters)>0)return!1;if(Array.isArray(this.stacProxyUrl))return!1;let t=T()(this.stacUrl),e=t.hostname().toLowerCase();return"localhost"!==e&&!e.startsWith("127.")&&"::1"!==e},message(){return this.$t("source.share.message",{title:this.title,url:this.browserUrl()})},twitterUrl(){let t=encodeURIComponent(this.message);return`https://twitter.com/intent/tweet?text=${t}`},mailTo(){let t=encodeURIComponent(this.title),e=encodeURIComponent(this.message);return`mailto:?subject=${t}&body=${e}`},supportsLanguageExt(){return this.supportsExtension(Wt)},languages(){let t=[];for(let e of this.supportedLocales)t.push({code:e,native:this.$t(`languages.${e}.native`),global:this.$t(`languages.${e}.global`),ui:!0});for(let e of this.dataLanguages){if(!k.ZP.isObject(e)||!e.code||this.supportedLocales.includes(e.code))continue;let a={code:e.code};a.native=e.name||e.alternate||e.code,a.global=e.alternate||e.name||e.code,a.data=!0,t.push(a)}if(this.supportsExtension(Wt)){const e=(0,ht.xI)(this.supportedLocales),a=(0,ht.xI)(this.dataLanguages.map((t=>t.code)));for(let s of t)s.ui||(s.ui=Boolean((0,ht.Si)(e,s.code,null))),s.data||(s.data=Boolean((0,ht.Si)(a,s.code,null)))}return t.sort(((t,e)=>t.global.localeCompare(e.global,this.uiLanguage)))}},methods:{...(0,o.nv)(["switchLocale"]),async validate(){this.canValidate&&await this.$store.dispatch("validate",this.stacUrl)},browserUrl(){return window.location.toString()}}},Nt=Vt,Qt=(0,g.Z)(Nt,Zt,xt,!1,null,"2542c9fa",null),Ht=Qt.exports,Gt=a(63338),Jt={name:"StacHeader",components:{BIconArrow90degUp:Ot.sDn,BIconBook:Ot.$ek,BIconFolderSymlink:Ot.y5,BIconSearch:Ot.Lln,BIconLock:Ot.MJF,BIconUnlock:Ot.pT1,StacLink:Gt["default"],Source:Ht},computed:{...(0,o.rn)(["allowSelectCatalog","authConfig","authData","catalogUrl","data","url","title"]),...(0,o.Se)(["canSearch","root","parentLink","collectionLink","toBrowserPath"]),collectionLinkTitle(){return this.collectionLink&&k.ZP.hasText(this.collectionLink.title)?this.$t("goToCollection.descriptionWithTitle",this.collectionLink):this.$t("goToCollection.description")},parentLinkTitle(){return this.parentLink&&k.ZP.hasText(this.parentLink.title)?this.$t("goToParent.descriptionWithTitle",this.parentLink):this.$t("goToParent.description")},icon(){if(this.data instanceof x.Z){let t=this.data.getIcons();if(t.length>0)return t[0]}return null},searchBrowserLink(){if(!this.canSearch)return null;let t;return this.data instanceof x.Z&&!this.data.equals(this.root)&&(t=this.data.getSearchLink()),t?`/search${this.data.getBrowserPath()}`:this.root&&this.allowSelectCatalog?`/search${this.root.getBrowserPath()}`:"/search"},containerLink(){return this.catalogUrl&&this.url===this.catalogUrl?null:this.root?k.ZP.equalUrl(this.root.getAbsoluteUrl(),this.url)?null:{href:this.root.getAbsoluteUrl(),rel:"root",title:x.Z.getDisplayTitle(this.root)}:this.collectionLink||this.parentLink}},methods:{isSearchPage(){return"search"===this.$router.currentRoute.name},auth(){this.$store.commit("requestAuth",(()=>this.$store.dispatch("load",{url:this.url,loadApi:!0,show:!0,force:!0})))}}},Kt=Jt,Xt=(0,g.Z)(Kt,Lt,At,!1,null,"e9cfbf72",null),Yt=Xt.exports,te=a(28713),ee=a.n(te);s.ZP.use(mt.F),s.ZP.use(bt.d),s.ZP.use(yt.SY),s.ZP.use(vt.T),s.ZP.use(wt.xL),s.ZP.use(_t.A6),s.ZP.use(Ct.s),s.ZP.directive("b-toggle",Pt.M),s.ZP.directive("b-visible",kt.z),s.ZP.use(n.ZP);const ae=new n.ZP({mode:l.Z.historyMode,base:l.Z.pathPrefix,routes:lt(l.Z)});s.ZP.use(o.ZP);const se=gt(l.Z,ae);let re={},ie={};for(let de in l.Z)re[de]={default:["object","function"].includes(typeof l.Z[de])?()=>l.Z[de]:l.Z[de]},ie[de]={immediate:!0,handler:function(t){this.$store.commit("config",{[de]:t})}};var ne={name:"StacBrowser",router:ae,store:se,components:{Authentication:()=>a.e(1364).then(a.bind(a,1364)),ErrorAlert:b,Sidebar:()=>a.e(7710).then(a.bind(a,77710)),StacHeader:Yt},props:{...re},data(){return{sidebar:!1,error:null,onDataLoaded:null}},computed:{...(0,o.rn)(["allowSelectCatalog","data","dataLanguage","description","doAuth","globalError","stateQueryParameters","title","uiLanguage","url"]),...(0,o.rn)({catalogUrlFromVueX:"catalogUrl",detectLocaleFromBrowserFromVueX:"detectLocaleFromBrowser",fallbackLocaleFromVueX:"fallbackLocale",supportedLocalesFromVueX:"supportedLocales",storeLocaleFromVueX:"storeLocale"}),...(0,o.Se)(["displayCatalogTitle","fromBrowserPath","isExternalUrl","root","supportsConformance","toBrowserPath"]),browserVersion(){return"3.1.0"}},watch:{...ie,title(t){document.title=t},description(t){let e=document.getElementById("meta-description");e&&e.setAttribute("content",k.ZP.summarizeMd(t,200))},uiLanguage:{immediate:!0,async handler(t){t&&(ee().locales=[t],ee().translate=O.Cy,await(0,O.EV)(t),this.$root.$i18n.locale=t,document.documentElement.setAttribute("lang",t))}},dataLanguage:{immediate:!0,async handler(t){if(t&&this.data instanceof x.Z){let e=this.data.getLocaleLink(t);if(e){let t=Object.assign({},this.stateQueryParameters);this.$router.push(this.toBrowserPath(e.href)),this.$store.commit("state",t)}else if(this.supportsConformance(O.Mk)){let t=this.url;this.$store.commit("resetCatalog",!0),await this.$store.dispatch("load",{url:t,loadApi:!0,show:!0})}}}},catalogUrlFromVueX(t){t&&this.$store.dispatch("load",{url:t,loadApi:!0})},stateQueryParameters:{deep:!0,handler(){let t={};for(const[e,a]of Object.entries(this.$route.query))e.startsWith(".")||(t[e]=a);for(const[e,a]of Object.entries(this.stateQueryParameters)){let s=`.${e}`;Array.isArray(a)?a.length>0&&(t[s]=a.join(",")):null!==a&&(t[s]=a)}this.$router.replace({query:t}).catch((t=>{if(!n.ZP.isNavigationFailure(t,n.ZP.NavigationFailureType.duplicated))throw Error(t)}))}},root(t,e){const a=["apiCatalogPriority","authConfig","cardViewMode","cardViewSort","crossOriginMedia","defaultThumbnailSize","displayGeoTiffByDefault","showThumbnailsAsAssets","stacLint"];let s=!t||e&&k.ZP.isObject(e["stac_browser"]),r=t&&k.ZP.isObject(t["stac_browser"]);for(let i of a){let e;s&&(e=l.Z[i]),r&&"undefined"!==typeof t["stac_browser"][i]&&(e=t["stac_browser"][i]),("stacLint"!==i||l.Z.stacLint)&&("undefined"!==typeof e&&this.$store.commit("config",{[i]:e}))}},data(t){this.onDataLoaded&&t instanceof x.Z&&this.onDataLoaded()}},created(){this.$router.onReady((()=>{this.detectLocale(),this.parseQuery(this.$route)})),this.$router.afterEach(((t,e)=>{if(t.path===e.path)return;let a="resetPage";if(this.allowSelectCatalog&&t.path){let e=this.fromBrowserPath(t.path);this.isExternalUrl(e)&&(a="resetCatalog")}this.$store.commit(a),this.parseQuery(t)}))},mounted(){this.$root.$on("error",this.showError),setInterval((()=>this.$store.dispatch("loadBackground",3)),200)},methods:{...(0,o.nv)(["switchLocale"]),detectLocale(){let t;if(this.storeLocaleFromVueX)try{t=window.localStorage.getItem("locale")}catch(e){console.error(e)}if(!t&&this.detectLocaleFromBrowserFromVueX&&Array.isArray(navigator.languages)){const e=(0,ht.xI)(this.supportedLocalesFromVueX);for(let a of navigator.languages){const s=(0,ht.Si)(e,a,null);if(s){t=s;break}}}t&&this.supportedLocalesFromVueX.includes(t)&&(this.switchLocale({locale:t}),this.data||(this.onDataLoaded=()=>{this.switchLocale({locale:t}),this.onDataLoaded=null}))},parseQuery(t){var e;let a={};if("history"===this.historyMode){let e=T()(t.hash.replace(/^#/,""));a=e.query(!0)}let s=Object.assign({},t.query,a),r={};for(let i in s){let t=s[i];if(i.startsWith("~"))r.private=k.ZP.isObject(r.private)?r.private:{},r.private[i.substr(1)]=t,delete s[i];else if(i.startsWith(".")){let e=i.substr(1);r.state=k.ZP.isObject(r.state)?r.state:{},Array.isArray(this.stateQueryParameters[e])&&!Array.isArray(t)&&(t=t.split(",")),r.state[e]=t}else k.ZP.isObject(r.localRequest)||(r.localRequest={}),r.localRequest[i]=t}if(k.ZP.size(r)>0)for(let i in r)for(let t in r[i])this.$store.commit("setQueryParameter",{type:i,key:t,value:r[i][t]});null!==r&&void 0!==r&&null!==(e=r.state)&&void 0!==e&&e.language&&this.switchLocale({locale:r.state.language}),k.ZP.size(r.private)>0&&this.$router.replace({query:s})},showError(t,e){this.$store.commit("showGlobalError",{error:t,message:e})},hideError(){this.$store.commit("showGlobalError",null)}}},oe=ne,le=(0,g.Z)(oe,r,i,!1,null,null,null),ce=le.exports;function ue(){return(0,O._j)().then((()=>new s.ZP({i18n:O.ZP,render:t=>t(ce)}).$mount("#stac-browser")))}s.ZP.config.productionTip=!1,ue()},43989:function(t,e,a){"use strict";a(57658);var s=a(79879),r=a(95019),i=a.n(r),n=a(62846);let o=0;class l{constructor(t,e,a,s=!0){this._id=o++,this._url=e,this._path=a,this._apiChildrenListeners={},this._incomplete=!1,this._apiChildren={list:[],prev:!1,next:!1},s&&("FeatureCollection"===t.type?t.features=t.features.map((t=>i().item(t,!1))):t=i().stac(t,!1));for(let r in t)"undefined"===typeof this[r]&&(this[r]=t[r])}isPotentiallyIncomplete(){return this._incomplete}markPotentiallyIncomplete(){this._incomplete=!0}isItem(){return"Feature"===this.type}isCatalog(){return"Catalog"===this.type}isCatalogLike(){return this.isCatalog()||this.isCollection()}isCollection(){return"Collection"===this.type}isItemCollection(){return"FeatureCollection"===this.type}hasApiData(){return this._apiChildren.list.length>0}setApiDataListener(t,e=null){"function"===typeof e?this._apiChildrenListeners[t]=e:delete this._apiChildrenListeners[t]}setApiData(t,e=null,a=null){a&&(this._apiChildren.prev=a),e&&(this._apiChildren.next=e),this._apiChildren.list=t;for(let r in this._apiChildrenListeners)try{this._apiChildrenListeners[r](this._apiChildren)}catch(s){console.error(s)}}getFileFormats(){let t=[];return(this.isItem()||this.isCollection())&&s.ZP.isObject(this.assets)&&(t=t.concat(Object.values(this.assets))),this.isCollection()&&s.ZP.isObject(this.item_assets)&&(t=t.concat(Object.values(this.item_assets))),t.filter((t=>Array.isArray(t.roles)&&t.roles.includes("data")&&"string"===typeof t.type)).map((t=>t.type)).filter(((t,e,a)=>a.indexOf(t)===e))}getChildren(t=null){if(!this.isCatalogLike())return[];let e=!t||"collections"===t,a=!t||"childs"===t,s=[];return e&&this._apiChildren.prev&&s.push(this._apiChildren.prev),e&&this._apiChildren.list.length>0&&(s=this._apiChildren.list.slice(0)),a&&(s=l.addMissingChildren(s,this).concat(this.getLinksWithRels(["item"]))),e&&this._apiChildren.next&&s.push(this._apiChildren.next),s}static addMissingChildren(t,e){let a=e.getStacLinksWithRel("child").filter((a=>{let r=s.ZP.toAbsolute(a.href,e.getAbsoluteUrl());return!t.find((t=>t.getAbsoluteUrl()===r))}));return a.concat(t)}getSearchLink(){let t=s.ZP.getLinksWithRels(this.links,["search"]).filter((t=>s.ZP.isMediaType(t.type,s.KN))).map((t=>Object.assign({},t,{href:s.ZP.toAbsolute(t.href,this._url)}))),e=t.find((t=>s.ZP.hasText(t.method)&&"POST"===t.method.toUpperCase()));return e||t[0]||null}getApiCollectionsLink(){return this.getStacLinkWithRel("data")}getApiItemsLink(){return this.getStacLinkWithRel("items")}getMetadata(t){return this.isItem()?this.properties[t]:this.isCatalogLike()?this[t]:null}getBrowserPath(){return this._path}getAbsoluteUrl(){return this._url}getLocaleLink(t,e=null){let a,r=this.getStacLinksWithRel("alternate").filter((t=>s.ZP.hasText(t.hreflang)));a=Array.isArray(this.languages)?this.languages.map((t=>t.code)):r.map((t=>t.hreflang));let i=(0,n.Si)(a,t,e);return r.find((t=>t.hreflang===i))||null}getStacLinksWithRel(t,e=!0){return s.ZP.getLinksWithRels(this.links,[t]).filter((t=>s.ZP.isStacMediaType(t.type,e)))}getStacLinkWithRel(t,e=!0){const a=this.getStacLinksWithRel(t,e);return a.length>0?a[0]:null}getLinkWithRel(t){return s.ZP.getLinkWithRel(this.links,t)}getLinksWithRels(t){return s.ZP.getLinksWithRels(this.links,t)}getLinksWithOtherRels(t){return s.ZP.getLinksWithOtherRels(this.links,t)}getAssetsWithRoles(t){let e=[];if(s.ZP.isObject(this.assets))for(let a in this.assets){let r=this.assets[a];s.ZP.isObject(r)&&"string"===typeof r.href&&Array.isArray(r.roles)&&r.roles.find((e=>t.includes(e)))&&e.push(r)}return e}static getDisplayTitle(t,e=null){Array.isArray(t)||(t=[t]);let a=t.find((t=>t instanceof l)),r=t.find((t=>s.ZP.isObject(t)&&!(t instanceof l)));return a&&s.ZP.hasText(a.getTitle())?a.getTitle():r&&s.ZP.hasText(r.title)?r.title:a&&s.ZP.hasText(a.id)?a.id:s.ZP.hasText(e)?e:a?s.ZP.titleForHref(a.getAbsoluteUrl(),!0):r&&s.ZP.hasText(r.href)?s.ZP.titleForHref(r.href,!0):"Untitled"}getTitle(){return this.getMetadata("title")}_linkToAbsolute(t){return Object.assign({},t,{href:s.ZP.toAbsolute(t.href,this.getAbsoluteUrl())})}getIcons(){return this.getLinksWithRels(["icon"]).filter((t=>s.ZP.canBrowserDisplayImage(t))).map((t=>this._linkToAbsolute(t)))}getThumbnails(t=!1,e=null){let a=this.getAssetsWithRoles(["thumbnail","overview"]);if(0===a.length&&(a=this.getLinksWithRels(["preview"])),0===a.length&&s.ZP.isObject(this.assets)&&s.ZP.isObject(this.assets.thumbnail)&&(a=[this.assets.thumbnail]),t&&(a=a.filter((t=>s.ZP.canBrowserDisplayImage(t)))),e&&a.length>1){let t=t=>t.roles.includes(e);a=a.filter(t).concat(a.filter((e=>!t(e))))}return a.map((t=>this._linkToAbsolute(t)))}equals(t){return!!s.ZP.isObject(t)&&(this===t||this.id===t.id&&this.type==t.type)}}e.Z=l},54261:function(t,e,a){"use strict";a.d(e,{Eg:function(){return l},RG:function(){return o},X6:function(){return r},rt:function(){return n},tQ:function(){return i}});const s=["child","collection","item","parent","root","self"],r=["first","last","next","prev","previous"],i=["queryables","http://www.opengis.net/def/rel/ogc/1.0/queryables","ogc-rel:queryables"],n=["canonical","related","derived_from","latest-version","predecessor-version","successor-version","source","alternate"].concat(s).concat(r),o=["conformance","data","items","search","icon","license"].concat(s).concat(r).concat(i),l="http://www.opengis.net/def/rel/ogc/1.0/"},57273:function(t,e,a){"use strict";a.d(e,{HH:function(){return h},Us:function(){return p},a_:function(){return d},dJ:function(){return c},gb:function(){return o},qy:function(){return u},ui:function(){return l}});var s=a(6154),r=a(54998),i=a.n(r),n=a(79879);class o{constructor(t=!1,e=!1){this.show=Boolean(t),this.loadApi=Boolean(e)}}async function l(t,e){let a,r={"Accept-Language":t.getters.acceptedLanguages};if(n.ZP.isObject(e)){let s="string"===typeof e.method?e.method.toLowerCase():"get",i=t.getters.getRequestUrl(e.href);n.ZP.hasText(e.type)&&(r.Accept=e.type),t.getters.isExternalUrl(i)||Object.assign(r,t.state.requestHeaders),n.ZP.isObject(e.headers)&&Object.assign(r,e.headers),a={method:s,url:i,headers:r,data:e.body}}else if("string"===typeof e){let s=t.getters.getRequestUrl(e);t.getters.isExternalUrl(s)||Object.assign(r,t.state.requestHeaders),a={method:"get",url:s,headers:r}}else a=e;return await(0,s.Z)(a)}function c(t,e){return t instanceof i()&&(t=t.toString()),"string"===typeof t&&Array.isArray(e)?t.replace(e[1],e[0]):t}function u(t,e){return t instanceof i()&&(t=t.toString()),"string"===typeof t&&Array.isArray(e)?t.replace(e[0],e[1]):t}function d(t,e){return"function"===typeof t.preprocessSTAC&&(e=t.preprocessSTAC(e,t)),Object.freeze(e)}function h(t){var e;return[401,403].includes(null===t||void 0===t||null===(e=t.response)||void 0===e?void 0:e.status)}function p(t,e){if(0==n.ZP.size(e))return t;for(let a in e)t.hasQuery(a)||t.addQuery(a,e[a]);return t}},79879:function(t,e,a){"use strict";a.d(e,{CF:function(){return b},F7:function(){return g},G$:function(){return u},KN:function(){return c},Uz:function(){return m},ZP:function(){return v},vV:function(){return y}});var s=a(54998),r=a.n(s),i=a(26525),n=a.n(i),o=a(54261);const l=["catalog","collection","item"],c="application/geo+json",u="application/schema+json",d=["application/json",c,"text/json"],h=["image/gif","image/jpg","image/jpeg","image/apng","image/png","image/webp"],p=["image/tiff; application=geotiff; profile=cloud-optimized","image/vnd.stac.geotiff; cloud-optimized=true"],f=["application/geotiff","image/tiff; application=geotiff","image/vnd.stac.geotiff"].concat(p),g=["http","https"],m=h.concat(f),b=m.concat([c]);class y extends Error{constructor(t){super(t)}}class v{static isObject(t){return"object"===typeof t&&t===Object(t)&&!Array.isArray(t)}static size(t){return"object"===typeof t&&null!==t?Array.isArray(t)?t.length:Object.keys(t).length:0}static isStacMediaType(t,e=!1){return v.isMediaType(t,d,e)}static isMediaType(t,e,a=!1){return Array.isArray(e)||(e=[e]),!(!a||t)||"string"===typeof t&&e.includes(t.toLowerCase())}static hasText(t){return"string"===typeof t&&t.length>0}static shortenTitle(t,e,a="…"){if(t.length<=e)return t;let s=a.length,r=e-s,i=Math.ceil(r/2),n=Math.floor(r/2);return t.substr(0,i)+a+t.substr(t.length-n)}static isGdalVfsUri(t){return"string"===typeof t&&t.startsWith("/vsi")&&!t.startsWith("/vsicurl/")}static toAbsolute(t,e,a=!0){return v.normalizeUri(t,e,!1,a)}static normalizeUri(t,e=null,a=!1,s=!0){"string"===typeof t&&t.startsWith("/vsicurl/")&&(t=t.replace(/^\/vsicurl\//,""));let i=r()(t);return e&&i.is("relative")&&!v.isGdalVfsUri(t)&&(i=i.absoluteTo(e)),i.normalize(),a&&(i.query(""),i.fragment("")),s?i.toString():i}static getLinkWithRel(t,e){return Array.isArray(t)?t.find((t=>v.isObject(t)&&v.hasText(t.href)&&t.rel===e)):null}static getLinksWithRels(t,e){return Array.isArray(t)?t.filter((t=>v.isObject(t)&&v.hasText(t.href)&&e.includes(t.rel))):[]}static getLinksWithOtherRels(t,e){return Array.isArray(t)?t.filter((t=>v.isObject(t)&&v.hasText(t.href)&&!e.includes(t.rel))):[]}static equalUrl(t,e){try{let a=r()(t),s=r()(e);return a.path(a.path().replace(/\/$/,"")),s.path(s.path().replace(/\/$/,"")),a.equals(s)}catch(a){return!1}}static summarizeMd(t,e=null){return v.hasText(t)?(t=n()(t).replaceAll(/[\r\n]+/g," "),e>0&&t.length>e&&(t=t.substr(0,e)+"…"),t):""}static scrollTo(t){if(t){var e=t.getBoundingClientRect(),a=e.top=0;a||t.scrollIntoView({behavior:"smooth",block:"start"})}}static dateFromUTC(t){if(t instanceof Date){const e=new Date(t),a=e.getTimezoneOffset();t=new Date(e.getTime()+60*a*1e3)}return t}static dateToUTC(t){if(t instanceof Date){const e=(new Date).getTimezoneOffset();return new Date(t.getTime()-60*e*1e3)}return t}static formatDatetimeQuery(t){return t.map((t=>t instanceof Date?t.toISOString():t||"..")).join("/")}static getPaginationLinks(t){let e={};if(v.isObject(t)){let a=v.getLinksWithRels(t.links,o.X6);for(let t of a){let a="previous"===t.rel?"prev":t.rel;e[a]=t}}return e}static addFiltersToLink(t,e={},a=null){let s=t=>null===t||"number"===typeof t&&!Number.isFinite(t)||"string"===typeof t&&0===t.length||"object"===typeof t&&0===v.size(t);if(e=v.isObject(e)?Object.assign({},e):{},"number"!==typeof e.limit&&"number"===typeof a&&(e.limit=a),v.hasText(t.method)&&"POST"===t.method.toUpperCase()){let a=Object.assign({},t.body);for(let t in e){let r=e[t];if(s(r))delete a[t];else{if("datetime"===t)r=v.formatDatetimeQuery(r);else if("filters"===t){Object.assign(a,r.toJSON());continue}a[t]=r}}return Object.assign({},t,{body:a})}{let a=r()(t.href);for(let t in e){let r=e[t];if(s(r))a.removeQuery(t);else{if("datetime"===t)r=v.formatDatetimeQuery(r);else if("bbox"===t)r=r.join(",");else if("collections"===t||"ids"===t||"q"===t)r=r.join(",");else if("filters"===t){let t=r.toText();a.setQuery(t);continue}a.setQuery(t,r)}}return Object.assign({},t,{href:a.toString()})}}static titleForHref(t,e=!1){let a=r()(t),s=a.authority(),i=a.filename().replace(/^(.{1,})\.\w+$/,"$1"),n=a.directory().replace(/^\//,"");if(s&&i&&!e){let t=a.path().replace(/^\//,"");return"doi.org"===s&&t.startsWith("10.")?`DOI ${t}`:`${i} (${s})`}return i&&!l.includes(i)?i:s||(n||t)}static canBrowserDisplayImage(t){if("string"!==typeof t.href)return!1;let e=r()(t.href),a=e.protocol().toLowerCase();return!(a&&!g.includes(a))&&(!!h.includes(t.type)||(!!h.includes("image/"+e.suffix().toLowerCase())||!t.type))}static getValueFromObjectUsingPath(t,e){if(null!==t&&"object"===typeof t)return t=t[e[0]],"undefined"!==typeof t&&e.length>1?this.getValueFromObjectUsingPath(t,e.slice(1)):t}static search(t,e,a=!0){if("string"!==typeof t||0===t.length)return!1;if(v.isObject(e)?e=Object.values(e):"string"===typeof e&&(e=[e]),!Array.isArray(e))return!1;let s=/[\s.,;!&({[)}]]+/g;t=t.toLowerCase().split(s),e=e.filter((t=>"string"===typeof t)).join(" ").replace(s," ").toLowerCase();let r=a?"every":"some";return t[r]((t=>e.includes(t)))}static createLink(t,e){return{href:t,rel:e}}static supportsExtension(t,e){if(!v.isObject(t)||!Array.isArray(t["stac_extensions"]))return!1;let a=new RegExp("^"+e.replaceAll("*","[^/]+")+"$");return Boolean(t["stac_extensions"].find((t=>a.test(t))))}static mergeDeep(t,...e){if(!e.length)return t;const a=e.shift();if(v.isObject(t)&&v.isObject(a))for(const s in a)v.isObject(a[s])?(t[s]||Object.assign(t,{[s]:{}}),v.mergeDeep(t[s],a[s])):Object.assign(t,{[s]:a[s]});return v.mergeDeep(t,...e)}}},50448:function(t,e,a){var s={"./de-CH/default.js":[9665,7119,9665],"./de/default.js":[11929,7119,1929],"./en/default.js":[71358,1358],"./es/default.js":[10237,237],"./fr-CA/default.js":[70727,8096,727],"./fr-CH/default.js":[16437,8096,6437],"./fr/default.js":[55092,8096,5092],"./it-CH/default.js":[64739,5473,4739],"./it/default.js":[68144,5473,8144],"./ro/default.js":[91493,1493]};function r(t){if(!a.o(s,t))return Promise.resolve().then((function(){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}));var e=s[t],r=e[0];return Promise.all(e.slice(1).map(a.e)).then((function(){return a(r)}))}r.keys=function(){return Object.keys(s)},r.id=50448,t.exports=r},82599:function(t,e,a){var s={"./de-CH/config.json":13225,"./de/config.json":27534,"./en/config.json":78863,"./es/config.json":25946,"./fr-CA/config.json":44317,"./fr-CH/config.json":78125,"./fr/config.json":96727,"./it-CH/config.json":6025,"./it/config.json":62715,"./ro/config.json":57031};function r(t){var e=i(t);return a(e)}function i(t){if(!a.o(s,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return s[t]}r.keys=function(){return Object.keys(s)},r.resolve=i,t.exports=r,r.id=82599},13225:function(t){"use strict";t.exports=JSON.parse('{"native":"Deutsch (Schweiz)","global":"German (Switzerland)"}')},27534:function(t){"use strict";t.exports=JSON.parse('{"native":"Deutsch","global":"German"}')},78863:function(t){"use strict";t.exports=JSON.parse('{"native":"English","global":"English"}')},25946:function(t){"use strict";t.exports=JSON.parse('{"native":"Español","global":"Spanish"}')},44317:function(t){"use strict";t.exports=JSON.parse('{"native":"Français (Canada)","global":"French (Canada)"}')},78125:function(t){"use strict";t.exports=JSON.parse('{"native":"Français (Suisse)","global":"French (Switzerland)"}')},96727:function(t){"use strict";t.exports=JSON.parse('{"native":"Français","global":"French"}')},6025:function(t){"use strict";t.exports=JSON.parse('{"native":"Italiano (Svizzera)","global":"Italian (Switzerland)"}')},62715:function(t){"use strict";t.exports=JSON.parse('{"native":"Italiano","global":"Italian"}')},57031:function(t){"use strict";t.exports=JSON.parse('{"native":"Română","global":"Romanian"}')}},e={};function a(s){var r=e[s];if(void 0!==r)return r.exports;var i=e[s]={id:s,loaded:!1,exports:{}};return t[s].call(i.exports,i,i.exports,a),i.loaded=!0,i.exports}a.m=t,function(){var t=[];a.O=function(e,s,r,i){if(!s){var n=1/0;for(u=0;u=i)&&Object.keys(a.O).every((function(t){return a.O[t](s[l])}))?s.splice(l--,1):(o=!1,i0&&t[u-1][2]>i;u--)t[u]=t[u-1];t[u]=[s,r,i]}}(),function(){a.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return a.d(e,{a:e}),e}}(),function(){var t,e=Object.getPrototypeOf?function(t){return Object.getPrototypeOf(t)}:function(t){return t.__proto__};a.t=function(s,r){if(1&r&&(s=this(s)),8&r)return s;if("object"===typeof s&&s){if(4&r&&s.__esModule)return s;if(16&r&&"function"===typeof s.then)return s}var i=Object.create(null);a.r(i);var n={};t=t||[null,e({}),e([]),e(e)];for(var o=2&r&&s;"object"==typeof o&&!~t.indexOf(o);o=e(o))Object.getOwnPropertyNames(o).forEach((function(t){n[t]=function(){return s[t]}}));return n["default"]=function(){return s},a.d(i,n),i}}(),function(){a.d=function(t,e){for(var s in e)a.o(e,s)&&!a.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})}}(),function(){a.f={},a.e=function(t){return Promise.all(Object.keys(a.f).reduce((function(e,s){return a.f[s](t,e),e}),[]))}}(),function(){a.u=function(t){return"js/"+t+"."+{237:"088f29c9",531:"e50613d4",604:"734bbdd1",624:"c61e2e5a",727:"b0d7dd43",796:"7f6c73c1",833:"41ea4527",1095:"a90e323c",1198:"8d75deba",1247:"a6db6509",1358:"52fd3c69",1364:"4e255109",1374:"7d4415cb",1493:"be46e4d0",1514:"2a484198",1929:"b7f67eab",2005:"0062420b",2184:"fdc4f0c6",2380:"fbbc886b",2407:"d1a62548",2540:"2abe5443",2588:"71e2ad8d",2792:"96d8f5ad",2815:"b406a8a8",2968:"d335ab49",3135:"70290c42",3138:"c151eb76",3154:"83e70a6b",3628:"720978c7",3669:"25ce579b",3805:"342d7ff9",4622:"1fe7c07f",4739:"6bf73bc4",4763:"77c0a023",5092:"2e1ed9f7",5260:"6132d987",5473:"d0a5d181",5607:"91d62c75",5793:"731090db",5972:"25977f56",5998:"16142fd8",6437:"4c8ef6f6",6481:"2da48a38",6553:"ea12aade",6653:"b5a772ec",6872:"38a2d766",7053:"535b4c77",7119:"79ae3c6c",7191:"12aba673",7245:"a71452db",7257:"ed5bff34",7710:"1bd3fb2f",7848:"8e7a11a2",8069:"170670d6",8096:"b095b122",8144:"fccff3a0",8342:"1fa2741d",8453:"11ac8f62",8493:"90679e90",8673:"bbd2c559",8693:"7177a43e",8770:"b4e42fc8",9071:"88d00f41",9090:"ef590db0",9489:"ced0e5b3",9539:"0c7b0d26",9578:"7500538c",9665:"e156817e",9795:"077c2d89"}[t]+".js"}}(),function(){a.miniCssF=function(t){return"css/"+t+"."+{604:"f849b3f1",624:"6ad781a6",1095:"0530e224",1198:"5747ca0b",1364:"a94c9ca6",2588:"ac728857",2815:"c9b64985",3135:"32ec082e",3154:"572c83fc",3805:"4bc8c74b",4622:"45781634",5260:"72c8c98f",5998:"4b50bc38",7710:"f418fe25",7848:"0780c10b",8453:"6fac7cd8",8493:"ea261962",9795:"081b4583"}[t]+".css"}}(),function(){a.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"===typeof window)return window}}()}(),function(){a.hmd=function(t){return t=Object.create(t),t.children||(t.children=[]),Object.defineProperty(t,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+t.id)}}),t}}(),function(){a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)}}(),function(){var t={},e="@radiantearth/stac-browser:";a.l=function(s,r,i,n){if(t[s])t[s].push(r);else{var o,l;if(void 0!==i)for(var c=document.getElementsByTagName("script"),u=0;u0||t.data.description||t.data.deprecated)?e("b-card-text",{staticClass:"intro"},[t.data.deprecated?e("b-badge",{staticClass:"mr-1 mt-1 deprecated",attrs:{variant:"warning"}},[t._v(t._s(t.$t("deprecated")))]):t._e(),t._l(t.fileFormats,(function(a){return e("b-badge",{key:a,staticClass:"mr-1 mt-1 fileformat",attrs:{variant:"secondary"}},[t._v(t._s(t._f("formatMediaType")(a)))])})),t._v(" "+t._s(t._f("summarize")(t.data.description))+" ")],2):t._e(),t.temporalExtent?e("b-card-text",{staticClass:"datetime"},[e("small",{domProps:{innerHTML:t._s(t.temporalExtent)}})]):t._e()],1),e("b-card-footer",[t._t("footer",null,{data:t.data})],2)],1)},r=[],i=(a(57658),a(20629)),n=a(83681),o=a(59642),l=a(63338),c=a(43989),u=a(35834),d=a(79879),h={name:"Catalog",components:{StacLink:l["default"]},filters:{summarize:t=>d.ZP.summarizeMd(t,300),formatMediaType:t=>(0,u.formatMediaType)(t,null,{shorten:!0})},mixins:[o.Z,(0,n.Z)({formatTemporalExtent:u.formatTemporalExtent})],props:{catalog:{type:Object,required:!0}},computed:{...(0,i.Se)(["getStac"]),classes(){let t=["catalog-card"];return this.data||t.push("queued"),this.data&&this.data.deprecated&&t.push("deprecated"),this.hasImage&&t.push("has-thumbnail"),this.temporalExtent&&t.push("has-extent"),t},data(){return this.getStac(this.catalog)},temporalExtent(){var t,e,a;if(null!==(t=this.data)&&void 0!==t&&t.isCollection()&&(null===(e=this.data.extent)||void 0===e||null===(a=e.temporal)||void 0===a?void 0:a.interval.length)>0){let t=this.data.extent.temporal.interval[0];if(Array.isArray(t)&&("string"===typeof t[0]||"string"===typeof t[1]))return this.formatTemporalExtent(this.data.extent.temporal.interval[0],!0)}return null},fileFormats(){return this.data?this.data.getFileFormats():[]}},methods:{load(t){this.catalog instanceof c.Z||this.$store.commit(t?"queue":"unqueue",this.catalog.href)}}},p=h,f=a(1001),g=(0,f.Z)(p,s,r,!1,null,null,null),m=g.exports},33149:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return C}});var s=function(){var t=this,e=t._self._c;return e("section",{staticClass:"catalogs mb-4"},[e("header",[e("h2",{staticClass:"title mr-2"},[t._v(t._s(t.title))]),null!==t.catalogCount?e("b-badge",{staticClass:"mr-4",attrs:{pill:"",variant:"secondary"}},[t._v(t._s(t.catalogCount))]):t._e(),e("ViewButtons",{staticClass:"mr-2",model:{value:t.view,callback:function(e){t.view=e},expression:"view"}}),t.isComplete&&t.catalogs.length>1?e("SortButtons",{model:{value:t.sort,callback:function(e){t.sort=e},expression:"sort"}}):t._e()],1),t.isComplete&&t.catalogs.length>1?e("SearchBox",{staticClass:"mt-1 mb-1",attrs:{placeholder:t.$t("catalogs.filterByTitle")},model:{value:t.searchTerm,callback:function(e){t.searchTerm=e},expression:"searchTerm"}}):t._e(),t.showPagination?e("Pagination",{ref:"topPagination",attrs:{pagination:t.pagination,placement:"top"},on:{paginate:t.paginate}}):t._e(),t.searchTerm&&0===t.catalogView.length?e("b-alert",{attrs:{variant:"warning",show:""}},[t._v(t._s(t.$t("catalogs.noMatches")))]):t._e(),e("section",{staticClass:"list"},[t.loading?e("Loading",{attrs:{fill:"",top:""}}):t._e(),e(t.cardsComponent,t._b({tag:"component"},"component",t.cardsComponentProps,!1),t._l(t.catalogView,(function(a){return e("Catalog",{key:a.href,attrs:{catalog:a},scopedSlots:t._u([{key:"footer",fn:function({data:e}){return[t._t("catalogFooter",null,{data:e})]}}],null,!0)})})),1)],1),t.showPagination?e("Pagination",{attrs:{pagination:t.pagination},on:{paginate:t.paginate}}):t.hasMore?e("b-button",{directives:[{name:"b-visible",rawName:"v-b-visible.300",value:t.loadMore,expression:"loadMore",modifiers:{300:!0}}],attrs:{variant:"primary"},on:{click:t.loadMore}},[t._v(t._s(t.$t("catalogs.loadMore")))]):t._e()],1)},r=[],i=(a(57658),a(20629)),n=a(73076),o=a(79091),l=a(43989),c=function(){var t=this,e=t._self._c;return e("b-button-group",{attrs:{title:t.$t("view.title"),size:"sm"}},[e("b-button",{attrs:{title:t.$t("view.tiles.title"),variant:"outline-primary",pressed:"cards"===t.value},on:{click:function(e){return t.toggle("cards")}}},[e("b-icon-bricks"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("view.tiles.label")))])],1),e("b-button",{attrs:{title:t.$t("view.list.title"),variant:"outline-primary",pressed:"list"===t.value},on:{click:function(e){return t.toggle("list")}}},[e("b-icon-list-task"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("view.list.label")))])],1)],1)},u=[],d=a(38019),h={id:"SortButtons",components:{BIconBricks:d.S3S,BIconListTask:d.WPR},props:{value:{type:String,default:"cards"}},methods:{toggle(t){this.value!==t&&this.$emit("input",t)}}},p=h,f=a(1001),g=(0,f.Z)(p,c,u,!1,null,null,null),m=g.exports,b={components:{ViewButtons:m},computed:{cardsComponent(){return"list"===this.view?"div":"b-card-group"},cardsComponentProps(){return"list"===this.view?{class:["card-list"]}:{columns:!0}},view:{get(){return this.$store.state.cardViewMode},set(t){this.$store.commit("config",{cardViewMode:t})}}}},y=a(79879),v={name:"Catalogs",components:{Catalog:n.Z,Loading:o.Z,Pagination:()=>Promise.resolve().then(a.bind(a,68289)),SearchBox:()=>a.e(624).then(a.bind(a,40624)),SortButtons:()=>a.e(2968).then(a.bind(a,2968))},mixins:[b],props:{catalogs:{type:Array,required:!0},collectionsOnly:{type:Boolean,required:!1},loading:{type:Boolean,default:!1},hasMore:{type:Boolean,default:!1},pagination:{type:Object,default:()=>({})},count:{type:Number,default:null}},data(){return{searchTerm:"",sort:0}},computed:{...(0,i.rn)(["cardViewSort","uiLanguage"]),...(0,i.Se)(["getStac"]),catalogCount(){return this.catalogs.length!==this.catalogView.length?this.catalogView.length+"/"+this.catalogs.length:null!==this.count?this.count:this.isComplete?this.catalogs.length:null},title(){return this.collectionsOnly?this.$tc("stacCollection",this.catalogs.length):this.$tc("stacCatalog",this.catalogs.length)},isComplete(){return!this.hasMore&&!this.showPagination},showPagination(){return Object.values(this.pagination).some((t=>!!t))},catalogView(){if(this.hasMore)return this.catalogs;let t=this.catalogs.map((t=>{let e=this.getStac(t);return e||t}));return this.searchTerm&&(t=t.filter((t=>{let e=[t.title];return t instanceof l.Z?(e.push(t.id),Array.isArray(t.keywords)&&(e=e.concat(t.keywords))):e.push(t.href),y.ZP.search(this.searchTerm,e)}))),this.hasMore||0===this.sort||(t=t.slice(0).sort(((t,e)=>l.Z.getDisplayTitle(t).localeCompare(l.Z.getDisplayTitle(e),this.uiLanguage))),-1===this.sort&&(t=t.reverse())),t}},created(){this.sort=this.cardViewSort},methods:{loadMore(t=!0){t&&(this.sort=0,this.$emit("loadMore"))},paginate(t,e){"bottom"===e&&this.$refs.topPagination&&y.ZP.scrollTo(this.$refs.topPagination.$el),this.$emit("paginate",t)}}},w=v,_=(0,f.Z)(w,s,r,!1,null,null,null),C=_.exports},89988:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return d}});var s=function(){var t=this,e=t._self._c;return e("b-button",t._b({staticClass:"copy-button",attrs:{variant:t.copyColor,title:t.$t("copy")},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.copy.apply(null,arguments)}}},"b-button",t.buttonProps,!1),[e(t.copyIcon,{tag:"component"}),t._t("default")],2)},r=[],i=a(38019),n=a(18882),o={name:"CopyButton",components:{BIconClipboard:i.O48,BIconClipboardCheck:i.bEK,BIconClipboardX:i.R5z},props:{copyText:{type:String,required:!0},variant:{type:String,default:"primary"},buttonProps:{type:Object,default:()=>({})}},data(){return{status:null}},computed:{copyColor(){let t=this.variant;return!0===this.status?t="success":!1===this.status&&(t="danger"),this.variant.startsWith("outline-")&&(t="outline-"+t),t},copyIcon(){return!0===this.status?"b-icon-clipboard-check":!1===this.status?"b-icon-clipboard-x":"b-icon-clipboard"}},methods:{async copy(){try{let t=document.activeElement;await n.T.copy(this.copyText),t.focus(),this.status=!0}catch(t){console.error(t),this.status=!1}setTimeout((()=>this.status=null),2500)}}},l=o,c=a(1001),u=(0,c.Z)(l,s,r,!1,null,null,null),d=u.exports},2778:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return u}});var s=function(){var t=this,e=t._self._c;return e("div",{staticClass:"styled-description",class:{compact:t.compact,inline:t.inline},domProps:{innerHTML:t._s(t.markup(t.description))}})},r=[],i=a(75064),n={name:"Description",props:{description:{type:String,default:""},compact:{type:Boolean,default:!1},inline:{type:Boolean,default:!1},allowHTML:{type:Boolean,default:!1}},methods:{markup(t){if("string"!==typeof t)return"";var e=new i._b,a=new i.VI({safe:!this.allowHTML,smart:!0}),s=e.parse(t);return a.render(s)}}},o=n,l=a(1001),c=(0,l.Z)(o,s,r,!1,null,null,null),u=c.exports},90883:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return b}});var s=function(){var t=this,e=t._self._c;return e("b-card",{directives:[{name:"b-visible",rawName:"v-b-visible.400",value:t.load,expression:"load",modifiers:{400:!0}}],staticClass:"item-card",class:{queued:!t.data,deprecated:t.isDeprecated,description:t.hasDescription},attrs:{"no-body":""}},[t.hasImage?e("b-card-img-lazy",t._b({staticClass:"thumbnail",attrs:{offset:"200"}},"b-card-img-lazy",t.thumbnail,!1)):t._e(),e("b-card-body",[e("b-card-title",[e("StacLink",{staticClass:"stretched-link",attrs:{data:[t.data,t.item]}})],1),t.fileFormats.length>0||t.hasDescription||t.isDeprecated?e("b-card-text",{staticClass:"intro"},[t.isDeprecated?e("b-badge",{staticClass:"mr-1 mt-1 deprecated",attrs:{variant:"warning"}},[t._v(t._s(t.$t("deprecated")))]):t._e(),t._l(t.fileFormats,(function(a){return e("b-badge",{key:a,staticClass:"mr-1 mt-1 fileformat",attrs:{variant:"secondary"}},[t._v(t._s(t._f("formatMediaType")(a)))])})),t.hasDescription?[t._v(t._s(t._f("summarize")(t.data.properties.description)))]:t._e()],2):t._e(),e("b-card-text",[e("small",{staticClass:"text-muted"},[t.extent?[t._v(t._s(t._f("formatTemporalExtent")(t.extent)))]:t.data&&t.data.properties.datetime?[t._v(t._s(t._f("formatTimestamp")(t.data.properties.datetime)))]:[t._v(t._s(t.$t("items.noTime")))]],2)])],1)],1)},r=[],i=a(20629),n=a(59642),o=a(63338),l=a(43989),c=a(35834),u=a(65571),d=a.n(u),h=a(79879);d().addDependency("content-type",a(37811));var p={name:"Item",components:{StacLink:o["default"]},filters:{summarize:t=>h.ZP.summarizeMd(t,150),formatMediaType:t=>(0,c.formatMediaType)(t,null,{shorten:!0}),formatTemporalExtent:c.formatTemporalExtent,formatTimestamp:c.formatTimestamp},mixins:[n.Z],props:{item:{type:Object,required:!0}},computed:{...(0,i.Se)(["getStac"]),data(){return this.getStac(this.item)},extent(){return this.data&&(this.data.properties.start_datetime||this.data.properties.end_datetime)?[this.data.properties.start_datetime,this.data.properties.end_datetime]:null},fileFormats(){return this.data?this.data.getFileFormats():[]},isDeprecated(){return this.data instanceof l.Z&&Boolean(this.data.properties.deprecated)},hasDescription(){return this.data instanceof l.Z&&h.ZP.hasText(this.data.properties.description)}},methods:{load(t){this.item instanceof l.Z||this.$store.commit(t?"queue":"unqueue",this.item.href)}}},f=p,g=a(1001),m=(0,g.Z)(f,s,r,!1,null,null,null),b=m.exports},30578:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return b}});var s=function(){var t=this,e=t._self._c;return e("section",{staticClass:"items mb-4"},[e("header",[e("h2",{staticClass:"title mr-2"},[t._v(t._s(t.$tc("stacItem",t.items.length)))]),null!==t.itemCount?e("b-badge",{staticClass:"mr-4",attrs:{pill:"",variant:"secondary"}},[t._v(t._s(t.itemCount))]):t._e(),!t.api&&t.items.length>1?e("SortButtons",{model:{value:t.sort,callback:function(e){t.sort=e},expression:"sort"}}):t._e()],1),t.showPagination?e("Pagination",{ref:"topPagination",attrs:{pagination:t.pagination,placement:"top"},on:{paginate:t.paginate}}):t._e(),t.allowFilter?[t.api?e("b-button",{directives:[{name:"b-toggle",rawName:"v-b-toggle.itemFilter",modifiers:{itemFilter:!0}}],staticClass:"mb-4 mt-2",class:{"ml-3":t.showPagination},attrs:{variant:t.hasFilters&&!t.filtersOpen?"primary":"outline-primary"}},[e("b-icon-search"),t._v(" "+t._s(t.filtersOpen?t.$t("items.hideFilter"):t.$t("items.showFilter"))+" "),t.hasFilters&&!t.filtersOpen?e("b-badge",{attrs:{variant:"dark"}},[t._v(t._s(t.filterCount))]):t._e()],1):t._e(),e("b-collapse",{attrs:{id:"itemFilter"},model:{value:t.filtersOpen,callback:function(e){t.filtersOpen=e},expression:"filtersOpen"}},[e("SearchFilter",{attrs:{type:"Items",title:t.$t("items.filter"),parent:t.stac,value:t.apiFilters},on:{input:t.emitFilter}})],1)]:t._e(),e("section",{staticClass:"list"},[t.loading?e("Loading",{attrs:{fill:"",top:""}}):t._e(),t.chunkedItems.length>0?e("b-card-group",{attrs:{columns:""}},t._l(t.chunkedItems,(function(t){return e("Item",{key:t.href,attrs:{item:t}})})),1):e("b-alert",{attrs:{variant:t.hasFilters?"warning":"info",show:""}},[t.hasFilters?[t._v(t._s(t.$t("search.noItemsFound")))]:[t._v(t._s(t.$t("items.noneAvailableForCollection")))]],2)],1),t.showPagination?e("Pagination",{attrs:{pagination:t.pagination},on:{paginate:t.paginate}}):t.hasMore?e("b-button",{directives:[{name:"b-visible",rawName:"v-b-visible.300",value:t.showMore,expression:"showMore",modifiers:{300:!0}}],attrs:{variant:"primary"},on:{click:t.showMore}},[t._v(t._s(t.$t("showMore")))]):t._e()],2)},r=[],i=a(90883),n=a(79091),o=a(68289),l=a(11688),c=a(38019),u=a(79879),d=a(43989),h=a(20629),p={name:"Items",components:{BCollapse:l.k,BIconSearch:c.Lln,Item:i["default"],SearchFilter:()=>Promise.all([a.e(9539),a.e(7053),a.e(1095)]).then(a.bind(a,77053)),Loading:n.Z,Pagination:o["default"],SortButtons:()=>a.e(2968).then(a.bind(a,2968))},props:{items:{type:Array,required:!0},loading:{type:Boolean,default:!1},stac:{type:Object,required:!0},api:{type:Boolean,default:!1},allowFilter:{type:Boolean,default:!0},showFilters:{type:Boolean,default:!1},apiFilters:{type:Object,default:()=>({})},pagination:{type:Object,default:()=>({})},chunkSize:{type:Number,default:90},count:{type:Number,default:null}},data(){return{shownItems:this.chunkSize,filtersOpen:this.showFilters,sort:0}},computed:{...(0,h.rn)(["cardViewSort","uiLanguage"]),itemCount(){return null!==this.count?this.count:!this.api&&this.items.length>0?this.items.length:null},hasMore(){return this.items.length>this.shownItems},filterCount(){return Object.values(this.apiFilters).filter((t=>!(null===t||0===u.ZP.size(t)))).length},hasFilters(){return this.filterCount>0},chunkedItems(){let t=this.items;return 0!==this.sort&&(t=t.slice(0).sort(((t,e)=>d.Z.getDisplayTitle(t).localeCompare(d.Z.getDisplayTitle(e),this.uiLanguage))),-1===this.sort&&(t=t.reverse())),!this.api&&this.items.length>this.chunkSize?t.slice(0,this.shownItems):t},showPagination(){if(this.api){if(this.hasFilters)return!0;if(this.items.length>0)return Object.values(this.pagination).some((t=>!!t))}return!1}},watch:{showFilters(){this.filter=this.showFilters},filtersOpen(){this.$emit("filtersShown",this.filtersOpen)}},created(){this.sort=this.cardViewSort},mounted(){this.showFilters&&setTimeout((()=>u.ZP.scrollTo(this.$el)),250)},methods:{emitFilter(t,e){this.$emit("filterItems",t,e)},showMore(){this.shownItems+=this.chunkSize},paginate(t,e){"bottom"===e&&this.$refs.topPagination&&u.ZP.scrollTo(this.$refs.topPagination.$el),this.$emit("paginate",t)}}},f=p,g=a(1001),m=(0,g.Z)(f,s,r,!1,null,null,null),b=m.exports},79091:function(t,e,a){"use strict";a.d(e,{Z:function(){return c}});var s=function(){var t=this,e=t._self._c;return e("div",{class:t.classes},[e("b-spinner",{attrs:{label:t.$t("loading"),small:t.small}})],1)},r=[],i=(a(57658),{name:"Loading",props:{fill:{type:Boolean,default:!1},stretch:{type:Boolean,default:!1},small:{type:Boolean,default:!1},top:{type:Boolean,default:!1}},computed:{classes(){let t=["loading"];return this.fill?t.push("loading-fill"):this.stretch&&t.push("loading-stretch"),this.top&&t.push("top"),t}}}),n=i,o=a(1001),l=(0,o.Z)(n,s,r,!1,null,"67931bb8",null),c=l.exports},68289:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return c}});var s=function(){var t=this,e=t._self._c;return e("b-button-group",{class:t.classes},[e("b-button",{attrs:{disabled:!t.pagination.first,variant:"primary"},on:{click:function(e){return t.paginate(t.pagination.first)}}},[t._v(t._s(t.$t("pagination.first")))]),e("b-button",{attrs:{disabled:!t.pagination.prev,variant:"primary"},on:{click:function(e){return t.paginate(t.pagination.prev)}}},[t._v(t._s(t.$t("pagination.previous")))]),e("b-button",{attrs:{disabled:!t.pagination.next,variant:"primary"},on:{click:function(e){return t.paginate(t.pagination.next)}}},[t._v(t._s(t.$t("pagination.next")))]),t.pagination.last?e("b-button",{attrs:{variant:"primary"},on:{click:function(e){return t.paginate(t.pagination.last)}}},[t._v(t._s(t.$t("pagination.last")))]):t._e()],1)},r=[],i={name:"Pagination",props:{pagination:{type:Object,default:()=>({})},placement:{type:String,default:"bottom"}},computed:{classes(){return"top"===this.placement?"mb-4 mt-2":"mb-2 mt-2"}},methods:{paginate(t){this.$emit("paginate",t,this.placement)}}},n=i,o=a(1001),l=(0,o.Z)(n,s,r,!1,null,null,null),c=l.exports},63338:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return g}});var s=function(){var t=this,e=t._self._c;return e(t.component,t._b({tag:"component",staticClass:"stac-link",attrs:{title:t.tooltip}},"component",t.attributes,!1),[t.icon?[e("img",{staticClass:"icon mr-2",attrs:{src:t.icon.href,alt:t.icon.title,title:t.icon.title}})]:t._e(),e("span",{staticClass:"title"},[t._v(t._s(t.displayTitle))])],2)},r=[],i=a(20629),n=a(54261),o=a(79879),l=a(43989),c=a(54998),u=a.n(c),d={name:"StacLink",props:{data:{type:[Object,Array],default:null},title:{type:String,default:null},fallbackTitle:{type:[String,Function],default:null},tooltip:{type:String,default:null},button:{type:[Boolean,Object],default:!1},state:{type:Object,default:null}},computed:{...(0,i.rn)(["allowExternalAccess","privateQueryParameters"]),...(0,i.Se)(["toBrowserPath","getRequestUrl","isExternalUrl"]),icon(){if(this.stac){let t=this.stac.getIcons();if(t.length>0)return t[0]}return null},stac(){return this.data instanceof l.Z?this.data:Array.isArray(this.data)?this.data.find((t=>t instanceof l.Z)):null},link(){return this.isLink(this.data)?this.data:Array.isArray(this.data)&&this.data.find((t=>this.isLink(t)))||{}},isStacBrowserLink(){return!!this.stac||!!o.ZP.isStacMediaType(this.link.type,!0)&&(!(!this.allowExternalAccess&&this.isExternalUrl(this.link.href))&&n.rt.includes(this.link.rel))},attributes(){if(this.isStacBrowserLink||this.button){let t={to:this.href,rel:this.rel};return o.ZP.isObject(this.button)&&Object.assign(t,this.button),t}return{href:this.href,target:"_blank",rel:this.rel}},component(){return this.button?"b-button":this.isStacBrowserLink?"router-link":"a"},href(){if(this.stac||this.isStacBrowserLink){let t;if(t=this.stac?this.stac.getBrowserPath():this.toBrowserPath(this.link.href),t.startsWith("/")||(t="/"+t),o.ZP.size(this.privateQueryParameters)>0||o.ZP.size(this.state)>0){let e=u()(t),a=(t,a)=>{for(let s in t){let r=`${a}${s}`;e.hasQuery(r)||e.addQuery(r,t[s])}};a(this.privateQueryParameters,"~"),a(this.state,"."),t=e.toString()}return t}return this.getRequestUrl(this.link.href)},displayTitle(){if(this.title)return this.title;let t="function"===typeof this.fallbackTitle?this.fallbackTitle():this.fallbackTitle;return l.Z.getDisplayTitle(this.data,t)}},methods:{isLink(t){return o.ZP.isObject(t)&&!(t instanceof l.Z)}}},h=d,p=a(1001),f=(0,p.Z)(h,s,r,!1,null,null,null),g=f.exports},4216:function(t){t.exports={catalogUrl:null,catalogTitle:"STAC Browser",allowExternalAccess:!0,allowedDomains:[],detectLocaleFromBrowser:!0,storeLocale:!0,locale:"en",fallbackLocale:"en",supportedLocales:["de","es","en","fr","it","ro"],apiCatalogPriority:null,useTileLayerAsFallback:!0,displayGeoTiffByDefault:!1,buildTileUrlTemplate:({href:t,asset:e})=>"https://tiles.rdnt.io/tiles/{z}/{x}/{y}@2x?url="+encodeURIComponent(e.href.startsWith("/vsi")?e.href:t),stacProxyUrl:null,pathPrefix:"/",historyMode:"history",cardViewMode:"cards",cardViewSort:"asc",showThumbnailsAsAssets:!1,stacLint:!0,geoTiffResolution:128,redirectLegacyUrls:!1,itemsPerPage:12,defaultThumbnailSize:null,maxPreviewsOnMap:50,crossOriginMedia:null,requestHeaders:{},requestQueryParameters:{},preprocessSTAC:null,authConfig:null}},59189:function(t,e,a){"use strict";a.d(e,{v:function(){return o}});var s=a(20629);const r=["https://api.stacspec.org/v1.*/item-search#filter:cql-text","http://www.opengis.net/spec/cql2/1.*/conf/cql2-text"],i=["https://api.stacspec.org/v1.*/item-search#filter:cql-json","http://www.opengis.net/spec/cql2/1.*/conf/cql2-json"],n=["http://www.opengis.net/spec/cql2/1.*/req/advanced-comparison-operators"],o={Items:{BasicFilters:["https://api.stacspec.org/v1.*/ogcapi-features","http://www.opengis.net/spec/ogcapi-features-1/1.*/conf/core"],CollectionIdFilter:!1,ItemIdFilter:!1,CqlFilters:["http://www.opengis.net/spec/ogcapi-features-3/1.*/*/features-filter"],Sort:["https://api.stacspec.org/v1.*/ogcapi-features#sort","http://www.opengis.net/spec/ogcapi-records-1/1.*/conf/sorting"],FreeText:["https://api.stacspec.org/v1.*/ogcapi-features#free-text"]},Global:{BasicFilters:!0,CollectionIdFilter:!0,ItemIdFilter:!0,CqlFilters:["https://api.stacspec.org/v1.*/item-search#filter"],Sort:["https://api.stacspec.org/v1.*/item-search#sort"],FreeText:["https://api.stacspec.org/v1.*/item-search#free-text"]},Collections:{BasicFilters:["https://api.stacspec.org/v1.*/collection-search"],CollectionIdFilter:!1,ItemIdFilter:!1,CqlFilters:["https://api.stacspec.org/v1.*/collection-search#filter"],Sort:["https://api.stacspec.org/v1.*/collection-search#sort"],FreeText:["https://api.stacspec.org/v1.*/collection-search#free-text"]}};e.Z={props:{type:{type:String,required:!0}},computed:{...(0,s.Se)(["supportsConformance"]),conformances(){return o[this.type]},canSort(){return this.supportsConformance(this.conformances.Sort)},canFilterExtents(){return this.supportsConformance(this.conformances.BasicFilters)},canFilterFreeText(){return this.supportsConformance(this.conformances.FreeText)},cql(){if(!this.supportsConformance(this.conformances.CqlFilters))return null;let t=this.supportsConformance(r),e=this.supportsConformance(i);return t||e?{textMode:t,jsonMode:e,advancedComparison:this.supportsConformance(n)}:null}}}},83681:function(t,e,a){"use strict";var s=a(20629);e.Z=t=>{let e={computed:{...(0,s.rn)(["uiLanguage"])},methods:{}};for(let a in t){let s=t[a];e.methods[a]=function(){return this.uiLanguage,s(...arguments)}}return e}},59642:function(t,e,a){"use strict";var s=a(20629);e.Z={props:{showThumbnail:{type:Boolean,default:!0}},computed:{...(0,s.rn)(["cardViewMode","crossOriginMedia","defaultThumbnailSize"]),isList(){return this.data&&!this.data.isItem()&&"list"===this.cardViewMode},hasImage(){return this.showThumbnail&&this.thumbnail},thumbnail(){if(this.data){let t=this.data.getThumbnails(!0,"thumbnail");if(t.length>0){let e,a,s=t[0];return Array.isArray(s["proj:shape"])&&2===s["proj:shape"].length?[a,e]=s["proj:shape"]:Array.isArray(this.defaultThumbnailSize)&&2===this.defaultThumbnailSize.length&&([a,e]=this.defaultThumbnailSize),{src:s.href,alt:s.title,crossorigin:this.crossOriginMedia,right:this.isList,blankColor:"rgba(0, 0, 0, 0.125)",width:e,height:a,"blank-width":e,"blank-height":a}}}return null}}}},60054:function(t,e,a){"use strict";let s;s=a(4216),e.Z=Object.assign(s,{pathPrefix:"/stac-browser",historyMode:"hash"},window.STAC_BROWSER_CONFIG)},71259:function(t,e,a){"use strict";a.d(e,{Cy:function(){return g},EV:function(){return f},Mk:function(){return c},_j:function(){return p}});var s=a(20144),r=a(17152),i=a(60054),n=a(28713),o=a.n(n),l=a(79879);s.ZP.use(r.Z);const c=["https://api.stacspec.org/v1.*/language"],u={};function d(){for(let e of i.Z.supportedLocales)u[e]=a(82599)(`./${e}/config.json`);const t={};for(let e in u)t[e]={languages:u};return t}const h=new r.Z({locale:i.Z.locale,fallbackLocale:i.Z.fallbackLocale,messages:d()});function p(){return Promise.all([f(i.Z.locale),f(i.Z.fallbackLocale)])}async function f(t){if(l.ZP.size(h.messages[t])>1)return;const e=(await a(50448)(`./${t}/default.js`)).default;h.mergeLocaleMessage(t,e)}function g(t,e=null){if("string"!==typeof t||0===t.length)return t;let a=`fields.${t}`;return h.te(a)?h.t(a,null,e):o().format(t,e)}e.ZP=h},62846:function(t,e,a){"use strict";a.d(e,{Si:function(){return i},xI:function(){return r}});a(57658);function s(t){if(!t)return;const e=String(t),a=e.indexOf("@"),s=-1!==a?e.substr(a+1):void 0,r=-1!==a?e.substr(0,a):e,i=String(r).replace(/-/g,"_").split("_");if(!i.length||i.length>4)return;const n=i.shift();if(!n)return;const o={keyword:s,language:n.toLowerCase()};if(!i.length)return o;if(3===i.length){const t=i.pop();t&&(o.variant=t.toUpperCase())}let l=i.pop();if(l.length>3&&(o.keyword=l,l=i.pop()),l&&(o.country=l.toUpperCase()),!i.length)return o;const c=i.pop();return"string"===typeof c&&c.length>=1&&(o.script=c[0].toUpperCase()+c.substring(1).toLowerCase()),o}function r(t){const e={};return t.forEach((t=>{const{language:a,country:r}=s(t);if(!a)throw new Error(`Locale ${t} is not parsable`);e[a]||(e[a]={countries:{},firstCountry:void 0,main:void 0});const i=e[a];r?(i.countries[r]=t,i.firstCountry||(i.firstCountry=t)):i.main=t})),e}function i(t,e,a,n){const o=Array.isArray(t)?r(t):t;if(!e&&a)return i(t,a,void 0,n);if(!e)return;const{language:l,country:c}=s(e);if(!l)return a;if(!o[l]){if(e===a)return;return i(t,a,null,n)}const{countries:u,main:d=a,firstCountry:h}=o[l];return u&&c?n&&h?u[c]?u[c]:h:u[c]?u[c]:d:n&&h?h:d}},95346:function(t,e,a){"use strict";var s=a(20144),r=function(){var t=this,e=t._self._c;return e("b-container",{attrs:{id:"stac-browser"}},[t.doAuth.length>0?e("Authentication"):t._e(),t.globalError?e("ErrorAlert",t._b({staticClass:"global-error",on:{close:t.hideError}},"ErrorAlert",t.globalError,!1)):t._e(),t.sidebar?e("Sidebar"):t._e(),e("header",[e("div",{staticClass:"logo"},[t._v(t._s(t.displayCatalogTitle))]),e("StacHeader",{on:{enableSidebar:function(e){t.sidebar=!0}}})],1),e("router-view"),e("footer",[e("i18n",{staticClass:"poweredby text-muted",attrs:{tag:"small",path:"poweredBy"},scopedSlots:t._u([{key:"link",fn:function(){return[e("a",{attrs:{href:"https://github.com/radiantearth/stac-browser",target:"_blank"}},[t._v("STAC Browser")]),t._v(" "+t._s(t.browserVersion)+" ")]},proxy:!0}])})],1)],1)},i=[],n=(a(57658),a(78345)),o=a(20629),l=a(60054),c=function(){var t=this,e=t._self._c;return e("main",{staticClass:"browse d-flex flex-column"},[!t.allowExternalAccess&&t.isExternal?e("b-alert",{attrs:{show:""}},[t._v(t._s(t.$t("errors.noExternalAccess")))]):t.error?e("ErrorAlert",{attrs:{dismissible:!1,url:t.url,description:t.errorDescription,id:t.errorId}}):t.loading?e("Loading",{attrs:{stretch:""}}):e(t.component,{tag:"component"})],1)},u=[],d=function(){var t=this,e=t._self._c;return e("b-alert",{attrs:{variant:"danger",show:"",dismissible:t.dismissible},on:{dismissed:function(e){return t.$emit("close")}}},[e("p",{staticClass:"message"},[t._v(t._s(t.message||t.$t("errors.default")))]),t.error&&t.error.message?e("dl",{staticClass:"error"},[e("dt",[t._v(t._s(t.$t("errors.labels.cause")))]),e("dd",[t._v(t._s(t.error.message))])]):t._e(),t.description?e("dl",{staticClass:"description"},[e("dt",[t._v(t._s(t.$t("errors.labels.reason")))]),e("dd",[t._v(t._s(t.description))])]):t._e(),t.id?e("dl",{staticClass:"id"},[e("dt",[t._v(t._s(t.$t("errors.labels.code")))]),e("dd",[e("code",[t._v(t._s(t.id))])])]):t._e(),t.url?e("dl",{staticClass:"url"},[e("dt",[t._v(t._s(t.$t("errors.labels.requestURL")))]),e("dd",[e("code",[t._v(t._s(t.url))])])]):t._e()])},h=[],p={name:"ErrorAlert",props:{message:{type:String,default:null},description:{type:String,default:""},error:{type:[Object,Error],default:null},id:{type:[String,Number],default:null},url:{type:String,default:""},dismissible:{type:Boolean,default:!0}}},f=p,g=a(1001),m=(0,g.Z)(f,d,h,!1,null,"09bb7d1b",null),b=m.exports,y=a(79091),v=function(){var t=this,e=t._self._c;return e("div",{key:t.data.id,staticClass:"item"},[e("b-row",[e("b-col",{staticClass:"left"},[e("section",{staticClass:"mb-4"},[e("b-card",{staticClass:"maps-preview",attrs:{"no-body":""}},[e("b-tabs",{ref:"tabs",attrs:{card:"",pills:"",vertical:"",end:""},model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[e("b-tab",{attrs:{title:t.$t("map"),"no-body":""}},[e("Map",{attrs:{stac:t.data,stacLayerData:t.selectedAsset,scrollWheelZoom:""},on:{dataChanged:t.dataChanged}})],1),t.thumbnails.length>0?e("b-tab",{attrs:{title:t.$t("thumbnails"),"no-body":""}},[e("Thumbnails",{attrs:{thumbnails:t.thumbnails}})],1):t._e()],1)],1)],1),t.hasAssets?e("Assets",{attrs:{assets:t.assets,context:t.data,shown:t.shownAssets},on:{showAsset:t.showAsset}}):t._e(),t.additionalLinks.length>0?e("Links",{attrs:{title:t.$t("additionalResources"),links:t.additionalLinks}}):t._e()],1),e("b-col",{staticClass:"right"},[e("section",{staticClass:"intro"},[t.data.properties.description?e("h2",[t._v(t._s(t.$t("description")))]):t._e(),t.data.properties.deprecated?e("DeprecationNotice",{attrs:{data:t.data}}):t._e(),t.data.properties["anon:warning"]?e("AnonymizedNotice",{attrs:{warning:t.data.properties["anon:warning"]}}):t._e(),t.data.properties.description?e("ReadMore",{attrs:{lines:10,text:t.$t("read.more"),"text-less":t.$t("read.less")}},[e("Description",{attrs:{description:t.data.properties.description}})],1):t._e(),Array.isArray(t.data.properties.keywords)&&t.data.properties.keywords.length>0?e("Keywords",{attrs:{keywords:t.data.properties.keywords}}):t._e()],1),t.collectionLink?e("CollectionLink",{attrs:{link:t.collectionLink}}):t._e(),t.data.properties.providers?e("Providers",{attrs:{providers:t.data.properties.providers}}):t._e(),e("Metadata",{attrs:{data:t.data,type:"Item",ignoreFields:t.ignoredMetadataFields}})],1)],1)],1)},w=[],_=a(2778),C=a(78907),P=a.n(C),k=a(79879),L={data(){return{shownAssetsOnMap:[],shownBandsOnMap:[],tab:null,selectedAsset:null,selectedAssetKey:null}},computed:{...(0,o.Se)(["thumbnails","hasAssets","assets"]),shownAssets(){if(0===this.tab)return this.shownAssetsOnMap;if(1===this.tab||null===this.tab&&this.thumbnails.length>0){let t=[],e=this.thumbnails.map((t=>t.href));for(let a in this.assets){let s=this.assets[a];e.includes(s.href)&&t.push(a)}return t}return[]}},methods:{showAsset(t,e,a){a?this.tab=1:(this.tab=0,this.selectedAsset=t,this.selectedAssetKey=e),this.$refs.tabs&&k.ZP.scrollTo(this.$refs.tabs.$el)},dataChanged(t){k.ZP.isObject(t)?t.assets||t.bands?(k.ZP.size(t.assets)>0&&(this.selectedAssetKey?this.shownAssetsOnMap=[this.selectedAssetKey]:this.shownAssetsOnMap=t.assets.map((t=>t.key))),k.ZP.size(t.bands)>0&&(this.shownBandsOnMap=t.bands)):this.selectedAssetKey&&(this.shownAssetsOnMap=[this.selectedAssetKey]):(this.shownBandsOnMap=[],this.shownAssetsOnMap=[])}}},A=a(82996),Z=a(51015),x=a(43989),S=a(54998),T=a.n(S),O=a(71259);function $(t,e){let a=e.getters.toBrowserPath(t),s=T()(window.location.origin.toString());return"hash"===e.state.historyMode?(s.path(e.state.pathPrefix),s.fragment(a)):s.path(e.state.pathPrefix.replace(/\/$/,"")+a),s.toString()}function I(t,e){Array.isArray(e)&&e.length>=4&&(t.spatialCoverage={"@type":"Place",geo:{"@type":"GeoShape",box:(e||[]).join(" ")}})}function j(t){return!Array.isArray(t)||2!==t.length||"string"!==typeof t[0]&&"string"!==typeof t[1]?null:t.map((t=>t||"..")).join("/")}function B(t){return k.ZP.size(t.assets)>0?Object.values(t.assets).map((e=>({"@type":"DataDownload",contentUrl:k.ZP.toAbsolute(e.href,t.getAbsoluteUrl()),encodingFormat:e.type,name:e.title}))):[]}function F(t,e,a,s="DataCatalog"){return t.map((t=>{let r,i;t instanceof x.Z?(r=x.Z.getDisplayTitle(t),i=t.getAbsoluteUrl()):(r=t.title,i=k.ZP.toAbsolute(t.href,e.getAbsoluteUrl()));let n={"@type":s,name:r,url:$(i,a),isBasedOn:i};return"Dataset"===s&&(n.description=U(t,a)),n}))}function M(t,e){return t.filter((t=>k.ZP.isObject(t)&&Array.isArray(t.roles)&&t.roles.includes(e))).map((t=>({"@type":"Organization",name:t.name,description:t.description,url:t.url,email:t.email||t.mail})))}function U(t,e){let a,s;if(t instanceof x.Z?(a=t.isItem()?"Item":t.type,s=t.collection):k.ZP.isObject(t)&&"item"===t.rel&&(a="Item"),a){let r=O.ZP.tc(`stac${a}`),i=O.ZP.t("in",{catalog:s||e.catalogTitle});return`SpatioTemporal Asset Catalog (STAC)\n${r} - ${t.id} ${i}`}}function E(t,e,a){var s;let r,i=x.Z.getDisplayTitle(t),n=t.getAbsoluteUrl(),o=$(n,a),l=null===(s=t.getMetadata("language"))||void 0===s?void 0:s.code,c=t.getThumbnails(!0);c.length>0&&(r=k.ZP.toAbsolute(c[0].href,t.getAbsoluteUrl()));let u=t.getMetadata("license");var d;u&&"proprietary"!==u&&"various"!==u?u=`https://spdx.org/licenses/${u}.html`:u=null===(d=t.getLinkWithRel("license"))||void 0===d?void 0:d.href;u&&(u=k.ZP.toAbsolute(u,t.getAbsoluteUrl()));let h,p,f,g,m=t.getMetadata("providers");return k.ZP.size(m)>0&&(h=M(m,"licensor"),p=M(m,"producer"),f=M(m,"host"),g=M(m,"processor")),{"@context":"https://schema.org/","@type":e,name:i,description:t.getMetadata("description")||U(t,a),citation:t.getMetadata("sci:citation"),identifier:t.getMetadata("sci:doi")||t.id,keywords:t.getMetadata("keywords"),license:u,url:o,isBasedOn:n,dateCreated:t.getMetadata("created"),dateModified:t.getMetadata("updated"),datePublished:t.getMetadata("published"),expires:t.getMetadata("expires"),inLanguage:l,thumbnailUrl:r,version:t.getMetadata("version"),image:r,copyrightHolder:h,producer:p,provider:f,creator:g}}function q(t,e,a){if(!(t instanceof x.Z))return null;e=e.filter((t=>k.ZP.isObject(t))),e.length>1&&(e=e.filter(((t,a)=>e.findIndex((e=>e.isBasedOn===t.isBasedOn))!==a)));let s=E(t,"DataCatalog",a);var r,i,n,o;t.isCollection()&&((null===(r=t.extent)||void 0===r||null===(i=r.temporal)||void 0===i?void 0:i.interval.length)>0&&(s.temporalCoverage=j(t.extent.temporal.interval[0])),(null===(n=t.extent)||void 0===n||null===(o=n.spatial)||void 0===o?void 0:o.bbox.length)>0&&I(s,t.extent.spatial.bbox[0]),s.associatedMedia=B(t));return s.hasPart=F(a.getters.catalogs,t,a),s.dataset=F(a.getters.items,t,a,"Dataset"),s.isPartOf=F(e,t,a),s}function D(t,e,a){if(!(t instanceof x.Z))return null;e=e.filter((t=>k.ZP.isObject(t)));let s=E(t,"Dataset",a);s.includedInDataCatalog=F(e,t,a);let r=t.getMetadata("start_datetime"),i=t.getMetadata("end_datetime");return s.temporalCoverage=r||i?j([r,i]):t.getMetadata("datetime"),I(s,t.bbox),s.distribution=B(t),s}function R(t,e){let a="schema-org",s=t.getElementById(a);s||(s=t.createElement("script"),s.type="application/ld+json",s.id=a,t.head.appendChild(s)),s.innerText=JSON.stringify(e)}var z={name:"Item",components:{AnonymizedNotice:()=>a.e(6553).then(a.bind(a,96553)),Assets:()=>a.e(1198).then(a.bind(a,41198)),BTabs:A.M,BTab:Z.L,CollectionLink:()=>a.e(1247).then(a.bind(a,91247)),Description:_["default"],DeprecationNotice:()=>a.e(2815).then(a.bind(a,42815)),Links:()=>Promise.all([a.e(9539),a.e(2407),a.e(3154)]).then(a.bind(a,53154)),Map:()=>a.e(3805).then(a.bind(a,13805)),Metadata:()=>Promise.all([a.e(9539),a.e(2407),a.e(4622)]).then(a.bind(a,24622)),Providers:()=>a.e(604).then(a.bind(a,30604)),ReadMore:P(),Thumbnails:()=>a.e(5998).then(a.bind(a,55998))},mixins:[L],data(){return{ignoredMetadataFields:["title","description","providers","deprecated","proj:bbox","proj:geometry","anon:warning"]}},computed:{...(0,o.rn)(["data","url"]),...(0,o.Se)(["additionalLinks","collectionLink","parentLink"])},watch:{data:{immediate:!0,handler(t){try{let e=D(t,[this.collectionLink,this.parentLink],this.$store);R(document,e)}catch(e){console.error(e)}}}}},W=z,V=(0,g.Z)(W,v,w,!1,null,null,null),N=V.exports,Q=function(){var t=this,e=t._self._c;return e("div",{key:t.data.id,class:{cc:!0,[t.data.type.toLowerCase()]:!0,mixed:t.hasCatalogs&&t.hasItems,empty:!t.hasCatalogs&&!t.hasItems}},[e("b-row",[e("b-col",{staticClass:"meta"},[e("section",{staticClass:"intro"},[e("h2",[t._v(t._s(t.$t("description")))]),t.data.deprecated?e("DeprecationNotice",{attrs:{data:t.data}}):t._e(),t.data["anon:warning"]?e("AnonymizedNotice",{attrs:{warning:t.data["anon:warning"]}}):t._e(),t.data.description?e("ReadMore",{attrs:{lines:10,text:t.$t("read.more"),"text-less":t.$t("read.less")}},[e("Description",{attrs:{description:t.data.description}})],1):t._e(),Array.isArray(t.data.keywords)&&t.data.keywords.length>0?e("Keywords",{attrs:{keywords:t.data.keywords}}):t._e(),t.isCollection?e("section",{staticClass:"metadata mb-4"},[t.licenses?e("b-row",[e("b-col",{staticClass:"label",attrs:{md:"4"}},[t._v(t._s(t.$t("catalog.license")))]),e("b-col",{staticClass:"value",attrs:{md:"8"}},[e("span",{domProps:{innerHTML:t._s(t.licenses)}})])],1):t._e(),t.temporalExtents?e("b-row",[e("b-col",{staticClass:"label",attrs:{md:"4"}},[t._v(t._s(t.$t("catalog.temporalExtent")))]),e("b-col",{staticClass:"value",attrs:{md:"8"}},[e("span",{domProps:{innerHTML:t._s(t.temporalExtents)}})])],1):t._e()],1):t._e(),"left"===t.linkPosition?e("Links",{attrs:{title:t.$t("additionalResources"),links:t.additionalLinks}}):t._e()],1),t.isCollection||t.hasThumbnails?e("section",{staticClass:"mb-4"},[e("b-card",{staticClass:"maps-preview",attrs:{"no-body":""}},[e("b-tabs",{ref:"tabs",attrs:{pills:"",card:"",vertical:"",end:""},model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[t.isCollection?e("b-tab",{attrs:{title:t.$t("map"),"no-body":""}},[e("Map",{attrs:{stac:t.data,stacLayerData:t.mapData,fitBoundsOnce:"",popover:""},on:{dataChanged:t.dataChanged}})],1):t._e(),t.hasThumbnails?e("b-tab",{attrs:{title:t.$t("thumbnails"),"no-body":""}},[e("Thumbnails",{attrs:{thumbnails:t.thumbnails}})],1):t._e()],1)],1)],1):t._e(),t.hasAssets?e("Assets",{attrs:{assets:t.assets,context:t.data,shown:t.shownAssets},on:{showAsset:t.showAsset}}):t._e(),t.hasItemAssets&&!t.hasItems?e("Assets",{attrs:{assets:t.data.item_assets,definition:!0}}):t._e(),t.providers?e("Providers",{attrs:{providers:t.providers}}):t._e(),e("Metadata",{staticClass:"mb-4",attrs:{title:t.$t("metadata.title"),type:t.data.type,data:t.data,ignoreFields:t.ignoredMetadataFields}}),t.collectionLink?e("CollectionLink",{attrs:{link:t.collectionLink}}):t._e(),"right"===t.linkPosition?e("Links",{attrs:{title:t.$t("additionalResources"),links:t.additionalLinks}}):t._e()],1),t.hasCatalogs?e("b-col",{staticClass:"catalogs-container"},[e("Catalogs",{attrs:{catalogs:t.catalogs,hasMore:!!t.nextCollectionsLink},on:{loadMore:t.loadMoreCollections}})],1):t._e(),t.hasItems?e("b-col",{staticClass:"items-container"},[e("Items",{attrs:{stac:t.data,items:t.items,api:t.isApi,showFilters:t.showFilters,apiFilters:t.filters,pagination:t.itemPages,loading:t.apiItemsLoading},on:{paginate:t.paginateItems,filterItems:t.filterItems,filtersShown:t.filtersShown}}),t.hasItemAssets?e("Assets",{attrs:{assets:t.data.item_assets,definition:!0}}):t._e()],1):t._e()],1)],1)},H=[],G=a(33149),J=a(30578),K=a(83681),X=a(35834),Y={name:"Catalog",components:{AnonymizedNotice:()=>a.e(6553).then(a.bind(a,96553)),Assets:()=>a.e(1198).then(a.bind(a,41198)),BTabs:A.M,BTab:Z.L,Catalogs:G["default"],CollectionLink:()=>a.e(1247).then(a.bind(a,91247)),DeprecationNotice:()=>a.e(2815).then(a.bind(a,42815)),Description:_["default"],Items:J["default"],Keywords:()=>a.e(7245).then(a.bind(a,77245)),Links:()=>Promise.all([a.e(9539),a.e(2407),a.e(3154)]).then(a.bind(a,53154)),Map:()=>a.e(3805).then(a.bind(a,13805)),Metadata:()=>Promise.all([a.e(9539),a.e(2407),a.e(4622)]).then(a.bind(a,24622)),Providers:()=>a.e(604).then(a.bind(a,30604)),ReadMore:P(),Thumbnails:()=>a.e(5998).then(a.bind(a,55998))},mixins:[L,(0,K.Z)({formatLicense:X.formatLicense,formatTemporalExtents:X.formatTemporalExtents})],data(){return{filters:{},ignoredMetadataFields:["stac_version","stac_extensions","id","type","title","description","keywords","providers","license","extent","summaries","links","assets","item_assets","proj:bbox","proj:geometry","conformsTo","deprecated","anon:warning","stats:catalogs","stats:collections","stats:items","stac_browser"]}},computed:{...(0,o.rn)(["data","url","apiItems","apiItemsLink","apiItemsPagination","nextCollectionsLink","stateQueryParameters"]),...(0,o.Se)(["additionalLinks","catalogs","collectionLink","isCollection","items","getApiItemsLoading","parentLink","rootLink"]),showFilters(){return Boolean(this.stateQueryParameters["itemFilterOpen"])},hasThumbnails(){return this.thumbnails.length>0},linkPosition(){return 0===this.additionalLinks.length?null:this.isCollection||!this.hasThumbnails?"right":"left"},apiItemsLoading(){return this.getApiItemsLoading(this.data)},licenses(){return this.isCollection&&this.data.license?this.formatLicense(this.data.license,null,null,this.data):null},providers(){let t=[];return Array.isArray(this.data.providers)&&this.data.providers.length>0?t=this.data.providers:this.isCollection&&k.ZP.isObject(this.data.summaries)&&Array.isArray(this.data.summaries.providers)&&(t=this.data.summaries.providers),t.length>0?t:null},temporalExtents(){if(this.isCollection&&this.data.extent.temporal.interval.length>0){let t=this.data.extent.temporal.interval;return t.length>1&&(t=t.slice(1)),this.formatTemporalExtents(t)}return null},hasItemAssets(){var t;return k.ZP.size(null===(t=this.data)||void 0===t?void 0:t.item_assets)>0},itemPages(){let t=Object.assign({},this.apiItemsPagination);return!t.first&&this.data&&this.apiItemsLink&&"items"!==this.apiItemsLink.rel&&(t.first=k.ZP.addFiltersToLink(this.data.getApiItemsLink(),this.filters)),t},isApi(){return Boolean(this.apiItemsLink)},hasItems(){return this.items.length>0||this.isApi},hasCatalogs(){return this.catalogs.length>0},mapData(){return this.selectedAsset?this.selectedAsset:{type:"FeatureCollection",features:this.items}}},watch:{data:{immediate:!0,handler(t){try{let e=q(t,[this.parentLink,this.rootLink],this.$store);R(document,e)}catch(e){console.error(e)}}}},methods:{filtersShown(t){this.$store.commit("updateState",{type:"itemFilterOpen",value:t?1:null})},loadMoreCollections(){this.$store.dispatch("loadNextApiCollections",{show:!0})},async paginateItems(t){try{await this.$store.dispatch("loadApiItems",{link:t,show:!0,filters:this.filters})}catch(e){this.$root.$emit("error",e,this.$t("errors.loadItems"))}},async filterItems(t,e){this.filters=t,e&&this.$store.commit("resetApiItems",this.data.getApiItemsLink());try{await this.$store.dispatch("loadApiItems",{link:this.apiItemsLink,show:!0,filters:t})}catch(a){let t=e?this.$t("errors.loadItems"):this.$t("errors.loadFilteredItems");this.$root.$emit("error",a,t)}}}},tt=Y,et=(0,g.Z)(tt,Q,H,!1,null,null,null),at=et.exports,st={name:"Browse",components:{ErrorAlert:b,Loading:y.Z,Catalog:at,Item:N},props:{path:{type:String,default:""}},computed:{...(0,o.rn)(["allowExternalAccess","url","data","redirectLegacyUrls"]),...(0,o.Se)(["fromBrowserPath","isItem","error","loading"]),errorId(){if(this.error instanceof Error&&this.error.isAxiosError&&k.ZP.isObject(this.error.response)){let t=this.error.response;return k.ZP.isObject(t.data)&&t.data.code?t.data.code:t.status}return null},errorDescription(){if(this.error instanceof Error&&this.error.isAxiosError&&k.ZP.isObject(this.error.response)){let t=this.error.response;if(k.ZP.isObject(t.data)&&"string"===typeof t.data.description)return t.data.description;if(401===t.status)return this.$t("errors.unauthorized");if(403===t.status)return this.$t("errors.forbidden");if(404===t.status)return this.$t("errors.notFound");if(t.status>500)return this.$t("errors.serverError");if(t.status>400)return this.$t("errors.badRequest")}else if(this.error instanceof k.vV)return this.error.message;return this.$t("errors.networkError")},component(){return this.isItem?"Item":"Catalog"},isExternal(){return T()(this.path).is("absolute")}},watch:{path:{immediate:!0,async handler(t,e){if(t===e)return;if(!this.allowExternalAccess&&this.isExternal)return;if(this.redirectLegacyUrls&&await this.redirectLegacyUrl(t))return;let a=this.fromBrowserPath(t||"/");this.$store.dispatch("load",{url:a,show:!0,loadApi:!0})}}},methods:{async redirectLegacyUrl(t){if(!t||"/"===t)return!1;let e=t.split("/").filter((t=>t.length>0&&"item"!==t&&"collection"!==t));if(e.length>0&&e.every((t=>t.match(/^[123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ]+$/)))){const{decode:t}=await a.e(7191).then(a.t.bind(a,77191,23));let s=t(e[e.length-1]).toString();if(s){let t=T()(s);return this.$router.replace({path:"/"+t.path().replace(/(collections|items)\/?$/,""),query:t.query(!0)}),!0}}return!1}}},rt=st,it=(0,g.Z)(rt,c,u,!1,null,null,null),nt=it.exports;function ot(t){let e=[];return t.allowExternalAccess&&e.push({path:"/external/(.*)",name:"browseExternal",component:nt,props:t=>({path:`/external/${t.params.pathMatch}`})}),t.catalogUrl?e.push({path:"/search",name:"search",component:()=>Promise.all([a.e(9539),a.e(7053),a.e(8493)]).then(a.bind(a,9240))}):(e.push({path:"/",name:"select",component:()=>a.e(5260).then(a.bind(a,5260))}),e.push({path:"/search/external/(.*)",name:"search",component:()=>Promise.all([a.e(9539),a.e(7053),a.e(8493)]).then(a.bind(a,9240)),props:t=>({loadParent:`/external/${t.params.pathMatch}`})})),e.push({path:"/(.*)",name:"browse",component:nt,props:t=>({path:t.params.pathMatch})}),e}var lt=ot,ct=(a(30541),a(6154)),ut=a(54261),dt=a(57273),ht=a(62846),pt=a(59189);function ft(t,e){const a=()=>({url:"",title:t.catalogTitle,description:null,data:null,valid:null,parents:null,globalError:null,localRequestQueryParameters:{},stateQueryParameters:{language:null,asset:[],itemdef:[]},apiItems:[],apiItemsLink:null,apiItemsPagination:{}}),r=()=>({queue:[],privateQueryParameters:{},authData:null,doAuth:[],conformsTo:[],dataLanguage:null,dataLanguages:[],apiCollections:[],apiItemsLoading:{},nextCollectionsLink:null});return new o.ZP.Store({strict:!0,state:Object.assign({},t,a(),r(),{database:{},allowSelectCatalog:!t.catalogUrl,globalRequestQueryParameters:t.requestQueryParameters,uiLanguage:t.locale}),getters:{loading:t=>!t.url||!t.data||t.database[t.url]instanceof dt.gb,getApiItemsLoading:t=>e=>{let a="";return e instanceof dt.gb||(e instanceof x.Z?a=e.id:"string"===typeof e&&(a=e),t.apiItemsLoading[a]||!1)},error:t=>t.database[t.url]instanceof Error?t.database[t.url]:null,getStac:t=>(e,a=!1)=>{if(e instanceof x.Z)return e;if(k.ZP.isObject(e)&&k.ZP.hasText(e.href)&&(e=e.href),!k.ZP.hasText(e))return null;let s=k.ZP.toAbsolute(e,t.url),r=t.database[s];return r instanceof x.Z||a&&r instanceof Error?r:null},displayCatalogTitle:(t,e)=>x.Z.getDisplayTitle(e.root,t.catalogTitle),isCollection:t=>{var e;return(null===(e=t.data)||void 0===e?void 0:e.isCollection())||!1},isCatalog:t=>{var e;return(null===(e=t.data)||void 0===e?void 0:e.isCatalog())||!1},isCatalogLike:t=>{var e;return(null===(e=t.data)||void 0===e?void 0:e.isCatalogLike())||!1},isItem:t=>{var e;return(null===(e=t.data)||void 0===e?void 0:e.isItem())||!1},root:(t,e)=>e.getStac(e.rootLink),rootLink:t=>{var e;let a=null===(e=t.data)||void 0===e?void 0:e.getStacLinkWithRel("root");if(a)return a;if(t.catalogUrl)return k.ZP.createLink(t.catalogUrl,"root");if(t.url&&t.data instanceof x.Z&&t.data.getLinksWithRels(["conformance","service-desc","service-doc","data","search"]).length>0)return k.ZP.createLink(t.url,"root");if(t.url){let e=T()(t.url),a=e.segment(-2);if(["collections","items"].includes(a))return e.segment(-1,""),e.segment(-1,""),"items"===a&&(e.segment(-1,""),e.segment(-1,"")),k.ZP.createLink(e.toString(),"root")}return null},parentLink:t=>{if(t.data instanceof x.Z){let e=t.data.getStacLinkWithRel("parent");if(e)return e}if(t.url){let e=T()(t.url),a=e.segment(-2);if(["collections","items"].includes(a))return e.segment(-1,""),e.segment(-1,""),k.ZP.createLink(e.toString(),"parent")}return null},collectionLink:t=>{if(t.data instanceof x.Z){var e;let a=null===(e=t.data)||void 0===e?void 0:e.getStacLinkWithRel("collection");if(a)return a}if(t.url){let e=T()(t.url),a=e.segment(-2);if("items"==a)return e.segment(-1,""),e.segment(-1,""),k.ZP.createLink(e.toString(),"collection")}return null},supportsConformance:t=>e=>{if(!Array.isArray(e))return e;let a=e.map((t=>t.replaceAll("*","[^/]+").replace(/\/?#/,"/?#"))).join("|"),s=new RegExp("^("+a+")$");return Boolean(t.conformsTo.find((t=>t.match(s))))},supportsExtension:t=>e=>k.ZP.supportsExtension(t.data,e),canSearch:(t,e)=>e.canSearchCollections||e.canSearchItems,canSearchItems:(t,e)=>e.supportsConformance(pt.v.Items.BasicFilters),canSearchCollections:(t,e)=>e.supportsConformance(pt.v.Collections.BasicFilters),items:t=>t.apiItems.length>0?t.apiItems:t.data?t.data.getStacLinksWithRel("item"):[],catalogs:t=>{let e=Boolean(t.data instanceof x.Z&&t.data.getApiCollectionsLink()&&t.apiCollections.length>0),a=Boolean(t.data instanceof x.Z),s=!t.apiCatalogPriority||"collections"===t.apiCatalogPriority,r=!t.apiCatalogPriority||"childs"===t.apiCatalogPriority,i=[];return e&&s&&(i=i.concat(t.apiCollections)),a&&r&&(i=x.Z.addMissingChildren(i,t.data)),i},hasAssets:(t,e)=>Boolean(Object.values(e.assets).find((t=>k.ZP.isObject(t)&&"string"===typeof t.href))),assets:(t,e)=>{var a;if(k.ZP.isObject(null===(a=t.data)||void 0===a?void 0:a.assets)){if(t.showThumbnailsAsAssets)return t.data.assets;{let a={},s=e.thumbnails;for(let e in t.data.assets){let r=t.data.assets[e];s.includes(r)||(a[e]=r)}return a}}return{}},thumbnails:t=>t.data?t.data.getThumbnails(!0):[],additionalLinks:t=>t.data?t.data.getLinksWithOtherRels(ut.RG).filter((t=>"preview"!==t.rel||!k.ZP.canBrowserDisplayImage(t))):[],toBrowserPath:(t,e)=>a=>{k.ZP.hasText(a)||(a="/");let s,r=k.ZP.toAbsolute((0,dt.dJ)(a,t.stacProxyUrl),t.url,!1);if(!t.allowSelectCatalog&&t.catalogUrl&&(s=r.relativeTo(t.catalogUrl)),"undefined"===typeof s||e.isExternalUrl(r,!1)){if(!t.allowExternalAccess)return r.toString();let e=["/external"],a=r.protocol();"https"!==a&&e.push(a+":"),e.push(r.authority()),e.push(r.path().replace(/^\//,""));let s=e.join("/"),i=r.query();return i&&(s+=`?${i}`),s}return"/"+s.toString()},fromBrowserPath:(t,e)=>a=>{const s=/^\/(search\/)?external\//;if(k.ZP.hasText(a)&&"/"!==a)if(a.match(s)){let t,e=a.replace(s,"").split("/");t=e[0].endsWith(":")?e.shift():"https:",a=`${t}//${e.join("/")}`}else!t.allowSelectCatalog&&t.catalogUrl&&(a=k.ZP.toAbsolute(a,t.catalogUrl,!1));else a=t.catalogUrl;return e.getRequestUrl(a,null,!0)},isExternalUrl:t=>(e,a=!0)=>{if(!t.catalogUrl)return!1;if(e instanceof T()||(e=T()(e)),a&&Array.isArray(t.allowedDomains)&&t.allowedDomains.includes(e.domain()))return!1;let s;if(e.is("relative"))s=e;else if(s=e.relativeTo(t.catalogUrl),s.equals(e))return!0;let r=s.toString();return r.startsWith("//")||r.startsWith("../")},getRequestUrl:(t,e)=>(a,s=null,r=!1)=>{let i=k.ZP.toAbsolute((0,dt.qy)(a,t.stacProxyUrl),s||t.url,!1);return e.isExternalUrl(i)||((0,dt.Us)(i,t.privateQueryParameters),(0,dt.Us)(i,t.globalRequestQueryParameters),r&&(0,dt.Us)(i,t.localRequestQueryParameters)),i.toString()},acceptedLanguages:t=>{const e={en:.1};return Array.isArray(t.supportedLocales)&&t.supportedLocales.forEach((t=>e[t]=.2)),k.ZP.hasText(t.fallbackLocale)&&(e[t.fallbackLocale]=.5),Array.isArray(navigator.languages)&&navigator.languages.forEach((t=>e[t]=.7)),k.ZP.hasText(t.locale)&&(e[t.locale]=1),Object.entries(e).sort(((t,e)=>t[1]>e[1]?-1:t[1]e>=1?t:`${t};q=${e}`)).join(",")}},mutations:{config(t,e){for(let a in e){let s=e[a];switch(a){case"catalogTitle":t.catalogTitle=s;break;case"catalogUrl":"function"===typeof s?t.catalogUrl=s():"string"===typeof s&&(t.catalogUrl=s);break;case"crossOriginMedia":t.crossOriginMedia=["anonymous","use-credentials"].includes(s)?s:null;break;case"cardViewSort":switch(s){case"asc":t.cardViewSort=1;break;case"desc":t.cardViewSort=-1;break;default:t.cardViewSort=0}break;default:t[a]=s}}},languages(t,{uiLanguage:e,dataLanguage:a}){t.dataLanguage=a||null,t.uiLanguage=e||null},setQueryParameter(t,{type:e,key:a,value:r}){e=`${e}QueryParameters`,"undefined"===typeof r?s.ZP.delete(t[e],a):s.ZP.set(t[e],a,r)},setRequestHeader(t,{key:e,value:a}){"undefined"===typeof a?s.ZP.delete(t.requestHeaders,e):s.ZP.set(t.requestHeaders,e,a)},requestAuth(t,e){"function"===typeof e?t.doAuth.push(e):t.doAuth=[]},setAuthData(t,e){t.authData=e},state(t,e){t.stateQueryParameters=e},updateState(t,{type:e,value:a}){null===a||"undefined"===typeof a?s.ZP.delete(t.stateQueryParameters,e):s.ZP.set(t.stateQueryParameters,e,a)},openCollapsible(t,{type:e,uid:a}){const s=t.stateQueryParameters[e].indexOf(a);-1===s&&t.stateQueryParameters[e].push(a)},closeCollapsible(t,{type:e,uid:a}){const r=t.stateQueryParameters[e].indexOf(a);r>-1&&s.ZP.delete(t.stateQueryParameters[e],r)},updateLoading(t,{url:e,show:a,loadApi:r}){let i=t.database[e];s.ZP.set(i,"show",a||i.show),s.ZP.set(i,"loadApi",r||i.loadApi)},loading(t,{url:e,loading:a}){s.ZP.set(t.database,e,a),a.show&&(t.url=e)},loaded(t,{url:e,data:a}){s.ZP.set(t.database,e,(0,dt.a_)(t,a))},clear(t,e){s.ZP.delete(t.database,e)},resetCatalog(e,s){Object.assign(e,r()),Object.assign(e,a()),e.supportedLocales.includes(e.locale)||(e.locale=t.locale),s&&(e.catalogUrl=t.catalogUrl,e.catalogTitle=t.catalogTitle,e.database={})},resetPage(t){Object.assign(t,a())},showPage(t,{url:e,title:a,description:s,stac:r}){if(r||(r=t.database[e]||null),t.url=e||null,t.data=r instanceof x.Z?r:null,t.valid=null,t.description=s,a)t.title=a;else if(t.title=x.Z.getDisplayTitle(t.data,t.catalogTitle),t.data){let e=t.data.getMetadata("description");k.ZP.hasText(e)&&(t.description=e)}if(t.data){let e=t.data.isItem()?t.data.properties:t.data,a=Array.isArray(e.languages)?e.languages.slice():[];k.ZP.isObject(e.language)&&a.unshift(e.language),t.dataLanguages=a.filter((t=>k.ZP.isObject(t)&&"string"===typeof t.code))}},errored(t,{url:e,error:a}){a instanceof Error||(a=new Error(a)),s.ZP.set(t.database,e,a)},valid(t,e){t.valid=e},queue(t,e){t.queue.push(e)},unqueue(t,e){let a=t.queue.indexOf(e);-1!==a&&t.queue.splice(a,1)},removeFromQueue(t,e){t.queue.splice(0,e)},setConformanceClasses(t,e){Array.isArray(e)&&(t.conformsTo=e)},setApiItemsLink(t,e){t.apiItemsLink=e},toggleApiItemsLoading(t,e=""){t.apiItemsLoading[e]?s.ZP.delete(t.apiItemsLoading,e):s.ZP.set(t.apiItemsLoading,e,!0)},setApiItems(t,{data:e,stac:a,show:s}){if(!k.ZP.isObject(e)||!Array.isArray(e.features))return;let r=e.features.map((e=>(0,dt.a_)(t,e)));s&&(t.apiItems=r);let i=k.ZP.getPaginationLinks(e);s&&(t.apiItemsPagination=i),a instanceof x.Z&&a.setApiData(r,i.next,i.prev)},addApiCollections(t,{data:e,stac:a,show:s}){if(!k.ZP.isObject(e)||!Array.isArray(e.collections))return;let r=e.collections.map((e=>(0,dt.a_)(t,e))),i=k.ZP.getLinkWithRel(e.links,"next");s&&(t.nextCollectionsLink=i,t.apiCollections=t.apiCollections.concat(r)),a instanceof x.Z&&a.setApiData(r,i)},resetApiItems(t,e){t.apiItems=[],t.apiItemsLink=e,t.apiItemsPagination={}},parents(t,e){t.parents=e},showGlobalError(t,e){console.error(e),t.globalError=e}},actions:{async switchLocale(t,{locale:e,userSelected:a}){if(t.commit("config",{locale:e}),t.state.storeLocale&&a)try{window.localStorage.setItem("locale",e)}catch(o){console.error(o)}let s=(0,ht.Si)(t.state.supportedLocales,e,t.state.fallbackLocale),r=t.state.dataLanguages.map((t=>t.code)),i=t.state.dataLanguages.length>0?t.state.dataLanguages[0].code:s,n=(0,ht.Si)(r,e,i);t.commit("languages",{dataLanguage:n,uiLanguage:s}),t.commit("setQueryParameter",{type:"state",key:"language",value:e})},async setAuth(t,e){k.ZP.hasText(e)||(e=null),t.commit("setAuthData",e);let a=t.state.authConfig,s=a.key;e&&("Bearer"===a.formatter?e=`Bearer ${e}`:"function"===typeof a.formatter&&(e=a.formatter(e))),k.ZP.hasText(e)||(e=void 0),"query"===a.type?t.commit("setQueryParameter",{type:"private",key:s,value:e}):"header"===a.type&&t.commit("setRequestHeader",{key:s,value:e})},async loadBackground(t,e){let a=t.state.queue.slice(0,e);if(a.length>0){let s=[];for(let e of a)s.push(t.dispatch("load",{url:e}));return t.commit("removeFromQueue",e),await Promise.all(s)}},async loadParents(t){if(!(t.state.data instanceof x.Z))return void t.commit("parents",[]);let e=[],a=t.state.data;while(a){let s=a.getLinkWithRel("parent")||a.getLinkWithRel("root");if(!s)break;let r=k.ZP.toAbsolute(s.href,a.getAbsoluteUrl());await t.dispatch("load",{url:r,loadApi:!0});let i=t.getters.getStac(r,!0);if(i instanceof Error)return void t.commit("parents",i);if(i===a)break;e.push(i),a=i}t.commit("parents",e)},async load(t,a){let{url:s,show:r,loadApi:i,loadRoot:n,force:o}=a,l=t.getters.toBrowserPath(s);s=k.ZP.toAbsolute(s,t.state.url),n||"/"===l||!t.state.catalogUrl||t.getters.getStac(t.state.catalogUrl)||await t.dispatch("load",{url:t.state.catalogUrl,loadApi:!0,loadRoot:!0}),o&&t.commit("clear",s);let c=new dt.gb(r,i),u=t.state.database[s];if(u instanceof dt.gb)t.commit("updateLoading",{url:s,show:r,loadApi:i});else{if(!u||u instanceof x.Z&&u.isPotentiallyIncomplete()){t.commit("loading",{url:s,loading:c});try{let a=await(0,dt.ui)(t,s);if(!k.ZP.isObject(a.data))throw new k.vV(O.ZP.t("errors.invalidJsonObject"));if(u=new x.Z(a.data,s,l),r){let a=u.getLocaleLink(t.state.dataLanguage);if(a)return void e.replace(t.getters.toBrowserPath(a.href))}if(t.commit("loaded",{url:s,data:u}),!t.getters.root){let e=u.getLinkWithRel("root");e&&t.commit("config",{catalogUrl:k.ZP.toAbsolute(e.href,s)})}let i=u.getStacLinkWithRel("conformance");Array.isArray(u.conformsTo)&&u.conformsTo.length>0?t.commit("setConformanceClasses",u.conformsTo):i&&await t.dispatch("loadOgcApiConformance",i)}catch(d){if(t.state.authConfig&&(0,dt.HH)(d))return t.commit("clear",s),void t.commit("requestAuth",(()=>t.dispatch("load",a)));console.error(d),t.commit("errored",{url:s,error:d})}}if(c.loadApi&&u instanceof x.Z){if(u.getApiCollectionsLink()){let e={stac:u,show:c.show};try{await t.dispatch("loadNextApiCollections",e)}catch(d){t.state.authConfig&&(0,dt.HH)(d)?t.commit("requestAuth",(()=>t.dispatch("loadNextApiCollections",e))):t.commit("showGlobalError",{message:O.ZP.t("errors.loadApiCollectionsFailed"),error:d})}}if(u.getApiItemsLink()){let e={stac:u,show:c.show};try{await t.dispatch("loadApiItems",e)}catch(d){t.state.authConfig&&(0,dt.HH)(d)?t.commit("requestAuth",(()=>t.dispatch("loadApiItems",e))):t.commit("showGlobalError",{message:O.ZP.t("errors.loadApiItemsFailed"),error:d})}}}c.show&&t.commit("showPage",{url:s})}},async loadApiItems(t,{link:e,stac:a,show:s,filters:r}){let i=a instanceof x.Z?a.id:"";t.commit("toggleApiItemsLoading",i);try{let n=t.state.url;a instanceof x.Z&&(e=a.getApiItemsLink(),n=a.getAbsoluteUrl()),e=k.ZP.addFiltersToLink(e,r,t.state.itemsPerPage);let o=await(0,dt.ui)(t,e);if(k.ZP.isObject(o.data)&&Array.isArray(o.data.features))return o.data.features=o.data.features.map((e=>{try{if(!k.ZP.isObject(e)||"Feature"!==e.type)return null;let s,r=k.ZP.getLinkWithRel(e.links,"self");if(null!==r&&void 0!==r&&r.href)s=k.ZP.toAbsolute(r.href,n);else{if("undefined"===typeof e.id)return null;{var a;let r=null===(a=t.getters.root)||void 0===a?void 0:a.getApiCollectionsLink();if(n)s=k.ZP.toAbsolute(`items/${e.id}`,n);else if(r)s=k.ZP.toAbsolute(`${i}/items/${e.id}`,r.href);else{if(!t.state.catalogUrl)return null;s=k.ZP.toAbsolute(`collections/${i}/items/${e.id}`,t.state.catalogUrl)}}}let o=t.getters.getStac(s);return o||(o=new x.Z(e,s,t.getters.toBrowserPath(s)),o.markPotentiallyIncomplete(),t.commit("loaded",{data:o,url:s}),o)}catch(s){return console.error(s),null}})).filter((t=>t instanceof x.Z)),s&&t.commit("setApiItemsLink",e),t.commit("setApiItems",{data:o.data,stac:a,show:s}),t.commit("toggleApiItemsLoading",i),o;throw new k.vV(O.ZP.t("errors.invalidStacItems"))}catch(n){throw t.commit("toggleApiItemsLoading",i),n}},async loadNextApiCollections(t,{stac:e,show:a}){let s;if(e){if(t.state.apiCollections.length>0)return;s=e.getLinkWithRel("data")}else e=t.state.data,s=t.state.nextCollectionsLink;if(!s)return;let r=await(0,dt.ui)(t,s);if(!k.ZP.isObject(r.data)||!Array.isArray(r.data.collections))throw new k.vV(O.ZP.t("errors.invalidStacCollections"));r.data.collections=r.data.collections.map((a=>{let s,r=k.ZP.getLinkWithRel(a.links,"self");s=null!==r&&void 0!==r&&r.href?k.ZP.toAbsolute(r.href,t.state.url||e.getAbsoluteUrl()):k.ZP.toAbsolute(`collections/${a.id}`,t.state.catalogUrl||e.getAbsoluteUrl());let i=t.getters.getStac(s);return i||(i=new x.Z(a,s,t.getters.toBrowserPath(s)),i.markPotentiallyIncomplete(),t.commit("loaded",{data:i,url:s}),i)})),t.commit("addApiCollections",{data:r.data,stac:e,show:a})},async loadOgcApiConformance(t,e){let a=await(0,dt.ui)(t,e);k.ZP.isObject(a.data)&&Array.isArray(a.data.conformsTo)&&t.commit("setConformanceClasses",a.data.conformsTo)},async loadGeoJson(t,e){try{let a=await(0,dt.ui)(t,e);return a.data}catch(a){return null}},async retryAfterAuth(t){let e=e=>t.commit("showGlobalError",{error:e,message:O.ZP.t("errors.authFailed")});for(let s of t.state.doAuth)try{let t=s();t instanceof Promise&&t.catch(e)}catch(a){e(a)}},async validate(t,e){if("boolean"!==typeof t.state.valid)try{var a,s;let r=T()("https://api.staclint.com/url");r.addSearch("stac_url",e);let i=await ct.Z.get(r.toString());t.commit("valid",Boolean(null===(a=i.data)||void 0===a||null===(s=a.body)||void 0===s?void 0:s.valid_stac))}catch(r){t.commit("valid",r)}}}})}var gt=ft,mt=a(54063),bt=a(63800),yt=a(1869),vt=a(32026),wt=a(12926),_t=a(8824),Ct=a(81899),Pt=a(71067),kt=a(58290),Lt=(a(57024),function(){var t=this,e=t._self._c;return e("b-row",[e("b-col",{attrs:{md:"12"}},[e("Source",{staticClass:"float-right",attrs:{title:t.title,stacUrl:t.url,stac:t.data}}),e("h1",[t.icon?[e("img",{staticClass:"icon mr-2",attrs:{src:t.icon.href,alt:t.icon.title,title:t.icon.title}})]:t._e(),e("span",{staticClass:"title"},[t._v(t._s(t.title))])],2),t.url||t.isSearchPage()?e("p",{staticClass:"lead"},[t.containerLink?e("i18n",{staticClass:"in mr-3",attrs:{tag:"span",path:"in"},scopedSlots:t._u([{key:"catalog",fn:function(){return[e("StacLink",{attrs:{data:t.containerLink}})]},proxy:!0}],null,!1,1458487365)}):t._e(),e("b-button-group",[t.parentLink?e("b-button",{attrs:{to:t.toBrowserPath(t.parentLink.href),title:t.parentLinkTitle,variant:"outline-primary",size:"sm"}},[e("b-icon-arrow-90deg-up"),t._v(" "),e("span",{staticClass:"button-label prio"},[t._v(t._s(t.$t("goToParent.label")))])],1):t._e(),t.collectionLink?e("b-button",{attrs:{to:t.toBrowserPath(t.collectionLink.href),title:t.collectionLinkTitle,variant:"outline-primary",size:"sm"}},[e("b-icon-folder-symlink"),t._v(" "),e("span",{staticClass:"button-label prio"},[t._v(t._s(t.$t("goToCollection.label")))])],1):t._e(),e("b-button",{directives:[{name:"b-toggle",rawName:"v-b-toggle.sidebar",modifiers:{sidebar:!0}}],attrs:{variant:"outline-primary",size:"sm",title:t.$t("browse")},on:{click:function(e){return t.$emit("enableSidebar")}}},[e("b-icon-book"),t._v(" "),e("span",{staticClass:"button-label prio"},[t._v(t._s(t.$t("browse")))])],1),t.canSearch?e("b-button",{attrs:{variant:"outline-primary",size:"sm",to:t.searchBrowserLink,title:t.$t("search.title"),pressed:t.isSearchPage()}},[e("b-icon-search"),t._v(" "),e("span",{staticClass:"button-label prio"},[t._v(t._s(t.$t("search.title")))])],1):t._e(),t.authConfig?e("b-button",{attrs:{variant:"outline-primary",size:"sm",title:t.$t("authentication.button.title")},on:{click:t.auth}},[t.authData?[e("b-icon-lock"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("authentication.button.authenticated")))])]:[e("b-icon-unlock"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("authentication.button.authenticate")))])]],2):t._e()],1)],1):t._e()],1)],1)}),At=[],Zt=function(){var t=this,e=t._self._c;return e("div",{staticClass:"share mt-1"},[e("b-button-group",[t.showRoot?e("b-button",{attrs:{size:"sm",variant:"outline-primary",id:"popover-root-btn"}},[e("b-icon-box"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.rootTitle))])],1):t._e(),t.stacUrl?e("b-button",{attrs:{size:"sm",variant:"outline-primary",id:"popover-link-btn",title:t.$t("source.detailsAboutSource")}},[e("b-icon-link"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("source.label")))])],1):t._e(),e("b-button",{attrs:{size:"sm",variant:"outline-primary",id:"popover-share-btn",title:t.$t("source.share.withOthers")}},[e("b-icon-share"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("source.share.label")))])],1),e("b-dropdown",{attrs:{size:"sm",variant:"outline-primary",right:"",title:t.$t("source.language.switch")},scopedSlots:t._u([{key:"button-content",fn:function(){return[e("b-icon-flag"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("source.language.label",{currentLanguage:t.currentLanguage})))])]},proxy:!0}])},t._l(t.languages,(function(a){return e("b-dropdown-item",{key:a.code,staticClass:"lang-item",on:{click:function(e){return t.switchLocale({locale:a.code,userSelected:!0})}}},[t.locale===a.code?e("b-icon-check"):e("b-icon-blank"),e("span",{staticClass:"title"},[t._v(" "+t._s(a.native)+" "),a.global&&a.global!==a.native?[t._v(" / "+t._s(a.global))]:t._e()],2),!t.supportsLanguageExt||a.ui&&a.data?t._e():e("b-icon-exclamation-triangle",{staticClass:"ml-2",attrs:{title:a.ui?t.$t("source.language.onlyUI"):t.$t("source.language.onlyData")}})],1)})),1)],1),t.showRoot?e("b-popover",{attrs:{id:"popover-root",target:"popover-root-btn",triggers:"focus",placement:"bottom",container:"stac-browser",title:t.rootTitle}},[e("RootStats")],1):t._e(),t.stacUrl?e("b-popover",{attrs:{id:"popover-link",target:"popover-link-btn",triggers:"click",placement:"bottom",container:"stac-browser",title:t.$t("source.title")},on:{show:t.validate}},[t.stac?[t.stacId?e("b-row",{staticClass:"stac-id"},[e("b-col",{attrs:{cols:"4"}},[t._v(t._s(t.$t("source.id")))]),e("b-col",[e("code",[t._v(t._s(t.stacId))]),e("CopyButton",{staticClass:"ml-2",attrs:{copyText:t.stacId,"button-props":{size:"sm"},variant:"primary"}})],1)],1):t._e(),t.stacVersion?e("b-row",{staticClass:"stac-version"},[e("b-col",{attrs:{cols:"4"}},[t._v(t._s(t.$t("source.stacVersion")))]),e("b-col",[t._v(t._s(t.stacVersion))])],1):t._e(),t.canValidate?e("b-row",{staticClass:"validation"},[e("b-col",{attrs:{cols:"4"}},[t._v(t._s(t.$t("source.valid")))]),e("b-col",[null===t.valid?e("b-spinner",{attrs:{label:t.$t("source.validating"),small:""}}):!0===t.valid?[t._v("✔️")]:!1===t.valid?[t._v("❌")]:[t._v(t._s(t.$t("source.validationNA")))]],2)],1):t._e(),e("hr")]:t._e(),e("Url",{attrs:{id:"stacUrl",url:t.stacUrl,label:t.$t("source.locatedAt")}})],2):t._e(),e("b-popover",{attrs:{id:"popover-share",target:"popover-share-btn",triggers:"focus",placement:"bottom",container:"stac-browser",title:t.$t("source.share.title")}},[e("Url",{attrs:{id:"browserUrl",url:t.browserUrl(),label:t.$t("source.share.sharePageWithOthers"),open:!1}}),e("hr"),e("b-button",{staticClass:"twitter mr-1",attrs:{href:t.twitterUrl}},[e("b-icon-twitter"),t._v(" "+t._s(t.$t("source.share.twitter")))],1),e("b-button",{attrs:{variant:"dark",href:t.mailTo}},[e("b-icon-envelope"),t._v(" "+t._s(t.$t("source.share.email")))],1)],1)],1)},xt=[],St=a(36537),Tt=a(87379),Ot=a(38019),$t=a(87450),It=function(){var t=this,e=t._self._c;return e("b-form-group",{attrs:{label:t.label,"label-for":t.id}},[e("b-input-group",{attrs:{size:"sm"}},[e("b-form-input",{ref:"input",attrs:{id:t.id,value:t.url,readonly:""}}),e("b-input-group-append",[e("CopyButton",{attrs:{copyText:t.url,variant:"primary"}}),t.open?e("b-button",{attrs:{href:t.url,target:"_blank",variant:"primary",title:t.$t("open")}},[e("b-icon-arrow-up-right-square")],1):t._e()],1)],1)],1)},jt=[],Bt=a(54240),Ft=a(27353),Mt=a(91317),Ut=a(22418),Et={name:"Share",components:{BFormGroup:Bt.x,BFormInput:Ft.e,BIconArrowUpRightSquare:Ot.k$g,BInputGroup:Mt.w,BInputGroupAppend:Ut.B,CopyButton:()=>Promise.resolve().then(a.bind(a,89988))},props:{id:{type:String,required:!0},url:{type:String,required:!0},label:{type:String,required:!0},open:{type:Boolean,default:!0}}},qt=Et,Dt=(0,g.Z)(qt,It,jt,!1,null,"74684ede",null),Rt=Dt.exports,zt=a(89988);const Wt="https://stac-extensions.github.io/language/v1.*/schema.json";var Vt={name:"Source",components:{BDropdown:St.R,BDropdownItem:Tt.E,BIconBlank:Ot.GWp,BIconBox:Ot.rqI,BIconCheck:Ot.PaS,BIconEnvelope:Ot.AzZ,BIconExclamationTriangle:Ot.Sbj,BIconFlag:Ot.G49,BIconLink:Ot.ZV1,BIconShare:Ot.Rq4,BIconTwitter:Ot.A82,BPopover:$t.x,RootStats:()=>a.e(2588).then(a.bind(a,42588)),Url:Rt,CopyButton:zt["default"]},props:{title:{type:String,required:!0},stacUrl:{type:String,default:null},stac:{type:Object,default:null}},computed:{...(0,o.rn)(["conformsTo","dataLanguages","locale","privateQueryParameters","supportedLocales","stacLint","stacProxyUrl","uiLanguage","valid"]),...(0,o.Se)(["supportsExtension","root"]),stacVersion(){var t;return null===(t=this.stac)||void 0===t?void 0:t.stac_version},stacId(){var t;return null===(t=this.stac)||void 0===t?void 0:t.id},showRoot(){return!!this.root&&(Array.isArray(this.conformsTo)&&this.conformsTo.length>0||k.ZP.isObject(this.root["stats:collections"])||k.ZP.isObject(this.root["stats:catalogs"])||k.ZP.isObject(this.root["stats:items"]))},rootTitle(){return Array.isArray(this.conformsTo)&&this.conformsTo.length>0?this.$t("index.api"):this.$t("index.catalog")},currentLanguage(){let t=this.languages.find((t=>t.code===this.locale));return t?t.native:"-"},canValidate(){if(!this.stacLint||"string"!==typeof this.stacUrl)return!1;if(k.ZP.size(this.privateQueryParameters)>0)return!1;if(Array.isArray(this.stacProxyUrl))return!1;let t=T()(this.stacUrl),e=t.hostname().toLowerCase();return"localhost"!==e&&!e.startsWith("127.")&&"::1"!==e},message(){return this.$t("source.share.message",{title:this.title,url:this.browserUrl()})},twitterUrl(){let t=encodeURIComponent(this.message);return`https://twitter.com/intent/tweet?text=${t}`},mailTo(){let t=encodeURIComponent(this.title),e=encodeURIComponent(this.message);return`mailto:?subject=${t}&body=${e}`},supportsLanguageExt(){return this.supportsExtension(Wt)},languages(){let t=[];for(let e of this.supportedLocales)t.push({code:e,native:this.$t(`languages.${e}.native`),global:this.$t(`languages.${e}.global`),ui:!0});for(let e of this.dataLanguages){if(!k.ZP.isObject(e)||!e.code||this.supportedLocales.includes(e.code))continue;let a={code:e.code};a.native=e.name||e.alternate||e.code,a.global=e.alternate||e.name||e.code,a.data=!0,t.push(a)}if(this.supportsExtension(Wt)){const e=(0,ht.xI)(this.supportedLocales),a=(0,ht.xI)(this.dataLanguages.map((t=>t.code)));for(let s of t)s.ui||(s.ui=Boolean((0,ht.Si)(e,s.code,null))),s.data||(s.data=Boolean((0,ht.Si)(a,s.code,null)))}return t.sort(((t,e)=>t.global.localeCompare(e.global,this.uiLanguage)))}},methods:{...(0,o.nv)(["switchLocale"]),async validate(){this.canValidate&&await this.$store.dispatch("validate",this.stacUrl)},browserUrl(){return window.location.toString()}}},Nt=Vt,Qt=(0,g.Z)(Nt,Zt,xt,!1,null,"03548d8c",null),Ht=Qt.exports,Gt=a(63338),Jt={name:"StacHeader",components:{BIconArrow90degUp:Ot.sDn,BIconBook:Ot.$ek,BIconFolderSymlink:Ot.y5,BIconSearch:Ot.Lln,BIconLock:Ot.MJF,BIconUnlock:Ot.pT1,StacLink:Gt["default"],Source:Ht},computed:{...(0,o.rn)(["allowSelectCatalog","authConfig","authData","catalogUrl","data","url","title"]),...(0,o.Se)(["canSearch","root","parentLink","collectionLink","toBrowserPath"]),collectionLinkTitle(){return this.collectionLink&&k.ZP.hasText(this.collectionLink.title)?this.$t("goToCollection.descriptionWithTitle",this.collectionLink):this.$t("goToCollection.description")},parentLinkTitle(){return this.parentLink&&k.ZP.hasText(this.parentLink.title)?this.$t("goToParent.descriptionWithTitle",this.parentLink):this.$t("goToParent.description")},icon(){if(this.data instanceof x.Z){let t=this.data.getIcons();if(t.length>0)return t[0]}return null},searchBrowserLink(){if(!this.canSearch)return null;let t;return this.data instanceof x.Z&&!this.data.equals(this.root)&&(t=this.data.getSearchLink()),t?`/search${this.data.getBrowserPath()}`:this.root&&this.allowSelectCatalog?`/search${this.root.getBrowserPath()}`:"/search"},containerLink(){return this.catalogUrl&&this.url===this.catalogUrl?null:this.root?k.ZP.equalUrl(this.root.getAbsoluteUrl(),this.url)?null:{href:this.root.getAbsoluteUrl(),rel:"root",title:x.Z.getDisplayTitle(this.root)}:this.collectionLink||this.parentLink}},methods:{isSearchPage(){return"search"===this.$router.currentRoute.name},auth(){this.$store.commit("requestAuth",(()=>this.$store.dispatch("load",{url:this.url,loadApi:!0,show:!0,force:!0})))}}},Kt=Jt,Xt=(0,g.Z)(Kt,Lt,At,!1,null,"e9cfbf72",null),Yt=Xt.exports,te=a(28713),ee=a.n(te);s.ZP.use(mt.F),s.ZP.use(bt.d),s.ZP.use(yt.SY),s.ZP.use(vt.T),s.ZP.use(wt.xL),s.ZP.use(_t.A6),s.ZP.use(Ct.s),s.ZP.directive("b-toggle",Pt.M),s.ZP.directive("b-visible",kt.z),s.ZP.use(n.ZP);const ae=new n.ZP({mode:l.Z.historyMode,base:l.Z.pathPrefix,routes:lt(l.Z)});s.ZP.use(o.ZP);const se=gt(l.Z,ae);let re={},ie={};for(let de in l.Z)re[de]={default:["object","function"].includes(typeof l.Z[de])?()=>l.Z[de]:l.Z[de]},ie[de]={immediate:!0,handler:function(t){this.$store.commit("config",{[de]:t})}};var ne={name:"StacBrowser",router:ae,store:se,components:{Authentication:()=>a.e(1364).then(a.bind(a,1364)),ErrorAlert:b,Sidebar:()=>a.e(7710).then(a.bind(a,77710)),StacHeader:Yt},props:{...re},data(){return{sidebar:!1,error:null,onDataLoaded:null}},computed:{...(0,o.rn)(["allowSelectCatalog","data","dataLanguage","description","doAuth","globalError","stateQueryParameters","title","uiLanguage","url"]),...(0,o.rn)({catalogUrlFromVueX:"catalogUrl",detectLocaleFromBrowserFromVueX:"detectLocaleFromBrowser",fallbackLocaleFromVueX:"fallbackLocale",supportedLocalesFromVueX:"supportedLocales",storeLocaleFromVueX:"storeLocale"}),...(0,o.Se)(["displayCatalogTitle","fromBrowserPath","isExternalUrl","root","supportsConformance","toBrowserPath"]),browserVersion(){return"3.1.0"}},watch:{...ie,title(t){document.title=t},description(t){let e=document.getElementById("meta-description");e&&e.setAttribute("content",k.ZP.summarizeMd(t,200))},uiLanguage:{immediate:!0,async handler(t){t&&(ee().locales=[t],ee().translate=O.Cy,await(0,O.EV)(t),this.$root.$i18n.locale=t,document.documentElement.setAttribute("lang",t))}},dataLanguage:{immediate:!0,async handler(t){if(t&&this.data instanceof x.Z){let e=this.data.getLocaleLink(t);if(e){let t=Object.assign({},this.stateQueryParameters);this.$router.push(this.toBrowserPath(e.href)),this.$store.commit("state",t)}else if(this.supportsConformance(O.Mk)){let t=this.url;this.$store.commit("resetCatalog",!0),await this.$store.dispatch("load",{url:t,loadApi:!0,show:!0})}}}},catalogUrlFromVueX(t){t&&this.$store.dispatch("load",{url:t,loadApi:!0})},stateQueryParameters:{deep:!0,handler(){let t={};for(const[e,a]of Object.entries(this.$route.query))e.startsWith(".")||(t[e]=a);for(const[e,a]of Object.entries(this.stateQueryParameters)){let s=`.${e}`;Array.isArray(a)?a.length>0&&(t[s]=a.join(",")):null!==a&&(t[s]=a)}this.$router.replace({query:t}).catch((t=>{if(!n.ZP.isNavigationFailure(t,n.ZP.NavigationFailureType.duplicated))throw Error(t)}))}},root(t,e){const a=["apiCatalogPriority","authConfig","cardViewMode","cardViewSort","crossOriginMedia","defaultThumbnailSize","displayGeoTiffByDefault","showThumbnailsAsAssets","stacLint"];let s=!t||e&&k.ZP.isObject(e["stac_browser"]),r=t&&k.ZP.isObject(t["stac_browser"]);for(let i of a){let e;s&&(e=l.Z[i]),r&&"undefined"!==typeof t["stac_browser"][i]&&(e=t["stac_browser"][i]),("stacLint"!==i||l.Z.stacLint)&&("undefined"!==typeof e&&this.$store.commit("config",{[i]:e}))}},data(t){this.onDataLoaded&&t instanceof x.Z&&this.onDataLoaded()}},created(){this.$router.onReady((()=>{this.detectLocale(),this.parseQuery(this.$route)})),this.$router.afterEach(((t,e)=>{if(t.path===e.path)return;let a="resetPage";if(this.allowSelectCatalog&&t.path){let e=this.fromBrowserPath(t.path);this.isExternalUrl(e)&&(a="resetCatalog")}this.$store.commit(a),this.parseQuery(t)}))},mounted(){this.$root.$on("error",this.showError),setInterval((()=>this.$store.dispatch("loadBackground",3)),200)},methods:{...(0,o.nv)(["switchLocale"]),detectLocale(){let t;if(this.storeLocaleFromVueX)try{t=window.localStorage.getItem("locale")}catch(e){console.error(e)}if(!t&&this.detectLocaleFromBrowserFromVueX&&Array.isArray(navigator.languages)){const e=(0,ht.xI)(this.supportedLocalesFromVueX);for(let a of navigator.languages){const s=(0,ht.Si)(e,a,null);if(s){t=s;break}}}t&&this.supportedLocalesFromVueX.includes(t)&&(this.switchLocale({locale:t}),this.data||(this.onDataLoaded=()=>{this.switchLocale({locale:t}),this.onDataLoaded=null}))},parseQuery(t){var e;let a={};if("history"===this.historyMode){let e=T()(t.hash.replace(/^#/,""));a=e.query(!0)}let s=Object.assign({},t.query,a),r={};for(let i in s){let t=s[i];if(i.startsWith("~"))r.private=k.ZP.isObject(r.private)?r.private:{},r.private[i.substr(1)]=t,delete s[i];else if(i.startsWith(".")){let e=i.substr(1);r.state=k.ZP.isObject(r.state)?r.state:{},Array.isArray(this.stateQueryParameters[e])&&!Array.isArray(t)&&(t=t.split(",")),r.state[e]=t}else k.ZP.isObject(r.localRequest)||(r.localRequest={}),r.localRequest[i]=t}if(k.ZP.size(r)>0)for(let i in r)for(let t in r[i])this.$store.commit("setQueryParameter",{type:i,key:t,value:r[i][t]});null!==r&&void 0!==r&&null!==(e=r.state)&&void 0!==e&&e.language&&this.switchLocale({locale:r.state.language}),k.ZP.size(r.private)>0&&this.$router.replace({query:s})},showError(t,e){this.$store.commit("showGlobalError",{error:t,message:e})},hideError(){this.$store.commit("showGlobalError",null)}}},oe=ne,le=(0,g.Z)(oe,r,i,!1,null,null,null),ce=le.exports;function ue(){return(0,O._j)().then((()=>new s.ZP({i18n:O.ZP,render:t=>t(ce)}).$mount("#stac-browser")))}s.ZP.config.productionTip=!1,ue()},43989:function(t,e,a){"use strict";a(57658);var s=a(79879),r=a(95019),i=a.n(r),n=a(62846);let o=0;class l{constructor(t,e,a,s=!0){this._id=o++,this._url=e,this._path=a,this._apiChildrenListeners={},this._incomplete=!1,this._apiChildren={list:[],prev:!1,next:!1},s&&("FeatureCollection"===t.type?t.features=t.features.map((t=>i().item(t,!1))):t=i().stac(t,!1));for(let r in t)"undefined"===typeof this[r]&&(this[r]=t[r])}isPotentiallyIncomplete(){return this._incomplete}markPotentiallyIncomplete(){this._incomplete=!0}isItem(){return"Feature"===this.type}isCatalog(){return"Catalog"===this.type}isCatalogLike(){return this.isCatalog()||this.isCollection()}isCollection(){return"Collection"===this.type}isItemCollection(){return"FeatureCollection"===this.type}hasApiData(){return this._apiChildren.list.length>0}setApiDataListener(t,e=null){"function"===typeof e?this._apiChildrenListeners[t]=e:delete this._apiChildrenListeners[t]}setApiData(t,e=null,a=null){a&&(this._apiChildren.prev=a),e&&(this._apiChildren.next=e),this._apiChildren.list=t;for(let r in this._apiChildrenListeners)try{this._apiChildrenListeners[r](this._apiChildren)}catch(s){console.error(s)}}getFileFormats(){let t=[];return(this.isItem()||this.isCollection())&&s.ZP.isObject(this.assets)&&(t=t.concat(Object.values(this.assets))),this.isCollection()&&s.ZP.isObject(this.item_assets)&&(t=t.concat(Object.values(this.item_assets))),t.filter((t=>Array.isArray(t.roles)&&t.roles.includes("data")&&"string"===typeof t.type)).map((t=>t.type)).filter(((t,e,a)=>a.indexOf(t)===e))}getChildren(t=null){if(!this.isCatalogLike())return[];let e=!t||"collections"===t,a=!t||"childs"===t,s=[];return e&&this._apiChildren.prev&&s.push(this._apiChildren.prev),e&&this._apiChildren.list.length>0&&(s=this._apiChildren.list.slice(0)),a&&(s=l.addMissingChildren(s,this).concat(this.getLinksWithRels(["item"]))),e&&this._apiChildren.next&&s.push(this._apiChildren.next),s}static addMissingChildren(t,e){let a=e.getStacLinksWithRel("child").filter((a=>{let r=s.ZP.toAbsolute(a.href,e.getAbsoluteUrl());return!t.find((t=>t.getAbsoluteUrl()===r))}));return a.concat(t)}getSearchLink(){let t=s.ZP.getLinksWithRels(this.links,["search"]).filter((t=>s.ZP.isMediaType(t.type,s.KN))).map((t=>Object.assign({},t,{href:s.ZP.toAbsolute(t.href,this._url)}))),e=t.find((t=>s.ZP.hasText(t.method)&&"POST"===t.method.toUpperCase()));return e||t[0]||null}getApiCollectionsLink(){return this.getStacLinkWithRel("data")}getApiItemsLink(){return this.getStacLinkWithRel("items")}getMetadata(t){return this.isItem()?this.properties[t]:this.isCatalogLike()?this[t]:null}getBrowserPath(){return this._path}getAbsoluteUrl(){return this._url}getLocaleLink(t,e=null){let a,r=this.getStacLinksWithRel("alternate").filter((t=>s.ZP.hasText(t.hreflang)));a=Array.isArray(this.languages)?this.languages.map((t=>t.code)):r.map((t=>t.hreflang));let i=(0,n.Si)(a,t,e);return r.find((t=>t.hreflang===i))||null}getStacLinksWithRel(t,e=!0){return s.ZP.getLinksWithRels(this.links,[t]).filter((t=>s.ZP.isStacMediaType(t.type,e)))}getStacLinkWithRel(t,e=!0){const a=this.getStacLinksWithRel(t,e);return a.length>0?a[0]:null}getLinkWithRel(t){return s.ZP.getLinkWithRel(this.links,t)}getLinksWithRels(t){return s.ZP.getLinksWithRels(this.links,t)}getLinksWithOtherRels(t){return s.ZP.getLinksWithOtherRels(this.links,t)}getAssetsWithRoles(t){let e=[];if(s.ZP.isObject(this.assets))for(let a in this.assets){let r=this.assets[a];s.ZP.isObject(r)&&"string"===typeof r.href&&Array.isArray(r.roles)&&r.roles.find((e=>t.includes(e)))&&e.push(r)}return e}static getDisplayTitle(t,e=null){Array.isArray(t)||(t=[t]);let a=t.find((t=>t instanceof l)),r=t.find((t=>s.ZP.isObject(t)&&!(t instanceof l)));return a&&s.ZP.hasText(a.getTitle())?a.getTitle():r&&s.ZP.hasText(r.title)?r.title:a&&s.ZP.hasText(a.id)?a.id:s.ZP.hasText(e)?e:a?s.ZP.titleForHref(a.getAbsoluteUrl(),!0):r&&s.ZP.hasText(r.href)?s.ZP.titleForHref(r.href,!0):"Untitled"}getTitle(){return this.getMetadata("title")}_linkToAbsolute(t){return Object.assign({},t,{href:s.ZP.toAbsolute(t.href,this.getAbsoluteUrl())})}getIcons(){return this.getLinksWithRels(["icon"]).filter((t=>s.ZP.canBrowserDisplayImage(t))).map((t=>this._linkToAbsolute(t)))}getThumbnails(t=!1,e=null){let a=this.getAssetsWithRoles(["thumbnail","overview"]);if(0===a.length&&(a=this.getLinksWithRels(["preview"])),0===a.length&&s.ZP.isObject(this.assets)&&s.ZP.isObject(this.assets.thumbnail)&&(a=[this.assets.thumbnail]),t&&(a=a.filter((t=>s.ZP.canBrowserDisplayImage(t)))),e&&a.length>1){let t=t=>t.roles.includes(e);a=a.filter(t).concat(a.filter((e=>!t(e))))}return a.map((t=>this._linkToAbsolute(t)))}equals(t){return!!s.ZP.isObject(t)&&(this===t||this.id===t.id&&this.type==t.type)}}e.Z=l},54261:function(t,e,a){"use strict";a.d(e,{Eg:function(){return l},RG:function(){return o},X6:function(){return r},rt:function(){return n},tQ:function(){return i}});const s=["child","collection","item","parent","root","self"],r=["first","last","next","prev","previous"],i=["queryables","http://www.opengis.net/def/rel/ogc/1.0/queryables","ogc-rel:queryables"],n=["canonical","related","derived_from","latest-version","predecessor-version","successor-version","source","alternate"].concat(s).concat(r),o=["conformance","data","items","search","icon","license"].concat(s).concat(r).concat(i),l="http://www.opengis.net/def/rel/ogc/1.0/"},57273:function(t,e,a){"use strict";a.d(e,{HH:function(){return h},Us:function(){return p},a_:function(){return d},dJ:function(){return c},gb:function(){return o},qy:function(){return u},ui:function(){return l}});var s=a(6154),r=a(54998),i=a.n(r),n=a(79879);class o{constructor(t=!1,e=!1){this.show=Boolean(t),this.loadApi=Boolean(e)}}async function l(t,e){let a,r={"Accept-Language":t.getters.acceptedLanguages};if(n.ZP.isObject(e)){let s="string"===typeof e.method?e.method.toLowerCase():"get",i=t.getters.getRequestUrl(e.href);n.ZP.hasText(e.type)&&(r.Accept=e.type),t.getters.isExternalUrl(i)||Object.assign(r,t.state.requestHeaders),n.ZP.isObject(e.headers)&&Object.assign(r,e.headers),a={method:s,url:i,headers:r,data:e.body}}else if("string"===typeof e){let s=t.getters.getRequestUrl(e);t.getters.isExternalUrl(s)||Object.assign(r,t.state.requestHeaders),a={method:"get",url:s,headers:r}}else a=e;return await(0,s.Z)(a)}function c(t,e){return t instanceof i()&&(t=t.toString()),"string"===typeof t&&Array.isArray(e)?t.replace(e[1],e[0]):t}function u(t,e){return t instanceof i()&&(t=t.toString()),"string"===typeof t&&Array.isArray(e)?t.replace(e[0],e[1]):t}function d(t,e){return"function"===typeof t.preprocessSTAC&&(e=t.preprocessSTAC(e,t)),Object.freeze(e)}function h(t){var e;return[401,403].includes(null===t||void 0===t||null===(e=t.response)||void 0===e?void 0:e.status)}function p(t,e){if(0==n.ZP.size(e))return t;for(let a in e)t.hasQuery(a)||t.addQuery(a,e[a]);return t}},79879:function(t,e,a){"use strict";a.d(e,{CF:function(){return b},F7:function(){return g},G$:function(){return u},KN:function(){return c},Uz:function(){return m},ZP:function(){return v},vV:function(){return y}});var s=a(54998),r=a.n(s),i=a(26525),n=a.n(i),o=a(54261);const l=["catalog","collection","item"],c="application/geo+json",u="application/schema+json",d=["application/json",c,"text/json"],h=["image/gif","image/jpg","image/jpeg","image/apng","image/png","image/webp"],p=["image/tiff; application=geotiff; profile=cloud-optimized","image/vnd.stac.geotiff; cloud-optimized=true"],f=["application/geotiff","image/tiff; application=geotiff","image/vnd.stac.geotiff"].concat(p),g=["http","https"],m=h.concat(f),b=m.concat([c]);class y extends Error{constructor(t){super(t)}}class v{static isObject(t){return"object"===typeof t&&t===Object(t)&&!Array.isArray(t)}static size(t){return"object"===typeof t&&null!==t?Array.isArray(t)?t.length:Object.keys(t).length:0}static isStacMediaType(t,e=!1){return v.isMediaType(t,d,e)}static isMediaType(t,e,a=!1){return Array.isArray(e)||(e=[e]),!(!a||t)||"string"===typeof t&&e.includes(t.toLowerCase())}static hasText(t){return"string"===typeof t&&t.length>0}static shortenTitle(t,e,a="…"){if(t.length<=e)return t;let s=a.length,r=e-s,i=Math.ceil(r/2),n=Math.floor(r/2);return t.substr(0,i)+a+t.substr(t.length-n)}static isGdalVfsUri(t){return"string"===typeof t&&t.startsWith("/vsi")&&!t.startsWith("/vsicurl/")}static toAbsolute(t,e,a=!0){return v.normalizeUri(t,e,!1,a)}static normalizeUri(t,e=null,a=!1,s=!0){"string"===typeof t&&t.startsWith("/vsicurl/")&&(t=t.replace(/^\/vsicurl\//,""));let i=r()(t);return e&&i.is("relative")&&!v.isGdalVfsUri(t)&&(i=i.absoluteTo(e)),i.normalize(),a&&(i.query(""),i.fragment("")),s?i.toString():i}static getLinkWithRel(t,e){return Array.isArray(t)?t.find((t=>v.isObject(t)&&v.hasText(t.href)&&t.rel===e)):null}static getLinksWithRels(t,e){return Array.isArray(t)?t.filter((t=>v.isObject(t)&&v.hasText(t.href)&&e.includes(t.rel))):[]}static getLinksWithOtherRels(t,e){return Array.isArray(t)?t.filter((t=>v.isObject(t)&&v.hasText(t.href)&&!e.includes(t.rel))):[]}static equalUrl(t,e){try{let a=r()(t),s=r()(e);return a.path(a.path().replace(/\/$/,"")),s.path(s.path().replace(/\/$/,"")),a.equals(s)}catch(a){return!1}}static summarizeMd(t,e=null){return v.hasText(t)?(t=n()(t).replaceAll(/[\r\n]+/g," "),e>0&&t.length>e&&(t=t.substr(0,e)+"…"),t):""}static scrollTo(t){if(t){var e=t.getBoundingClientRect(),a=e.top=0;a||t.scrollIntoView({behavior:"smooth",block:"start"})}}static dateFromUTC(t){if(t instanceof Date){const e=new Date(t),a=e.getTimezoneOffset();t=new Date(e.getTime()+60*a*1e3)}return t}static dateToUTC(t){if(t instanceof Date){const e=(new Date).getTimezoneOffset();return new Date(t.getTime()-60*e*1e3)}return t}static formatDatetimeQuery(t){return t.map((t=>t instanceof Date?t.toISOString():t||"..")).join("/")}static getPaginationLinks(t){let e={};if(v.isObject(t)){let a=v.getLinksWithRels(t.links,o.X6);for(let t of a){let a="previous"===t.rel?"prev":t.rel;e[a]=t}}return e}static addFiltersToLink(t,e={},a=null){let s=t=>null===t||"number"===typeof t&&!Number.isFinite(t)||"string"===typeof t&&0===t.length||"object"===typeof t&&0===v.size(t);if(e=v.isObject(e)?Object.assign({},e):{},"number"!==typeof e.limit&&"number"===typeof a&&(e.limit=a),v.hasText(t.method)&&"POST"===t.method.toUpperCase()){let a=Object.assign({},t.body);for(let t in e){let r=e[t];if(s(r))delete a[t];else{if("datetime"===t)r=v.formatDatetimeQuery(r);else if("filters"===t){Object.assign(a,r.toJSON());continue}a[t]=r}}return Object.assign({},t,{body:a})}{let a=r()(t.href);for(let t in e){let r=e[t];if(s(r))a.removeQuery(t);else{if("datetime"===t)r=v.formatDatetimeQuery(r);else if("bbox"===t)r=r.join(",");else if("collections"===t||"ids"===t||"q"===t)r=r.join(",");else if("filters"===t){let t=r.toText();a.setQuery(t);continue}a.setQuery(t,r)}}return Object.assign({},t,{href:a.toString()})}}static titleForHref(t,e=!1){let a=r()(t),s=a.authority(),i=a.filename().replace(/^(.{1,})\.\w+$/,"$1"),n=a.directory().replace(/^\//,"");if(s&&i&&!e){let t=a.path().replace(/^\//,"");return"doi.org"===s&&t.startsWith("10.")?`DOI ${t}`:`${i} (${s})`}return i&&!l.includes(i)?i:s||(n||t)}static canBrowserDisplayImage(t){if("string"!==typeof t.href)return!1;let e=r()(t.href),a=e.protocol().toLowerCase();return!(a&&!g.includes(a))&&(!!h.includes(t.type)||(!!h.includes("image/"+e.suffix().toLowerCase())||!t.type))}static getValueFromObjectUsingPath(t,e){if(null!==t&&"object"===typeof t)return t=t[e[0]],"undefined"!==typeof t&&e.length>1?this.getValueFromObjectUsingPath(t,e.slice(1)):t}static search(t,e,a=!0){if("string"!==typeof t||0===t.length)return!1;if(v.isObject(e)?e=Object.values(e):"string"===typeof e&&(e=[e]),!Array.isArray(e))return!1;let s=/[\s.,;!&({[)}]]+/g;t=t.toLowerCase().split(s),e=e.filter((t=>"string"===typeof t)).join(" ").replace(s," ").toLowerCase();let r=a?"every":"some";return t[r]((t=>e.includes(t)))}static createLink(t,e){return{href:t,rel:e}}static supportsExtension(t,e){if(!v.isObject(t)||!Array.isArray(t["stac_extensions"]))return!1;let a=new RegExp("^"+e.replaceAll("*","[^/]+")+"$");return Boolean(t["stac_extensions"].find((t=>a.test(t))))}static mergeDeep(t,...e){if(!e.length)return t;const a=e.shift();if(v.isObject(t)&&v.isObject(a))for(const s in a)v.isObject(a[s])?(t[s]||Object.assign(t,{[s]:{}}),v.mergeDeep(t[s],a[s])):Object.assign(t,{[s]:a[s]});return v.mergeDeep(t,...e)}}},50448:function(t,e,a){var s={"./de-CH/default.js":[9665,7119,9665],"./de/default.js":[11929,7119,1929],"./en/default.js":[71358,1358],"./es/default.js":[10237,237],"./fr-CA/default.js":[70727,8096,727],"./fr-CH/default.js":[16437,8096,6437],"./fr/default.js":[55092,8096,5092],"./it-CH/default.js":[64739,5473,4739],"./it/default.js":[68144,5473,8144],"./ro/default.js":[91493,1493]};function r(t){if(!a.o(s,t))return Promise.resolve().then((function(){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}));var e=s[t],r=e[0];return Promise.all(e.slice(1).map(a.e)).then((function(){return a(r)}))}r.keys=function(){return Object.keys(s)},r.id=50448,t.exports=r},82599:function(t,e,a){var s={"./de-CH/config.json":13225,"./de/config.json":27534,"./en/config.json":78863,"./es/config.json":25946,"./fr-CA/config.json":44317,"./fr-CH/config.json":78125,"./fr/config.json":96727,"./it-CH/config.json":6025,"./it/config.json":62715,"./ro/config.json":57031};function r(t){var e=i(t);return a(e)}function i(t){if(!a.o(s,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return s[t]}r.keys=function(){return Object.keys(s)},r.resolve=i,t.exports=r,r.id=82599},13225:function(t){"use strict";t.exports=JSON.parse('{"native":"Deutsch (Schweiz)","global":"German (Switzerland)"}')},27534:function(t){"use strict";t.exports=JSON.parse('{"native":"Deutsch","global":"German"}')},78863:function(t){"use strict";t.exports=JSON.parse('{"native":"English","global":"English"}')},25946:function(t){"use strict";t.exports=JSON.parse('{"native":"Español","global":"Spanish"}')},44317:function(t){"use strict";t.exports=JSON.parse('{"native":"Français (Canada)","global":"French (Canada)"}')},78125:function(t){"use strict";t.exports=JSON.parse('{"native":"Français (Suisse)","global":"French (Switzerland)"}')},96727:function(t){"use strict";t.exports=JSON.parse('{"native":"Français","global":"French"}')},6025:function(t){"use strict";t.exports=JSON.parse('{"native":"Italiano (Svizzera)","global":"Italian (Switzerland)"}')},62715:function(t){"use strict";t.exports=JSON.parse('{"native":"Italiano","global":"Italian"}')},57031:function(t){"use strict";t.exports=JSON.parse('{"native":"Română","global":"Romanian"}')}},e={};function a(s){var r=e[s];if(void 0!==r)return r.exports;var i=e[s]={id:s,loaded:!1,exports:{}};return t[s].call(i.exports,i,i.exports,a),i.loaded=!0,i.exports}a.m=t,function(){var t=[];a.O=function(e,s,r,i){if(!s){var n=1/0;for(u=0;u=i)&&Object.keys(a.O).every((function(t){return a.O[t](s[l])}))?s.splice(l--,1):(o=!1,i0&&t[u-1][2]>i;u--)t[u]=t[u-1];t[u]=[s,r,i]}}(),function(){a.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return a.d(e,{a:e}),e}}(),function(){var t,e=Object.getPrototypeOf?function(t){return Object.getPrototypeOf(t)}:function(t){return t.__proto__};a.t=function(s,r){if(1&r&&(s=this(s)),8&r)return s;if("object"===typeof s&&s){if(4&r&&s.__esModule)return s;if(16&r&&"function"===typeof s.then)return s}var i=Object.create(null);a.r(i);var n={};t=t||[null,e({}),e([]),e(e)];for(var o=2&r&&s;"object"==typeof o&&!~t.indexOf(o);o=e(o))Object.getOwnPropertyNames(o).forEach((function(t){n[t]=function(){return s[t]}}));return n["default"]=function(){return s},a.d(i,n),i}}(),function(){a.d=function(t,e){for(var s in e)a.o(e,s)&&!a.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})}}(),function(){a.f={},a.e=function(t){return Promise.all(Object.keys(a.f).reduce((function(e,s){return a.f[s](t,e),e}),[]))}}(),function(){a.u=function(t){return"js/"+t+"."+{237:"088f29c9",531:"e50613d4",604:"734bbdd1",624:"c61e2e5a",727:"b0d7dd43",796:"7f6c73c1",833:"41ea4527",1095:"a90e323c",1198:"8d75deba",1247:"a6db6509",1358:"52fd3c69",1364:"4e255109",1374:"7d4415cb",1493:"be46e4d0",1514:"2a484198",1929:"b7f67eab",2005:"0062420b",2184:"fdc4f0c6",2380:"fbbc886b",2407:"d1a62548",2540:"2abe5443",2588:"71e2ad8d",2792:"96d8f5ad",2815:"b406a8a8",2968:"d335ab49",3135:"70290c42",3138:"c151eb76",3154:"83e70a6b",3628:"720978c7",3669:"25ce579b",3805:"342d7ff9",4622:"1fe7c07f",4739:"6bf73bc4",4763:"77c0a023",5092:"2e1ed9f7",5260:"6132d987",5473:"d0a5d181",5607:"91d62c75",5793:"731090db",5972:"25977f56",5998:"16142fd8",6437:"4c8ef6f6",6481:"2da48a38",6553:"ea12aade",6653:"b5a772ec",6872:"38a2d766",7053:"535b4c77",7119:"79ae3c6c",7191:"12aba673",7245:"a71452db",7257:"ed5bff34",7710:"1bd3fb2f",7848:"8e7a11a2",8069:"170670d6",8096:"b095b122",8144:"fccff3a0",8342:"1fa2741d",8453:"11ac8f62",8493:"90679e90",8673:"bbd2c559",8693:"7177a43e",8770:"b4e42fc8",9071:"88d00f41",9090:"ef590db0",9489:"ced0e5b3",9539:"0c7b0d26",9578:"7500538c",9665:"e156817e",9795:"077c2d89"}[t]+".js"}}(),function(){a.miniCssF=function(t){return"css/"+t+"."+{604:"f849b3f1",624:"6ad781a6",1095:"0530e224",1198:"5747ca0b",1364:"a94c9ca6",2588:"ac728857",2815:"c9b64985",3135:"32ec082e",3154:"572c83fc",3805:"4bc8c74b",4622:"45781634",5260:"72c8c98f",5998:"4b50bc38",7710:"f418fe25",7848:"0780c10b",8453:"6fac7cd8",8493:"ea261962",9795:"081b4583"}[t]+".css"}}(),function(){a.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"===typeof window)return window}}()}(),function(){a.hmd=function(t){return t=Object.create(t),t.children||(t.children=[]),Object.defineProperty(t,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+t.id)}}),t}}(),function(){a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)}}(),function(){var t={},e="@radiantearth/stac-browser:";a.l=function(s,r,i,n){if(t[s])t[s].push(r);else{var o,l;if(void 0!==i)for(var c=document.getElementsByTagName("script"),u=0;u 0 || _vm.data.description || _vm.data.deprecated))?_c('b-card-text',{staticClass:\"intro\"},[(_vm.data.deprecated)?_c('b-badge',{staticClass:\"mr-1 mt-1 deprecated\",attrs:{\"variant\":\"warning\"}},[_vm._v(_vm._s(_vm.$t('deprecated')))]):_vm._e(),_vm._l((_vm.fileFormats),function(format){return _c('b-badge',{key:format,staticClass:\"mr-1 mt-1 fileformat\",attrs:{\"variant\":\"secondary\"}},[_vm._v(_vm._s(_vm._f(\"formatMediaType\")(format)))])}),_vm._v(\" \"+_vm._s(_vm._f(\"summarize\")(_vm.data.description))+\" \")],2):_vm._e(),(_vm.temporalExtent)?_c('b-card-text',{staticClass:\"datetime\"},[_c('small',{domProps:{\"innerHTML\":_vm._s(_vm.temporalExtent)}})]):_vm._e()],1),_c('b-card-footer',[_vm._t(\"footer\",null,{\"data\":_vm.data})],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Catalog.vue?vue&type=template&id=481d2869&\"\nimport script from \"./Catalog.vue?vue&type=script&lang=js&\"\nexport * from \"./Catalog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Catalog.vue?vue&type=style&index=0&id=481d2869&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{staticClass:\"catalogs mb-4\"},[_c('header',[_c('h2',{staticClass:\"title mr-2\"},[_vm._v(_vm._s(_vm.title))]),(_vm.catalogCount !== null)?_c('b-badge',{staticClass:\"mr-4\",attrs:{\"pill\":\"\",\"variant\":\"secondary\"}},[_vm._v(_vm._s(_vm.catalogCount))]):_vm._e(),_c('ViewButtons',{staticClass:\"mr-2\",model:{value:(_vm.view),callback:function ($$v) {_vm.view=$$v},expression:\"view\"}}),(_vm.isComplete && _vm.catalogs.length > 1)?_c('SortButtons',{model:{value:(_vm.sort),callback:function ($$v) {_vm.sort=$$v},expression:\"sort\"}}):_vm._e()],1),(_vm.isComplete && _vm.catalogs.length > 1)?_c('SearchBox',{staticClass:\"mt-1 mb-1\",attrs:{\"placeholder\":_vm.$t('catalogs.filterByTitle')},model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}}):_vm._e(),(_vm.showPagination)?_c('Pagination',{ref:\"topPagination\",attrs:{\"pagination\":_vm.pagination,\"placement\":\"top\"},on:{\"paginate\":_vm.paginate}}):_vm._e(),(_vm.searchTerm && _vm.catalogView.length === 0)?_c('b-alert',{attrs:{\"variant\":\"warning\",\"show\":\"\"}},[_vm._v(_vm._s(_vm.$t('catalogs.noMatches')))]):_vm._e(),_c('section',{staticClass:\"list\"},[(_vm.loading)?_c('Loading',{attrs:{\"fill\":\"\",\"top\":\"\"}}):_vm._e(),_c(_vm.cardsComponent,_vm._b({tag:\"component\"},'component',_vm.cardsComponentProps,false),_vm._l((_vm.catalogView),function(catalog){return _c('Catalog',{key:catalog.href,attrs:{\"catalog\":catalog},scopedSlots:_vm._u([{key:\"footer\",fn:function({data}){return [_vm._t(\"catalogFooter\",null,{\"data\":data})]}}],null,true)})}),1)],1),(_vm.showPagination)?_c('Pagination',{attrs:{\"pagination\":_vm.pagination},on:{\"paginate\":_vm.paginate}}):(_vm.hasMore)?_c('b-button',{directives:[{name:\"b-visible\",rawName:\"v-b-visible.300\",value:(_vm.loadMore),expression:\"loadMore\",modifiers:{\"300\":true}}],attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.loadMore}},[_vm._v(_vm._s(_vm.$t('catalogs.loadMore')))]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-button-group',{attrs:{\"title\":_vm.$t('view.title'),\"size\":\"sm\"}},[_c('b-button',{attrs:{\"title\":_vm.$t('view.tiles.title'),\"variant\":\"outline-primary\",\"pressed\":_vm.value === 'cards'},on:{\"click\":function($event){return _vm.toggle('cards')}}},[_c('b-icon-bricks'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('view.tiles.label')))])],1),_c('b-button',{attrs:{\"title\":_vm.$t('view.list.title'),\"variant\":\"outline-primary\",\"pressed\":_vm.value === 'list'},on:{\"click\":function($event){return _vm.toggle('list')}}},[_c('b-icon-list-task'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('view.list.label')))])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ViewButtons.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ViewButtons.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ViewButtons.vue?vue&type=template&id=6a51668d&\"\nimport script from \"./ViewButtons.vue?vue&type=script&lang=js&\"\nexport * from \"./ViewButtons.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import ViewButtons from './ViewButtons.vue';\n\nexport default {\n components: {\n ViewButtons\n },\n computed: {\n cardsComponent() {\n return (this.view === 'list') ? 'div' : 'b-card-group';\n },\n cardsComponentProps() {\n if (this.view === 'list') {\n return {\n class: [\n 'card-list'\n ]\n };\n }\n else {\n return {\n columns: true\n };\n }\n },\n view: {\n get() {\n return this.$store.state.cardViewMode;\n },\n set(cardViewMode) {\n this.$store.commit('config', { cardViewMode });\n }\n }\n }\n};","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalogs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalogs.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Catalogs.vue?vue&type=template&id=18cddb3a&\"\nimport script from \"./Catalogs.vue?vue&type=script&lang=js&\"\nexport * from \"./Catalogs.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-button',_vm._b({staticClass:\"copy-button\",attrs:{\"variant\":_vm.copyColor,\"title\":_vm.$t('copy')},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.copy.apply(null, arguments)}}},'b-button',_vm.buttonProps,false),[_c(_vm.copyIcon,{tag:\"component\"}),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CopyButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CopyButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CopyButton.vue?vue&type=template&id=033681c8&\"\nimport script from \"./CopyButton.vue?vue&type=script&lang=js&\"\nexport * from \"./CopyButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"styled-description\",class:{compact: _vm.compact, inline: _vm.inline},domProps:{\"innerHTML\":_vm._s(_vm.markup(_vm.description))}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Description.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Description.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Description.vue?vue&type=template&id=77c4c56a&\"\nimport script from \"./Description.vue?vue&type=script&lang=js&\"\nexport * from \"./Description.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Description.vue?vue&type=style&index=0&id=77c4c56a&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-card',{directives:[{name:\"b-visible\",rawName:\"v-b-visible.400\",value:(_vm.load),expression:\"load\",modifiers:{\"400\":true}}],staticClass:\"item-card\",class:{queued: !_vm.data, deprecated: _vm.isDeprecated, description: _vm.hasDescription},attrs:{\"no-body\":\"\"}},[(_vm.hasImage)?_c('b-card-img-lazy',_vm._b({staticClass:\"thumbnail\",attrs:{\"offset\":\"200\"}},'b-card-img-lazy',_vm.thumbnail,false)):_vm._e(),_c('b-card-body',[_c('b-card-title',[_c('StacLink',{staticClass:\"stretched-link\",attrs:{\"data\":[_vm.data, _vm.item]}})],1),(_vm.fileFormats.length > 0 || _vm.hasDescription || _vm.isDeprecated)?_c('b-card-text',{staticClass:\"intro\"},[(_vm.isDeprecated)?_c('b-badge',{staticClass:\"mr-1 mt-1 deprecated\",attrs:{\"variant\":\"warning\"}},[_vm._v(_vm._s(_vm.$t('deprecated')))]):_vm._e(),_vm._l((_vm.fileFormats),function(format){return _c('b-badge',{key:format,staticClass:\"mr-1 mt-1 fileformat\",attrs:{\"variant\":\"secondary\"}},[_vm._v(_vm._s(_vm._f(\"formatMediaType\")(format)))])}),(_vm.hasDescription)?[_vm._v(_vm._s(_vm._f(\"summarize\")(_vm.data.properties.description)))]:_vm._e()],2):_vm._e(),_c('b-card-text',[_c('small',{staticClass:\"text-muted\"},[(_vm.extent)?[_vm._v(_vm._s(_vm._f(\"formatTemporalExtent\")(_vm.extent)))]:(_vm.data && _vm.data.properties.datetime)?[_vm._v(_vm._s(_vm._f(\"formatTimestamp\")(_vm.data.properties.datetime)))]:[_vm._v(_vm._s(_vm.$t('items.noTime')))]],2)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Item.vue?vue&type=template&id=038776d6&\"\nimport script from \"./Item.vue?vue&type=script&lang=js&\"\nexport * from \"./Item.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Item.vue?vue&type=style&index=0&id=038776d6&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{staticClass:\"items mb-4\"},[_c('header',[_c('h2',{staticClass:\"title mr-2\"},[_vm._v(_vm._s(_vm.$tc('stacItem', _vm.items.length )))]),(_vm.itemCount !== null)?_c('b-badge',{staticClass:\"mr-4\",attrs:{\"pill\":\"\",\"variant\":\"secondary\"}},[_vm._v(_vm._s(_vm.itemCount))]):_vm._e(),(!_vm.api && _vm.items.length > 1)?_c('SortButtons',{model:{value:(_vm.sort),callback:function ($$v) {_vm.sort=$$v},expression:\"sort\"}}):_vm._e()],1),(_vm.showPagination)?_c('Pagination',{ref:\"topPagination\",attrs:{\"pagination\":_vm.pagination,\"placement\":\"top\"},on:{\"paginate\":_vm.paginate}}):_vm._e(),(_vm.allowFilter)?[(_vm.api)?_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.itemFilter\",modifiers:{\"itemFilter\":true}}],staticClass:\"mb-4 mt-2\",class:{'ml-3': _vm.showPagination},attrs:{\"variant\":_vm.hasFilters && !_vm.filtersOpen ? 'primary' : 'outline-primary'}},[_c('b-icon-search'),_vm._v(\" \"+_vm._s(_vm.filtersOpen ? _vm.$t('items.hideFilter') : _vm.$t('items.showFilter'))+\" \"),(_vm.hasFilters && !_vm.filtersOpen)?_c('b-badge',{attrs:{\"variant\":\"dark\"}},[_vm._v(_vm._s(_vm.filterCount))]):_vm._e()],1):_vm._e(),_c('b-collapse',{attrs:{\"id\":\"itemFilter\"},model:{value:(_vm.filtersOpen),callback:function ($$v) {_vm.filtersOpen=$$v},expression:\"filtersOpen\"}},[_c('SearchFilter',{attrs:{\"type\":\"Items\",\"title\":_vm.$t('items.filter'),\"parent\":_vm.stac,\"value\":_vm.apiFilters},on:{\"input\":_vm.emitFilter}})],1)]:_vm._e(),_c('section',{staticClass:\"list\"},[(_vm.loading)?_c('Loading',{attrs:{\"fill\":\"\",\"top\":\"\"}}):_vm._e(),(_vm.chunkedItems.length > 0)?_c('b-card-group',{attrs:{\"columns\":\"\"}},_vm._l((_vm.chunkedItems),function(item){return _c('Item',{key:item.href,attrs:{\"item\":item}})}),1):_c('b-alert',{attrs:{\"variant\":_vm.hasFilters ? 'warning' : 'info',\"show\":\"\"}},[(_vm.hasFilters)?[_vm._v(_vm._s(_vm.$t('search.noItemsFound')))]:[_vm._v(_vm._s(_vm.$t('items.noneAvailableForCollection')))]],2)],1),(_vm.showPagination)?_c('Pagination',{attrs:{\"pagination\":_vm.pagination},on:{\"paginate\":_vm.paginate}}):(_vm.hasMore)?_c('b-button',{directives:[{name:\"b-visible\",rawName:\"v-b-visible.300\",value:(_vm.showMore),expression:\"showMore\",modifiers:{\"300\":true}}],attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.showMore}},[_vm._v(_vm._s(_vm.$t('showMore')))]):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Items.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Items.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Items.vue?vue&type=template&id=b7e27f22&\"\nimport script from \"./Items.vue?vue&type=script&lang=js&\"\nexport * from \"./Items.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:_vm.classes},[_c('b-spinner',{attrs:{\"label\":_vm.$t('loading'),\"small\":_vm.small}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Loading.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Loading.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Loading.vue?vue&type=template&id=67931bb8&scoped=true&\"\nimport script from \"./Loading.vue?vue&type=script&lang=js&\"\nexport * from \"./Loading.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Loading.vue?vue&type=style&index=0&id=67931bb8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"67931bb8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-button-group',{class:_vm.classes},[_c('b-button',{attrs:{\"disabled\":!_vm.pagination.first,\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.paginate(_vm.pagination.first)}}},[_vm._v(_vm._s(_vm.$t('pagination.first')))]),_c('b-button',{attrs:{\"disabled\":!_vm.pagination.prev,\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.paginate(_vm.pagination.prev)}}},[_vm._v(_vm._s(_vm.$t('pagination.previous')))]),_c('b-button',{attrs:{\"disabled\":!_vm.pagination.next,\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.paginate(_vm.pagination.next)}}},[_vm._v(_vm._s(_vm.$t('pagination.next')))]),(_vm.pagination.last)?_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.paginate(_vm.pagination.last)}}},[_vm._v(_vm._s(_vm.$t('pagination.last')))]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Pagination.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Pagination.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Pagination.vue?vue&type=template&id=56aa2ed6&\"\nimport script from \"./Pagination.vue?vue&type=script&lang=js&\"\nexport * from \"./Pagination.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.component,_vm._b({tag:\"component\",staticClass:\"stac-link\",attrs:{\"title\":_vm.tooltip}},'component',_vm.attributes,false),[(_vm.icon)?[_c('img',{staticClass:\"icon mr-2\",attrs:{\"src\":_vm.icon.href,\"alt\":_vm.icon.title,\"title\":_vm.icon.title}})]:_vm._e(),_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.displayTitle))])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacLink.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacLink.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StacLink.vue?vue&type=template&id=935ce1da&\"\nimport script from \"./StacLink.vue?vue&type=script&lang=js&\"\nexport * from \"./StacLink.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = {\n catalogUrl: null,\n catalogTitle: \"STAC Browser\",\n allowExternalAccess: true, // Must be true if catalogUrl is not given\n allowedDomains: [],\n detectLocaleFromBrowser: true,\n storeLocale: true,\n locale: \"en\",\n fallbackLocale: \"en\",\n supportedLocales: [\n \"de\",\n// \"de-CH\",\n \"es\",\n \"en\",\n \"fr\",\n// \"fr-CA\",\n// \"fr-CH\",\n \"it\",\n// \"it-CH\",\n \"ro\"\n ],\n apiCatalogPriority: null,\n useTileLayerAsFallback: true,\n displayGeoTiffByDefault: false,\n buildTileUrlTemplate: ({href, asset}) => \"https://tiles.rdnt.io/tiles/{z}/{x}/{y}@2x?url=\" + encodeURIComponent(asset.href.startsWith(\"/vsi\") ? asset.href : href),\n stacProxyUrl: null,\n pathPrefix: \"/\",\n historyMode: \"history\",\n cardViewMode: \"cards\",\n cardViewSort: \"asc\",\n showThumbnailsAsAssets: false,\n stacLint: true,\n geoTiffResolution: 128,\n redirectLegacyUrls: false,\n itemsPerPage: 12,\n defaultThumbnailSize: null,\n maxPreviewsOnMap: 50,\n crossOriginMedia: null,\n requestHeaders: {},\n requestQueryParameters: {},\n preprocessSTAC: null,\n authConfig: null\n};\n","// Add deprecated CQL conformance classes for stac-fastapi:\n// https://github.com/stac-utils/stac-fastapi/issues/539\nconst CQL_TEXT = [\n 'https://api.stacspec.org/v1.*/item-search#filter:cql-text', // deprecated\n 'http://www.opengis.net/spec/cql2/1.*/conf/cql2-text'\n];\nconst CQL_JSON = [\n 'https://api.stacspec.org/v1.*/item-search#filter:cql-json', // deprecated\n 'http://www.opengis.net/spec/cql2/1.*/conf/cql2-json'\n];\n\nconst CQL_ADV_COMPARISON = ['http://www.opengis.net/spec/cql2/1.*/req/advanced-comparison-operators'];\n\nimport { mapGetters } from \"vuex\";\n\nexport const TYPES = {\n // OGC / STAC API - Features\n Items: {\n BasicFilters: [\n 'https://api.stacspec.org/v1.*/ogcapi-features',\n 'http://www.opengis.net/spec/ogcapi-features-1/1.*/conf/core'\n ],\n CollectionIdFilter: false,\n ItemIdFilter: false,\n // It seems some conformance classes use conf (correct) and some req (deprecated?) after the version number\n CqlFilters: ['http://www.opengis.net/spec/ogcapi-features-3/1.*/*/features-filter'],\n Sort: [\n 'https://api.stacspec.org/v1.*/ogcapi-features#sort',\n 'http://www.opengis.net/spec/ogcapi-records-1/1.*/conf/sorting'\n ],\n FreeText: ['https://api.stacspec.org/v1.*/ogcapi-features#free-text']\n },\n // STAC API - Item Search\n Global: {\n BasicFilters: true,\n CollectionIdFilter: true,\n ItemIdFilter: true,\n CqlFilters: ['https://api.stacspec.org/v1.*/item-search#filter'],\n Sort: ['https://api.stacspec.org/v1.*/item-search#sort'],\n FreeText: ['https://api.stacspec.org/v1.*/item-search#free-text']\n },\n // OGC / STAC API - Collections\n Collections: {\n BasicFilters: ['https://api.stacspec.org/v1.*/collection-search'],\n CollectionIdFilter: false,\n ItemIdFilter: false,\n CqlFilters: ['https://api.stacspec.org/v1.*/collection-search#filter'],\n Sort: ['https://api.stacspec.org/v1.*/collection-search#sort'],\n FreeText: ['https://api.stacspec.org/v1.*/collection-search#free-text']\n }\n};\n\nexport default {\n props: {\n type: {\n type: String,\n required: true\n }\n },\n computed: {\n ...mapGetters(['supportsConformance']),\n\n conformances() {\n return TYPES[this.type];\n },\n\n canSort() {\n return this.supportsConformance(this.conformances.Sort);\n },\n canFilterExtents() {\n return this.supportsConformance(this.conformances.BasicFilters);\n },\n canFilterFreeText() {\n return this.supportsConformance(this.conformances.FreeText);\n },\n cql() {\n if (!this.supportsConformance(this.conformances.CqlFilters)) {\n return null;\n }\n let textMode = this.supportsConformance(CQL_TEXT);\n let jsonMode = this.supportsConformance(CQL_JSON);\n if (!textMode && !jsonMode) {\n return null;\n }\n\n return {\n textMode,\n jsonMode,\n advancedComparison: this.supportsConformance(CQL_ADV_COMPARISON)\n };\n }\n }\n};\n","import { mapState } from 'vuex';\n\nexport default functions => {\n let mixin = {\n computed: {\n ...mapState(['uiLanguage'])\n },\n methods: {}\n };\n for(let name in functions) {\n let fn = functions[name];\n mixin.methods[name] = function() {\n // We call uiLanguage once so that it's a dependency for the computed property\n // which makes the computed property to re-render when uiLanguage changes.\n this.uiLanguage;\n return fn(...arguments);\n };\n }\n return mixin;\n};","import { mapState } from 'vuex';\n\nexport default {\n props: {\n showThumbnail: {\n type: Boolean,\n default: true\n }\n },\n computed: {\n ...mapState(['cardViewMode', 'crossOriginMedia', 'defaultThumbnailSize']),\n isList() {\n return this.data && !this.data.isItem() && this.cardViewMode === 'list';\n },\n hasImage() {\n return this.showThumbnail && this.thumbnail;\n },\n thumbnail() {\n if (this.data) {\n let thumbnails = this.data.getThumbnails(true, 'thumbnail');\n if (thumbnails.length > 0) {\n let t = thumbnails[0];\n let width, height;\n if (Array.isArray(t['proj:shape']) && t['proj:shape'].length === 2) {\n [height, width] = t['proj:shape'];\n }\n else if (Array.isArray(this.defaultThumbnailSize) && this.defaultThumbnailSize.length === 2) {\n [height, width] = this.defaultThumbnailSize;\n }\n return {\n src: t.href,\n alt: t.title,\n crossorigin: this.crossOriginMedia,\n right: this.isList,\n blankColor: \"rgba(0, 0, 0, 0.125)\",\n width,\n height,\n // for b-card-img-lazy\n \"blank-width\": width,\n \"blank-height\": height\n };\n }\n }\n return null;\n }\n }\n};","let config;\nif (typeof CONFIG_PATH === 'undefined') {\n config = require('../config');\n}\nelse {\n config = require(CONFIG_PATH);\n}\n\nexport default Object.assign(config, CONFIG_CLI, window.STAC_BROWSER_CONFIG);","import Vue from 'vue';\nimport VueI18n from 'vue-i18n';\nimport CONFIG from './config';\nimport {default as Fields} from '@radiantearth/stac-fields/I18N';\nimport Utils from './utils';\n\nVue.use(VueI18n);\n\nexport const API_LANGUAGE_CONFORMANCE = ['https://api.stacspec.org/v1.*/language'];\n\nconst LOCALE_CONFIG = {};\n\nfunction loadLocaleConfig() {\n // Load locale config\n for(let locale of CONFIG.supportedLocales) {\n LOCALE_CONFIG[locale] = require(`./locales/${locale}/config.json`);\n }\n const messages = {};\n // Add language names all other languages\n for(let locale in LOCALE_CONFIG) {\n messages[locale] = {\n languages: LOCALE_CONFIG\n };\n }\n return messages;\n}\n\nconst i18n = new VueI18n({\n locale: CONFIG.locale,\n fallbackLocale: CONFIG.fallbackLocale,\n messages: loadLocaleConfig()\n});\nexport default i18n;\n\nexport function loadDefaultMessages() {\n return Promise.all([\n loadMessages(CONFIG.locale),\n loadMessages(CONFIG.fallbackLocale)\n ]);\n}\n\nexport async function loadMessages(locale) {\n // Check whether the language has already been loaded\n // Note that a languages key is already present thus check >1 and not >0\n if (Utils.size(i18n.messages[locale]) > 1) {\n return;\n }\n const messages = (await import(`./locales/${locale}/default.js`)).default;\n i18n.mergeLocaleMessage(locale, messages);\n}\n\nexport function translateFields(value, vars = null) {\n if (typeof value !== 'string' || value.length === 0) {\n return value;\n }\n let key = `fields.${value}`;\n if (i18n.te(key)) {\n return i18n.t(key, null, vars);\n }\n return Fields.format(value, vars);\n}","// This code is based on https://github.com/cherry-projects/locale-id\n// Due to the \"heavy\" dependencies, it has been slimmed down\n\n// http://userguide.icu-project.org/locale\nexport default function parse(locale) {\n if (!locale) {\n return undefined;\n }\n\n // extract keyword\n const stringLocale = String(locale);\n const keywordPos = stringLocale.indexOf('@');\n\n const keyword = keywordPos !== -1\n ? stringLocale.substr(keywordPos + 1)\n : undefined;\n\n const localeWithoutKeyword = keywordPos !== -1\n ? stringLocale.substr(0, keywordPos)\n : stringLocale;\n\n // en-us => en_us\n const parts = String(localeWithoutKeyword)\n .replace(/-/g, '_')\n .split('_');\n\n if (!parts.length || parts.length > 4) {\n return undefined;\n }\n\n const language = parts.shift();\n if (!language) {\n return undefined;\n }\n\n const retVar = {\n keyword,\n language: language.toLowerCase(),\n };\n\n if (!parts.length) {\n return retVar;\n }\n\n if (parts.length === 3) {\n const variant = parts.pop();\n if (variant) {\n retVar.variant = variant.toUpperCase();\n }\n }\n\n let country = parts.pop();\n if (country.length > 3) {\n retVar.keyword = country;\n\n country = parts.pop();\n }\n\n if (country) {\n retVar.country = country.toUpperCase();\n }\n\n if (!parts.length) {\n return retVar;\n }\n\n const script = parts.pop();\n if (typeof script === 'string' && script.length >= 1) {\n retVar.script = script[0].toUpperCase() + script.substring(1).toLowerCase();\n }\n\n return retVar;\n}\n\nexport function normalize(locale, delimeter = '_') {\n const obj = parse(locale);\n if (!obj) {\n return obj;\n }\n\n let result = obj.language;\n\n if (obj.script) {\n result += `${delimeter}${obj.script}`;\n }\n\n if (obj.country) {\n result += `${delimeter}${obj.country}`;\n }\n\n return result;\n}\n\nconst splitAcceptLanguageRegEx = /([a-z]{1,8}(-[a-z]{1,8})?)\\s*(;\\s*q\\s*=\\s*(1|0\\.[0-9]+))?/ig;\nconst acceptLanguageItemRegEx = /^([a-z]{1,8}(-[a-z]{1,8})?)/i;\n\nexport function normalizeAcceptLanguage(acceptLanguage) {\n const returnItems = [];\n if (!acceptLanguage) {\n return returnItems;\n }\n\n const items = acceptLanguage.match(splitAcceptLanguageRegEx) || [];\n items.forEach(acceptLanguageItem => {\n const matches = acceptLanguageItem.match(acceptLanguageItemRegEx) || [];\n const locale = normalize(matches[0]);\n if (locale) {\n returnItems.push(locale);\n }\n });\n\n return returnItems;\n}\n\nexport function prepareSupported(supported) {\n const lgs = {};\n\n supported.forEach(supportedLocale => {\n const { language, country } = parse(supportedLocale);\n if (!language) {\n throw new Error(`Locale ${supportedLocale} is not parsable`);\n }\n\n if (!lgs[language]) {\n lgs[language] = {\n countries: {},\n firstCountry: undefined,\n main: undefined,\n };\n }\n\n const lg = lgs[language];\n if (country) {\n lg.countries[country] = supportedLocale;\n\n if (!lg.firstCountry) {\n lg.firstCountry = supportedLocale;\n }\n } else {\n lg.main = supportedLocale;\n }\n });\n\n return lgs;\n}\n\nexport function getBest(supported, locale, defaultLocale, getAnyCountry) {\n const lgs = Array.isArray(supported) ? prepareSupported(supported) : supported;\n\n // return defaultLocale if current locale is undefined\n if (!locale && defaultLocale) {\n return getBest(supported, defaultLocale, undefined, getAnyCountry);\n }\n\n if (!locale) {\n return undefined;\n }\n\n const { language, country } = parse(locale);\n if (!language) {\n return defaultLocale;\n }\n\n // selected locale is not supported\n if (!lgs[language]) {\n if (locale === defaultLocale) {\n return undefined;\n }\n\n return getBest(supported, defaultLocale, null, getAnyCountry);\n }\n\n const { countries, main = defaultLocale, firstCountry } = lgs[language];\n if (!countries || !country) {\n if (getAnyCountry && firstCountry) {\n return firstCountry;\n }\n\n return main;\n }\n\n if (getAnyCountry && firstCountry) {\n return countries[country] ? countries[country] : firstCountry;\n }\n\n return countries[country] ? countries[country] : main;\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-container',{attrs:{\"id\":\"stac-browser\"}},[(_vm.doAuth.length > 0)?_c('Authentication'):_vm._e(),(_vm.globalError)?_c('ErrorAlert',_vm._b({staticClass:\"global-error\",on:{\"close\":_vm.hideError}},'ErrorAlert',_vm.globalError,false)):_vm._e(),(_vm.sidebar)?_c('Sidebar'):_vm._e(),_c('header',[_c('div',{staticClass:\"logo\"},[_vm._v(_vm._s(_vm.displayCatalogTitle))]),_c('StacHeader',{on:{\"enableSidebar\":function($event){_vm.sidebar = true}}})],1),_c('router-view'),_c('footer',[_c('i18n',{staticClass:\"poweredby text-muted\",attrs:{\"tag\":\"small\",\"path\":\"poweredBy\"},scopedSlots:_vm._u([{key:\"link\",fn:function(){return [_c('a',{attrs:{\"href\":\"https://github.com/radiantearth/stac-browser\",\"target\":\"_blank\"}},[_vm._v(\"STAC Browser\")]),_vm._v(\" \"+_vm._s(_vm.browserVersion)+\" \")]},proxy:true}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('main',{staticClass:\"browse d-flex flex-column\"},[(!_vm.allowExternalAccess && _vm.isExternal)?_c('b-alert',{attrs:{\"show\":\"\"}},[_vm._v(_vm._s(_vm.$t('errors.noExternalAccess')))]):(_vm.error)?_c('ErrorAlert',{attrs:{\"dismissible\":false,\"url\":_vm.url,\"description\":_vm.errorDescription,\"id\":_vm.errorId}}):(_vm.loading)?_c('Loading',{attrs:{\"stretch\":\"\"}}):_c(_vm.component,{tag:\"component\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":\"\",\"dismissible\":_vm.dismissible},on:{\"dismissed\":function($event){return _vm.$emit('close')}}},[_c('p',{staticClass:\"message\"},[_vm._v(_vm._s(_vm.message || _vm.$t('errors.default')))]),(_vm.error && _vm.error.message)?_c('dl',{staticClass:\"error\"},[_c('dt',[_vm._v(_vm._s(_vm.$t('errors.labels.cause')))]),_c('dd',[_vm._v(_vm._s(_vm.error.message))])]):_vm._e(),(_vm.description)?_c('dl',{staticClass:\"description\"},[_c('dt',[_vm._v(_vm._s(_vm.$t('errors.labels.reason')))]),_c('dd',[_vm._v(_vm._s(_vm.description))])]):_vm._e(),(_vm.id)?_c('dl',{staticClass:\"id\"},[_c('dt',[_vm._v(_vm._s(_vm.$t('errors.labels.code')))]),_c('dd',[_c('code',[_vm._v(_vm._s(_vm.id))])])]):_vm._e(),(_vm.url)?_c('dl',{staticClass:\"url\"},[_c('dt',[_vm._v(_vm._s(_vm.$t('errors.labels.requestURL')))]),_c('dd',[_c('code',[_vm._v(_vm._s(_vm.url))])])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ErrorAlert.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ErrorAlert.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ErrorAlert.vue?vue&type=template&id=09bb7d1b&scoped=true&\"\nimport script from \"./ErrorAlert.vue?vue&type=script&lang=js&\"\nexport * from \"./ErrorAlert.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ErrorAlert.vue?vue&type=style&index=0&id=09bb7d1b&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"09bb7d1b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{key:_vm.data.id,staticClass:\"item\"},[_c('b-row',[_c('b-col',{staticClass:\"left\"},[_c('section',{staticClass:\"mb-4\"},[_c('b-card',{staticClass:\"maps-preview\",attrs:{\"no-body\":\"\"}},[_c('b-tabs',{ref:\"tabs\",attrs:{\"card\":\"\",\"pills\":\"\",\"vertical\":\"\",\"end\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('b-tab',{attrs:{\"title\":_vm.$t('map'),\"no-body\":\"\"}},[_c('Map',{attrs:{\"stac\":_vm.data,\"stacLayerData\":_vm.selectedAsset,\"scrollWheelZoom\":\"\"},on:{\"dataChanged\":_vm.dataChanged}})],1),(_vm.thumbnails.length > 0)?_c('b-tab',{attrs:{\"title\":_vm.$t('thumbnails'),\"no-body\":\"\"}},[_c('Thumbnails',{attrs:{\"thumbnails\":_vm.thumbnails}})],1):_vm._e()],1)],1)],1),(_vm.hasAssets)?_c('Assets',{attrs:{\"assets\":_vm.assets,\"context\":_vm.data,\"shown\":_vm.shownAssets},on:{\"showAsset\":_vm.showAsset}}):_vm._e(),(_vm.additionalLinks.length > 0)?_c('Links',{attrs:{\"title\":_vm.$t('additionalResources'),\"links\":_vm.additionalLinks}}):_vm._e()],1),_c('b-col',{staticClass:\"right\"},[_c('section',{staticClass:\"intro\"},[(_vm.data.properties.description)?_c('h2',[_vm._v(_vm._s(_vm.$t('description')))]):_vm._e(),(_vm.data.properties.deprecated)?_c('DeprecationNotice',{attrs:{\"data\":_vm.data}}):_vm._e(),(_vm.data.properties['anon:warning'])?_c('AnonymizedNotice',{attrs:{\"warning\":_vm.data.properties['anon:warning']}}):_vm._e(),(_vm.data.properties.description)?_c('ReadMore',{attrs:{\"lines\":10,\"text\":_vm.$t('read.more'),\"text-less\":_vm.$t('read.less')}},[_c('Description',{attrs:{\"description\":_vm.data.properties.description}})],1):_vm._e(),(Array.isArray(_vm.data.properties.keywords) && _vm.data.properties.keywords.length > 0)?_c('Keywords',{attrs:{\"keywords\":_vm.data.properties.keywords}}):_vm._e()],1),(_vm.collectionLink)?_c('CollectionLink',{attrs:{\"link\":_vm.collectionLink}}):_vm._e(),(_vm.data.properties.providers)?_c('Providers',{attrs:{\"providers\":_vm.data.properties.providers}}):_vm._e(),_c('Metadata',{attrs:{\"data\":_vm.data,\"type\":\"Item\",\"ignoreFields\":_vm.ignoredMetadataFields}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Utils from '../utils';\nimport { mapGetters } from 'vuex';\n\nexport default {\n data() {\n return {\n shownAssetsOnMap: [],\n shownBandsOnMap: [],\n tab: null,\n selectedAsset: null,\n selectedAssetKey: null\n };\n },\n computed: {\n ...mapGetters(['thumbnails', 'hasAssets', 'assets']),\n shownAssets() {\n if (this.tab === 0) {\n return this.shownAssetsOnMap;\n }\n else if (this.tab === 1 || (this.tab === null && this.thumbnails.length > 0)) {\n let keys = [];\n let thumbnailRefs = this.thumbnails.map(t => t.href);\n for(let key in this.assets) {\n let asset = this.assets[key];\n if (thumbnailRefs.includes(asset.href)) {\n keys.push(key);\n }\n }\n return keys;\n }\n return [];\n }\n },\n methods: {\n showAsset(asset, id, isThumbnail) {\n if (isThumbnail) {\n this.tab = 1;\n }\n else {\n this.tab = 0;\n this.selectedAsset = asset;\n this.selectedAssetKey = id;\n }\n if (this.$refs.tabs) {\n Utils.scrollTo(this.$refs.tabs.$el);\n }\n },\n dataChanged(data) {\n if (!Utils.isObject(data)) {\n this.shownBandsOnMap = [];\n this.shownAssetsOnMap = [];\n }\n else if (data.assets || data.bands) {\n if (Utils.size(data.assets) > 0) {\n if (this.selectedAssetKey) {\n this.shownAssetsOnMap = [this.selectedAssetKey];\n }\n else {\n this.shownAssetsOnMap = data.assets.map(meta => meta.key);\n }\n }\n if (Utils.size(data.bands) > 0) {\n this.shownBandsOnMap = data.bands;\n }\n }\n else if (this.selectedAssetKey) {\n this.shownAssetsOnMap = [this.selectedAssetKey];\n }\n }\n }\n};","import Utils from './utils';\nimport STAC from './models/stac';\nimport URI from 'urijs';\nimport i18n from './i18n';\n\nfunction toBrowserUrl(url, store) {\n let path = store.getters.toBrowserPath(url);\n let uri = URI(window.location.origin.toString());\n if (store.state.historyMode === 'hash') {\n uri.path(store.state.pathPrefix);\n uri.fragment(path);\n }\n else {\n uri.path(store.state.pathPrefix.replace(/\\/$/, '') + path);\n }\n return uri.toString();\n}\n\nfunction addSpatialCoverage(schema, bbox) {\n if (Array.isArray(bbox) && bbox.length >= 4) {\n schema.spatialCoverage = {\n \"@type\": \"Place\",\n geo: {\n \"@type\": \"GeoShape\",\n box: (bbox || []).join(\" \")\n }\n };\n }\n}\n\nfunction formatTemporalCoverage(dates) {\n if (Array.isArray(dates) && dates.length === 2 && (typeof dates[0] === 'string' || typeof dates[1] === 'string')) {\n return dates.map(dt => dt ? dt : '..').join('/');\n }\n return null;\n}\n\nfunction makeAssets(data) {\n if (Utils.size(data.assets) > 0) {\n return Object.values(data.assets).map(a => ({\n \"@type\": \"DataDownload\",\n contentUrl: Utils.toAbsolute(a.href, data.getAbsoluteUrl()),\n encodingFormat: a.type,\n name: a.title\n }));\n }\n return [];\n}\n\nfunction makeLinks(links, data, store, type = \"DataCatalog\") {\n return links.map(link => {\n let name, isBasedOn;\n if (link instanceof STAC) {\n name = STAC.getDisplayTitle(link);\n isBasedOn = link.getAbsoluteUrl();\n }\n else {\n name = link.title;\n isBasedOn = Utils.toAbsolute(link.href, data.getAbsoluteUrl());\n }\n let obj = {\n \"@type\": type,\n name,\n url: toBrowserUrl(isBasedOn, store),\n isBasedOn\n };\n if (type === 'Dataset') {\n obj.description = fallbackDescription(link, store);\n }\n return obj;\n });\n}\n\nfunction makeProvider(providers, role) {\n return providers\n .filter(p => Utils.isObject(p) && Array.isArray(p.roles) && p.roles.includes(role))\n .map(p => ({\n \"@type\": \"Organization\",\n \"name\": p.name,\n \"description\": p.description,\n \"url\": p.url,\n \"email\": p.email || p.mail,\n }));\n}\n\nfunction fallbackDescription(data, store) {\n let stacType, container;\n if (data instanceof STAC) {\n stacType = data.isItem() ? \"Item\" : data.type;\n container = data.collection;\n }\n else if (Utils.isObject(data) && data.rel === 'item') {\n stacType = \"Item\";\n }\n if (stacType) {\n let type = i18n.tc(`stac${stacType}`);\n let inX = i18n.t('in', {catalog: container || store.catalogTitle});\n return `SpatioTemporal Asset Catalog (STAC)\\n${type} - ${data.id} ${inX}`;\n }\n}\n\nfunction createBaseSchema(data, type, store) {\n let name = STAC.getDisplayTitle(data);\n let stacUrl = data.getAbsoluteUrl();\n let url = toBrowserUrl(stacUrl, store);\n let inLanguage = data.getMetadata('language')?.code;\n let thumbnails = data.getThumbnails(true);\n let thumbnailUrl;\n if (thumbnails.length > 0) {\n thumbnailUrl = Utils.toAbsolute(thumbnails[0].href, data.getAbsoluteUrl());\n }\n let license = data.getMetadata('license');\n if (license && license !== 'proprietary' && license !== 'various') {\n license = `https://spdx.org/licenses/${license}.html`;\n }\n else {\n license = data.getLinkWithRel('license')?.href;\n }\n if (license) {\n license = Utils.toAbsolute(license, data.getAbsoluteUrl());\n }\n\n let providers = data.getMetadata('providers');\n let copyrightHolder; // licensor\n let producer; // producer\n let provider; // host\n let creator; // processor\n if (Utils.size(providers) > 0) {\n copyrightHolder = makeProvider(providers, \"licensor\");\n producer = makeProvider(providers, \"producer\");\n provider = makeProvider(providers, \"host\");\n creator = makeProvider(providers, \"processor\");\n }\n\n return {\n \"@context\": \"https://schema.org/\",\n \"@type\": type,\n name,\n description: data.getMetadata(\"description\") || fallbackDescription(data, store),\n citation: data.getMetadata(\"sci:citation\"),\n identifier: data.getMetadata(\"sci:doi\") || data.id,\n keywords: data.getMetadata(\"keywords\"),\n license,\n url,\n isBasedOn: stacUrl,\n dateCreated: data.getMetadata('created'),\n dateModified: data.getMetadata('updated'),\n datePublished: data.getMetadata('published'),\n expires: data.getMetadata('expires'),\n inLanguage,\n thumbnailUrl,\n version: data.getMetadata('version'),\n image: thumbnailUrl,\n copyrightHolder,\n producer,\n provider,\n creator\n };\n}\n\nexport function createCatalogSchema(data, parents, store) {\n if (!(data instanceof STAC)) {\n return null;\n }\n // Remove invalid links\n parents = parents.filter(link => Utils.isObject(link));\n if (parents.length > 1) {\n // Remove duplicates\n parents = parents.filter((link, i) => parents.findIndex(p => p.isBasedOn === link.isBasedOn) !== i);\n }\n\n let schema = createBaseSchema(data, 'DataCatalog', store);\n\n if (data.isCollection()) {\n if (data.extent?.temporal?.interval.length > 0) {\n schema.temporalCoverage = formatTemporalCoverage(data.extent.temporal.interval[0]);\n }\n\n if (data.extent?.spatial?.bbox.length > 0) {\n addSpatialCoverage(schema, data.extent.spatial.bbox[0]);\n }\n schema.associatedMedia = makeAssets(data);\n }\n\n schema.hasPart = makeLinks(store.getters.catalogs, data, store);\n schema.dataset = makeLinks(store.getters.items, data, store, \"Dataset\");\n schema.isPartOf = makeLinks(parents, data, store);\n\n return schema;\n}\n\nexport function createItemSchema(data, parents, store) {\n if (!(data instanceof STAC)) {\n return null;\n }\n parents = parents.filter(link => Utils.isObject(link));\n\n let schema = createBaseSchema(data, 'Dataset', store);\n\n schema.includedInDataCatalog = makeLinks(parents, data, store);\n\n let start = data.getMetadata('start_datetime');\n let end = data.getMetadata('end_datetime');\n if (start || end) {\n schema.temporalCoverage = formatTemporalCoverage([start, end]);\n }\n else {\n schema.temporalCoverage = data.getMetadata('datetime');\n }\n\n addSpatialCoverage(schema, data.bbox);\n schema.distribution = makeAssets(data);\n\n return schema;\n}\n\nexport function addSchemaToDocument(doc, schema) {\n let id = 'schema-org';\n let element = doc.getElementById(id);\n if (!element) {\n element = doc.createElement('script');\n element.type = 'application/ld+json';\n element.id = id;\n doc.head.appendChild(element);\n }\n element.innerText = JSON.stringify(schema);\n}","\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Item.vue?vue&type=template&id=7e621ed7&\"\nimport script from \"./Item.vue?vue&type=script&lang=js&\"\nexport * from \"./Item.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Item.vue?vue&type=style&index=0&id=7e621ed7&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{key:_vm.data.id,class:{cc: true, [_vm.data.type.toLowerCase()]: true, mixed: _vm.hasCatalogs && _vm.hasItems, empty: !_vm.hasCatalogs && !_vm.hasItems}},[_c('b-row',[_c('b-col',{staticClass:\"meta\"},[_c('section',{staticClass:\"intro\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('description')))]),(_vm.data.deprecated)?_c('DeprecationNotice',{attrs:{\"data\":_vm.data}}):_vm._e(),(_vm.data['anon:warning'])?_c('AnonymizedNotice',{attrs:{\"warning\":_vm.data['anon:warning']}}):_vm._e(),(_vm.data.description)?_c('ReadMore',{attrs:{\"lines\":10,\"text\":_vm.$t('read.more'),\"text-less\":_vm.$t('read.less')}},[_c('Description',{attrs:{\"description\":_vm.data.description}})],1):_vm._e(),(Array.isArray(_vm.data.keywords) && _vm.data.keywords.length > 0)?_c('Keywords',{attrs:{\"keywords\":_vm.data.keywords}}):_vm._e(),(_vm.isCollection)?_c('section',{staticClass:\"metadata mb-4\"},[(_vm.licenses)?_c('b-row',[_c('b-col',{staticClass:\"label\",attrs:{\"md\":\"4\"}},[_vm._v(_vm._s(_vm.$t('catalog.license')))]),_c('b-col',{staticClass:\"value\",attrs:{\"md\":\"8\"}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.licenses)}})])],1):_vm._e(),(_vm.temporalExtents)?_c('b-row',[_c('b-col',{staticClass:\"label\",attrs:{\"md\":\"4\"}},[_vm._v(_vm._s(_vm.$t('catalog.temporalExtent')))]),_c('b-col',{staticClass:\"value\",attrs:{\"md\":\"8\"}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.temporalExtents)}})])],1):_vm._e()],1):_vm._e(),(_vm.linkPosition === 'left')?_c('Links',{attrs:{\"title\":_vm.$t('additionalResources'),\"links\":_vm.additionalLinks}}):_vm._e()],1),(_vm.isCollection || _vm.hasThumbnails)?_c('section',{staticClass:\"mb-4\"},[_c('b-card',{staticClass:\"maps-preview\",attrs:{\"no-body\":\"\"}},[_c('b-tabs',{ref:\"tabs\",attrs:{\"pills\":\"\",\"card\":\"\",\"vertical\":\"\",\"end\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[(_vm.isCollection)?_c('b-tab',{attrs:{\"title\":_vm.$t('map'),\"no-body\":\"\"}},[_c('Map',{attrs:{\"stac\":_vm.data,\"stacLayerData\":_vm.mapData,\"fitBoundsOnce\":\"\",\"popover\":\"\"},on:{\"dataChanged\":_vm.dataChanged}})],1):_vm._e(),(_vm.hasThumbnails)?_c('b-tab',{attrs:{\"title\":_vm.$t('thumbnails'),\"no-body\":\"\"}},[_c('Thumbnails',{attrs:{\"thumbnails\":_vm.thumbnails}})],1):_vm._e()],1)],1)],1):_vm._e(),(_vm.hasAssets)?_c('Assets',{attrs:{\"assets\":_vm.assets,\"context\":_vm.data,\"shown\":_vm.shownAssets},on:{\"showAsset\":_vm.showAsset}}):_vm._e(),(_vm.hasItemAssets && !_vm.hasItems)?_c('Assets',{attrs:{\"assets\":_vm.data.item_assets,\"definition\":true}}):_vm._e(),(_vm.providers)?_c('Providers',{attrs:{\"providers\":_vm.providers}}):_vm._e(),_c('Metadata',{staticClass:\"mb-4\",attrs:{\"title\":_vm.$t('metadata.title'),\"type\":_vm.data.type,\"data\":_vm.data,\"ignoreFields\":_vm.ignoredMetadataFields}}),(_vm.collectionLink)?_c('CollectionLink',{attrs:{\"link\":_vm.collectionLink}}):_vm._e(),(_vm.linkPosition === 'right')?_c('Links',{attrs:{\"title\":_vm.$t('additionalResources'),\"links\":_vm.additionalLinks}}):_vm._e()],1),(_vm.hasCatalogs)?_c('b-col',{staticClass:\"catalogs-container\"},[_c('Catalogs',{attrs:{\"catalogs\":_vm.catalogs,\"hasMore\":!!_vm.nextCollectionsLink},on:{\"loadMore\":_vm.loadMoreCollections}})],1):_vm._e(),(_vm.hasItems)?_c('b-col',{staticClass:\"items-container\"},[_c('Items',{attrs:{\"stac\":_vm.data,\"items\":_vm.items,\"api\":_vm.isApi,\"showFilters\":_vm.showFilters,\"apiFilters\":_vm.filters,\"pagination\":_vm.itemPages,\"loading\":_vm.apiItemsLoading},on:{\"paginate\":_vm.paginateItems,\"filterItems\":_vm.filterItems,\"filtersShown\":_vm.filtersShown}}),(_vm.hasItemAssets)?_c('Assets',{attrs:{\"assets\":_vm.data.item_assets,\"definition\":true}}):_vm._e()],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Catalog.vue?vue&type=template&id=41aa33b4&\"\nimport script from \"./Catalog.vue?vue&type=script&lang=js&\"\nexport * from \"./Catalog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Catalog.vue?vue&type=style&index=0&id=41aa33b4&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Browse.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Browse.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Browse.vue?vue&type=template&id=b70f9318&\"\nimport script from \"./Browse.vue?vue&type=script&lang=js&\"\nexport * from \"./Browse.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Browse from '../views/Browse.vue';\n\nfunction getRoutes(config) {\n let routes = [];\n\n if (config.allowExternalAccess) {\n routes.push({\n path: \"/external/(.*)\",\n name: \"browseExternal\",\n component: Browse,\n props: route => {\n return {\n path: `/external/${route.params.pathMatch}`\n };\n }\n });\n }\n\n if (!config.catalogUrl) {\n routes.push({\n path: \"/\",\n name: \"select\",\n component: () => import(\"../views/SelectDataSource.vue\")\n });\n routes.push({\n path: \"/search/external/(.*)\",\n name: \"search\",\n component: () => import(\"../views/Search.vue\"),\n props: route => {\n return {\n loadParent: `/external/${route.params.pathMatch}`\n };\n }\n });\n }\n else {\n routes.push({\n path: \"/search\",\n name: \"search\",\n component: () => import(\"../views/Search.vue\")\n });\n }\n\n routes.push({\n path: \"/(.*)\",\n name: \"browse\",\n component: Browse,\n props: route => {\n return {\n path: route.params.pathMatch\n };\n }\n });\n\n return routes;\n}\n\nexport default getRoutes;","import Vue from \"vue\";\nimport Vuex from \"vuex\";\n\nimport axios from \"axios\";\nimport URI from \"urijs\";\n\nimport i18n from '../i18n';\nimport { stacBrowserSpecialHandling } from \"../rels\";\nimport Utils, { BrowserError } from '../utils';\nimport STAC from '../models/stac';\n\nimport { addQueryIfNotExists, isAuthenticationError, Loading, processSTAC, proxyUrl, unproxyUrl, stacRequest } from './utils';\nimport { getBest } from '../locale-id';\nimport { TYPES } from \"../components/ApiCapabilitiesMixin\";\n\nfunction getStore(config, router) {\n // Local settings (e.g. for currently loaded STAC entity)\n const localDefaults = () => ({\n url: '',\n title: config.catalogTitle,\n description: null,\n data: null,\n valid: null,\n parents: null,\n globalError: null,\n\n localRequestQueryParameters: {},\n stateQueryParameters: {\n language: null,\n asset: [],\n itemdef: []\n },\n\n apiItems: [],\n apiItemsLink: null,\n apiItemsPagination: {}\n });\n\n const catalogDefaults = () => ({\n queue: [],\n privateQueryParameters: {},\n authData: null,\n doAuth: [],\n conformsTo: [],\n dataLanguage: null,\n dataLanguages: [],\n\n apiCollections: [],\n apiItemsLoading: {},\n nextCollectionsLink: null\n });\n\n return new Vuex.Store({\n strict: true,\n state: Object.assign({}, config, localDefaults(), catalogDefaults(), {\n // Global settings\n database: {}, // STAC object, Error object or Loading object or Promise (when loading)\n allowSelectCatalog: !config.catalogUrl,\n globalRequestQueryParameters: config.requestQueryParameters,\n uiLanguage: config.locale\n }),\n getters: {\n loading: state => !state.url || !state.data || state.database[state.url] instanceof Loading,\n getApiItemsLoading: state => data => {\n let id = '';\n if (data instanceof Loading) {\n return true;\n }\n else if (data instanceof STAC) {\n id = data.id;\n }\n else if (typeof data === 'string') {\n id = data;\n }\n return state.apiItemsLoading[id] || false;\n },\n error: state => state.database[state.url] instanceof Error ? state.database[state.url] : null,\n getStac: state => (source, returnErrorObject = false) => {\n if (source instanceof STAC) {\n return source;\n }\n if (Utils.isObject(source) && Utils.hasText(source.href)) {\n source = source.href;\n }\n if (!Utils.hasText(source)) {\n return null;\n }\n let absoluteUrl = Utils.toAbsolute(source, state.url);\n let data = state.database[absoluteUrl];\n if (data instanceof STAC || (returnErrorObject && data instanceof Error)) {\n return data;\n }\n else {\n return null;\n }\n },\n\n displayCatalogTitle: (state, getters) => STAC.getDisplayTitle(getters.root, state.catalogTitle),\n\n isCollection: state => state.data?.isCollection() || false,\n isCatalog: state => state.data?.isCatalog() || false,\n isCatalogLike: state => state.data?.isCatalogLike() || false,\n isItem: state => state.data?.isItem() || false,\n\n root: (_, getters) => getters.getStac(getters.rootLink),\n\n rootLink: state => {\n let link = state.data?.getStacLinkWithRel('root');\n if (link) {\n return link;\n }\n else if (state.catalogUrl) {\n return Utils.createLink(state.catalogUrl, 'root');\n }\n else if (state.url && state.data instanceof STAC && state.data.getLinksWithRels(['conformance', 'service-desc', 'service-doc', 'data', 'search']).length > 0) {\n return Utils.createLink(state.url, 'root');\n }\n else if (state.url) {\n // Fallback: If we detect OGC API like paths, try to guess the paths\n let uri = URI(state.url);\n let path = uri.segment(-2);\n if (['collections', 'items'].includes(path)) {\n uri.segment(-1, \"\");\n uri.segment(-1, \"\");\n if (path === 'items') {\n uri.segment(-1, \"\");\n uri.segment(-1, \"\");\n }\n return Utils.createLink(uri.toString(), 'root');\n }\n }\n return null;\n },\n parentLink: state => {\n if (state.data instanceof STAC) {\n let link = state.data.getStacLinkWithRel('parent');\n if (link) {\n return link;\n }\n }\n\n // Fallback: If we detect OGC API like paths, try to guess the paths\n if (state.url) {\n let uri = URI(state.url);\n let path = uri.segment(-2);\n if (['collections', 'items'].includes(path)) {\n uri.segment(-1, \"\");\n uri.segment(-1, \"\");\n return Utils.createLink(uri.toString(), 'parent');\n }\n }\n\n return null;\n },\n collectionLink: state => {\n if (state.data instanceof STAC) {\n let link = state.data?.getStacLinkWithRel('collection');\n if (link) {\n return link;\n }\n }\n\n // Fallback: If we detect OGC API like paths, try to guess the paths\n if (state.url) {\n let uri = URI(state.url);\n let path = uri.segment(-2);\n if (path == 'items') {\n uri.segment(-1, \"\");\n uri.segment(-1, \"\");\n return Utils.createLink(uri.toString(), 'collection');\n }\n }\n\n return null;\n },\n supportsConformance: state => classes => {\n if(!Array.isArray(classes)) {\n return classes;\n }\n let classRegexp = classes\n .map(c => c.replaceAll('*', '[^/]+').replace(/\\/?#/, '/?#'))\n .join('|');\n let regexp = new RegExp('^(' + classRegexp + ')$');\n return Boolean(state.conformsTo.find(uri => uri.match(regexp)));\n },\n supportsExtension: state => schemaUri => {\n return Utils.supportsExtension(state.data, schemaUri);\n },\n\n canSearch: (state, getters) => {\n return getters.canSearchCollections || getters.canSearchItems;\n },\n canSearchItems: (state, getters) => {\n return getters.supportsConformance(TYPES.Items.BasicFilters);\n },\n canSearchCollections: (state, getters) => {\n return getters.supportsConformance(TYPES.Collections.BasicFilters);\n },\n\n items: state => {\n if (state.apiItems.length > 0) {\n return state.apiItems;\n }\n else if (state.data) {\n return state.data.getStacLinksWithRel('item');\n }\n return [];\n },\n catalogs: state => {\n let hasCollections = Boolean(state.data instanceof STAC && state.data.getApiCollectionsLink() && state.apiCollections.length > 0);\n let hasChilds = Boolean(state.data instanceof STAC);\n let showCollections = !state.apiCatalogPriority || state.apiCatalogPriority === 'collections';\n let showChilds = !state.apiCatalogPriority || state.apiCatalogPriority === 'childs';\n let catalogs = [];\n if (hasCollections && showCollections) {\n catalogs = catalogs.concat(state.apiCollections);\n }\n if (hasChilds && showChilds) {\n catalogs = STAC.addMissingChildren(catalogs, state.data);\n }\n return catalogs;\n },\n\n // hasAsset also checks whether the assets have a href and thus are not item asset definitions\n hasAssets: (state, getters) => Boolean(Object.values(getters.assets).find(asset => Utils.isObject(asset) && typeof asset.href === 'string')),\n assets: (state, getters) => {\n if (!Utils.isObject(state.data?.assets)) {\n return {};\n }\n else if (state.showThumbnailsAsAssets) {\n return state.data.assets;\n }\n else {\n let assets = {};\n let thumbnails = getters.thumbnails;\n for (let key in state.data.assets) {\n let asset = state.data.assets[key];\n if (!thumbnails.includes(asset)) {\n assets[key] = asset;\n }\n }\n return assets;\n }\n },\n thumbnails: state => state.data ? state.data.getThumbnails(true) : [],\n additionalLinks: state => state.data ? state.data.getLinksWithOtherRels(stacBrowserSpecialHandling).filter(link => link.rel !== 'preview' || !Utils.canBrowserDisplayImage(link)) : [],\n\n toBrowserPath: (state, getters) => url => {\n if (!Utils.hasText(url)) {\n url = '/';\n }\n\n let absolute = Utils.toAbsolute(unproxyUrl(url, state.stacProxyUrl), state.url, false);\n let relative;\n if (!state.allowSelectCatalog && state.catalogUrl) {\n relative = absolute.relativeTo(state.catalogUrl);\n }\n\n if (typeof relative === 'undefined' || getters.isExternalUrl(absolute, false)) {\n if (!state.allowExternalAccess) {\n return absolute.toString();\n }\n let parts = ['/external'];\n let protocol = absolute.protocol();\n if (protocol !== 'https') {\n parts.push(protocol + ':');\n }\n parts.push(absolute.authority());\n parts.push(absolute.path().replace(/^\\//, ''));\n let path = parts.join('/');\n let q = absolute.query();\n if (q) {\n path += `?${q}`;\n }\n return path;\n }\n else {\n return '/' + relative.toString();\n }\n },\n fromBrowserPath: (state, getters) => url => {\n const externalRE = /^\\/(search\\/)?external\\//;\n if (!Utils.hasText(url) || url === '/') {\n url = state.catalogUrl;\n }\n else if (url.match(externalRE)) {\n let parts = url.replace(externalRE, '').split('/');\n let protocol;\n if (!parts[0].endsWith(':')) {\n protocol = 'https:';\n }\n else {\n protocol = parts.shift();\n }\n url = `${protocol}//${parts.join('/')}`;\n }\n else if (!state.allowSelectCatalog && state.catalogUrl) {\n url = Utils.toAbsolute(url, state.catalogUrl, false);\n }\n return getters.getRequestUrl(url, null, true);\n },\n isExternalUrl: state => (absoluteUrl, whitelist = true) => {\n if (!state.catalogUrl) {\n return false;\n }\n if (!(absoluteUrl instanceof URI)) {\n absoluteUrl = URI(absoluteUrl);\n }\n if (whitelist && Array.isArray(state.allowedDomains) && state.allowedDomains.includes(absoluteUrl.domain())) {\n return false;\n }\n let relative;\n if (absoluteUrl.is(\"relative\")) {\n relative = absoluteUrl;\n }\n else {\n relative = absoluteUrl.relativeTo(state.catalogUrl);\n if (relative.equals(absoluteUrl)) {\n return true;\n }\n }\n let relativeStr = relative.toString();\n return relativeStr.startsWith('//') || relativeStr.startsWith('../');\n },\n getRequestUrl: (state, getters) => (url, baseUrl = null, addLocalQueryParams = false) => {\n let absoluteUrl = Utils.toAbsolute(proxyUrl(url, state.stacProxyUrl), baseUrl ? baseUrl : state.url, false);\n if (!getters.isExternalUrl(absoluteUrl)) {\n // Check whether private params are present and add them if the URL is part of the catalog\n addQueryIfNotExists(absoluteUrl, state.privateQueryParameters);\n // Check if we need to add global request params\n addQueryIfNotExists(absoluteUrl, state.globalRequestQueryParameters);\n if (addLocalQueryParams) {\n // Check if we need to add local request params\n addQueryIfNotExists(absoluteUrl, state.localRequestQueryParameters);\n }\n }\n // If we are proxying a STAC Catalog, replace any URI with the proxied address.\n return absoluteUrl.toString();\n },\n\n acceptedLanguages: state => {\n const languages = {};\n // Implement in ascending order:\n languages['en'] = 0.1;\n if (Array.isArray(state.supportedLocales)) {\n state.supportedLocales.forEach(locale => languages[locale] = 0.2);\n }\n if (Utils.hasText(state.fallbackLocale)) {\n languages[state.fallbackLocale] = 0.5;\n }\n if (Array.isArray(navigator.languages)) {\n navigator.languages.forEach(locale => languages[locale] = 0.7);\n }\n if (Utils.hasText(state.locale)) {\n languages[state.locale] = 1;\n }\n return Object.entries(languages)\n .sort((a,b) => {\n if (a[1] > b[1]) {\n return -1;\n }\n else if (a[1] < b[1]) {\n return 1;\n }\n return 0;\n })\n .map(([l, q]) => q >= 1 ? l : `${l};q=${q}`)\n .join(',');\n }\n },\n mutations: {\n config(state, config) {\n for (let key in config) {\n let value = config[key];\n switch (key) {\n case 'catalogTitle':\n state.catalogTitle = value;\n break;\n case 'catalogUrl':\n if (typeof value === 'function') {\n state.catalogUrl = value();\n }\n else if (typeof value === 'string') {\n state.catalogUrl = value;\n }\n break;\n case 'crossOriginMedia':\n state.crossOriginMedia = ['anonymous', 'use-credentials'].includes(value) ? value : null;\n break;\n case 'cardViewSort':\n switch(value) {\n case 'asc':\n state.cardViewSort = 1;\n break;\n case 'desc':\n state.cardViewSort = -1;\n break;\n default:\n state.cardViewSort = 0;\n }\n break;\n default:\n state[key] = value;\n }\n }\n },\n languages(state, {uiLanguage, dataLanguage}) {\n state.dataLanguage = dataLanguage || null;\n state.uiLanguage = uiLanguage || null;\n },\n setQueryParameter(state, { type, key, value }) {\n type = `${type}QueryParameters`;\n if (typeof value === 'undefined') {\n Vue.delete(state[type], key);\n }\n else {\n Vue.set(state[type], key, value);\n }\n },\n setRequestHeader(state, { key, value }) {\n if (typeof value === 'undefined') {\n Vue.delete(state.requestHeaders, key);\n }\n else {\n Vue.set(state.requestHeaders, key, value);\n }\n },\n requestAuth(state, callback) {\n if (typeof callback === 'function') {\n state.doAuth.push(callback);\n }\n else {\n state.doAuth = [];\n }\n },\n setAuthData(state, value) {\n state.authData = value;\n },\n state(state, newState) {\n state.stateQueryParameters = newState;\n },\n updateState(state, {type, value}) {\n if (value === null || typeof value === 'undefined') {\n Vue.delete(state.stateQueryParameters, type);\n }\n else {\n Vue.set(state.stateQueryParameters, type, value);\n }\n },\n openCollapsible(state, { type, uid }) {\n const idx = state.stateQueryParameters[type].indexOf(uid);\n // need to prevent duplicates because of the way the collapse v-model works\n if (idx === -1) {\n state.stateQueryParameters[type].push(uid);\n }\n },\n closeCollapsible(state, { type, uid }) {\n const idx = state.stateQueryParameters[type].indexOf(uid);\n if (idx > -1) {\n Vue.delete(state.stateQueryParameters[type], idx);\n }\n },\n updateLoading(state, { url, show, loadApi }) {\n let data = state.database[url];\n Vue.set(data, 'show', show || data.show);\n Vue.set(data, 'loadApi', loadApi || data.loadApi);\n },\n loading(state, { url, loading }) {\n Vue.set(state.database, url, loading);\n if (loading.show) {\n state.url = url;\n }\n },\n loaded(state, { url, data }) {\n Vue.set(state.database, url, processSTAC(state, data));\n },\n clear(state, url) {\n Vue.delete(state.database, url);\n },\n resetCatalog(state, clearAll) {\n Object.assign(state, catalogDefaults());\n Object.assign(state, localDefaults());\n if (!state.supportedLocales.includes(state.locale)) {\n state.locale = config.locale;\n }\n if (clearAll) {\n state.catalogUrl = config.catalogUrl;\n state.catalogTitle = config.catalogTitle;\n state.database = {};\n }\n },\n resetPage(state) {\n Object.assign(state, localDefaults());\n },\n showPage(state, { url, title, description, stac }) {\n if (!stac) {\n stac = state.database[url] || null;\n }\n state.url = url || null;\n state.data = stac instanceof STAC ? stac : null;\n state.valid = null;\n state.description = description;\n\n // Set title\n if (title) {\n state.title = title;\n }\n else {\n state.title = STAC.getDisplayTitle(state.data, state.catalogTitle);\n if (state.data) {\n let description = state.data.getMetadata('description');\n if (Utils.hasText(description)) {\n state.description = description;\n }\n }\n }\n\n if (state.data) {\n let source = state.data.isItem() ? state.data.properties : state.data;\n let languages = Array.isArray(source.languages) ? source.languages.slice() : [];\n if (Utils.isObject(source.language)) {\n languages.unshift(source.language);\n }\n state.dataLanguages = languages.filter(lang => Utils.isObject(lang) && typeof lang.code === 'string');\n }\n },\n errored(state, { url, error }) {\n if (!(error instanceof Error)) {\n error = new Error(error);\n }\n Vue.set(state.database, url, error);\n },\n valid(state, valid) {\n state.valid = valid;\n },\n queue(state, url) {\n state.queue.push(url);\n },\n unqueue(state, url) {\n let i = state.queue.indexOf(url);\n if (i !== -1) {\n state.queue.splice(i, 1);\n }\n },\n removeFromQueue(state, num) {\n state.queue.splice(0, num);\n },\n setConformanceClasses(state, classes) {\n if (Array.isArray(classes)) {\n state.conformsTo = classes;\n }\n },\n setApiItemsLink(state, link) {\n state.apiItemsLink = link;\n },\n toggleApiItemsLoading(state, collectionId = '') {\n if (state.apiItemsLoading[collectionId]) {\n Vue.delete(state.apiItemsLoading, collectionId);\n }\n else {\n Vue.set(state.apiItemsLoading, collectionId, true);\n }\n },\n setApiItems(state, { data, stac, show }) {\n if (!Utils.isObject(data) || !Array.isArray(data.features)) {\n return;\n }\n let apiItems = data.features.map(feature => processSTAC(state, feature));\n\n if (show) {\n state.apiItems = apiItems;\n }\n\n // Handle pagination links\n let pages = Utils.getPaginationLinks(data);\n\n if (show) {\n state.apiItemsPagination = pages;\n }\n\n if (stac instanceof STAC) {\n // ToDo: Prev link only required when state.apiItems is not cached(?) -> cache apiItems?\n stac.setApiData(apiItems, pages.next, pages.prev);\n }\n },\n addApiCollections(state, { data, stac, show }) {\n if (!Utils.isObject(data) || !Array.isArray(data.collections)) {\n return;\n }\n\n let collections = data.collections.map(collection => processSTAC(state, collection));\n let nextLink = Utils.getLinkWithRel(data.links, 'next');\n if (show) {\n state.nextCollectionsLink = nextLink;\n state.apiCollections = state.apiCollections.concat(collections);\n }\n if (stac instanceof STAC) {\n stac.setApiData(collections, nextLink);\n }\n },\n resetApiItems(state, link) {\n state.apiItems = [];\n state.apiItemsLink = link;\n state.apiItemsPagination = {};\n },\n parents(state, parents) {\n state.parents = parents;\n },\n showGlobalError(state, error) {\n console.error(error);\n state.globalError = error;\n }\n },\n actions: {\n async switchLocale(cx, {locale, userSelected}) {\n cx.commit('config', {locale});\n\n if (cx.state.storeLocale && userSelected) {\n try {\n window.localStorage.setItem('locale', locale);\n } catch (error) {\n console.error(error);\n }\n }\n\n // Locale for UI\n let uiLanguage = getBest(cx.state.supportedLocales, locale, cx.state.fallbackLocale);\n // Locale for data\n let dataLanguageCodes = cx.state.dataLanguages.map(l => l.code);\n let dataLanguageFallback = cx.state.dataLanguages.length > 0 ? cx.state.dataLanguages[0].code : uiLanguage;\n let dataLanguage = getBest(dataLanguageCodes, locale, dataLanguageFallback);\n\n cx.commit('languages', {dataLanguage, uiLanguage});\n cx.commit('setQueryParameter', { type: 'state', key: 'language', value: locale });\n },\n async setAuth(cx, value) {\n if (!Utils.hasText(value)) {\n value = null;\n }\n // Set the value the user has provided separately\n cx.commit('setAuthData', value);\n\n // Format the value and add it to query parameters or headers\n let authConfig = cx.state.authConfig;\n let key = authConfig.key;\n if (value) {\n if (authConfig.formatter === 'Bearer') {\n value = `Bearer ${value}`;\n }\n else if (typeof authConfig.formatter === 'function') {\n value = authConfig.formatter(value);\n }\n }\n if (!Utils.hasText(value)) {\n value = undefined;\n }\n if (authConfig.type === 'query') {\n cx.commit('setQueryParameter', {type: 'private', key, value});\n }\n else if (authConfig.type === 'header') {\n cx.commit('setRequestHeader', {key, value});\n }\n },\n async loadBackground(cx, count) {\n let urls = cx.state.queue.slice(0, count);\n if (urls.length > 0) {\n let promises = [];\n for (let url of urls) {\n promises.push(cx.dispatch('load', { url }));\n }\n cx.commit('removeFromQueue', count);\n return await Promise.all(promises);\n }\n },\n async loadParents(cx) {\n if (!(cx.state.data instanceof STAC)) {\n cx.commit('parents', []);\n return;\n }\n\n let parents = [];\n let stac = cx.state.data;\n while (stac) {\n let parentLink = stac.getLinkWithRel('parent') || stac.getLinkWithRel('root');\n if (!parentLink) {\n break;\n }\n let url = Utils.toAbsolute(parentLink.href, stac.getAbsoluteUrl());\n await cx.dispatch('load', { url, loadApi: true });\n let parentStac = cx.getters.getStac(url, true);\n if (parentStac instanceof Error) {\n cx.commit('parents', parentStac);\n return;\n }\n if (parentStac === stac) {\n break;\n }\n parents.push(parentStac);\n stac = parentStac;\n }\n cx.commit('parents', parents);\n },\n async load(cx, args) {\n let { url, show, loadApi, loadRoot, force } = args;\n\n let path = cx.getters.toBrowserPath(url);\n url = Utils.toAbsolute(url, cx.state.url);\n\n // Load the root catalog data if not available (e.g. after page refresh or external access)\n if (!loadRoot && path !== '/' && cx.state.catalogUrl && !cx.getters.getStac(cx.state.catalogUrl)) {\n await cx.dispatch(\"load\", { url: cx.state.catalogUrl, loadApi: true, loadRoot: true });\n }\n\n if (force) {\n cx.commit('clear', url);\n }\n\n let loading = new Loading(show, loadApi);\n let data = cx.state.database[url];\n if (data instanceof Loading) {\n cx.commit('updateLoading', { url, show, loadApi });\n return;\n }\n else if (!data || (data instanceof STAC && data.isPotentiallyIncomplete())) {\n cx.commit('loading', { url, loading });\n try {\n let response = await stacRequest(cx, url);\n if (!Utils.isObject(response.data)) {\n throw new BrowserError(i18n.t('errors.invalidJsonObject'));\n }\n data = new STAC(response.data, url, path);\n if (show) {\n // If we prefer another language abort redirect to the new language\n let localeLink = data.getLocaleLink(cx.state.dataLanguage);\n if (localeLink) {\n router.replace(cx.getters.toBrowserPath(localeLink.href));\n return;\n }\n }\n\n cx.commit('loaded', { url, data });\n\n if (!cx.getters.root) {\n let root = data.getLinkWithRel('root');\n if (root) {\n cx.commit('config', { catalogUrl: Utils.toAbsolute(root.href, url) });\n }\n }\n\n let conformanceLink = data.getStacLinkWithRel('conformance');\n if (Array.isArray(data.conformsTo) && data.conformsTo.length > 0) {\n cx.commit('setConformanceClasses', data.conformsTo);\n }\n else if (conformanceLink) {\n await cx.dispatch('loadOgcApiConformance', conformanceLink);\n }\n } catch (error) {\n if (cx.state.authConfig && isAuthenticationError(error)) {\n cx.commit('clear', url);\n cx.commit('requestAuth', () => cx.dispatch('load', args));\n return;\n }\n console.error(error);\n cx.commit('errored', { url, error });\n }\n }\n\n if (loading.loadApi && data instanceof STAC) {\n // Load API Collections\n if (data.getApiCollectionsLink()) {\n let args = { stac: data, show: loading.show };\n try {\n await cx.dispatch('loadNextApiCollections', args);\n } catch (error) {\n if (cx.state.authConfig && isAuthenticationError(error)) {\n cx.commit('requestAuth', () => cx.dispatch('loadNextApiCollections', args));\n }\n else {\n cx.commit('showGlobalError', {\n message: i18n.t('errors.loadApiCollectionsFailed'),\n error\n });\n }\n }\n }\n // Load API Items\n if (data.getApiItemsLink()) {\n let args = { stac: data, show: loading.show };\n try {\n await cx.dispatch('loadApiItems', args);\n } catch (error) {\n if (cx.state.authConfig && isAuthenticationError(error)) {\n cx.commit('requestAuth', () => cx.dispatch('loadApiItems', args));\n }\n else {\n cx.commit('showGlobalError', {\n message: i18n.t('errors.loadApiItemsFailed'),\n error\n });\n }\n }\n }\n }\n\n if (loading.show) {\n cx.commit('showPage', { url });\n }\n },\n async loadApiItems(cx, { link, stac, show, filters }) {\n let collectionId = stac instanceof STAC ? stac.id : '';\n cx.commit('toggleApiItemsLoading', collectionId);\n\n try {\n let baseUrl = cx.state.url;\n if (stac instanceof STAC) {\n link = stac.getApiItemsLink();\n baseUrl = stac.getAbsoluteUrl();\n }\n\n link = Utils.addFiltersToLink(link, filters, cx.state.itemsPerPage);\n\n let response = await stacRequest(cx, link);\n if (!Utils.isObject(response.data) || !Array.isArray(response.data.features)) {\n throw new BrowserError(i18n.t('errors.invalidStacItems'));\n }\n else {\n response.data.features = response.data.features.map(item => {\n try {\n if (!Utils.isObject(item) || item.type !== 'Feature') {\n return null;\n }\n let selfLink = Utils.getLinkWithRel(item.links, 'self');\n let url;\n if (selfLink?.href) {\n url = Utils.toAbsolute(selfLink.href, baseUrl);\n }\n else if (typeof item.id !== 'undefined') {\n let apiCollectionsLink = cx.getters.root?.getApiCollectionsLink();\n if (baseUrl) {\n url = Utils.toAbsolute(`items/${item.id}`, baseUrl);\n }\n else if (apiCollectionsLink) {\n url = Utils.toAbsolute(`${collectionId}/items/${item.id}`, apiCollectionsLink.href);\n }\n else if (cx.state.catalogUrl) {\n url = Utils.toAbsolute(`collections/${collectionId}/items/${item.id}`, cx.state.catalogUrl);\n }\n else {\n return null;\n }\n }\n else {\n return null;\n }\n let data = cx.getters.getStac(url);\n if (data) {\n return data;\n }\n else {\n data = new STAC(item, url, cx.getters.toBrowserPath(url));\n data.markPotentiallyIncomplete();\n cx.commit('loaded', { data, url });\n return data;\n }\n } catch (error) {\n console.error(error);\n return null;\n }\n }).filter(item => item instanceof STAC);\n if (show) {\n cx.commit('setApiItemsLink', link);\n }\n cx.commit('setApiItems', { data: response.data, stac, show });\n cx.commit('toggleApiItemsLoading', collectionId);\n return response;\n }\n } catch (error) {\n cx.commit('toggleApiItemsLoading', collectionId);\n throw error;\n }\n },\n async loadNextApiCollections(cx, { stac, show }) {\n let link;\n if (stac) {\n // First page\n if (cx.state.apiCollections.length > 0) {\n // If we have already loaded collections, skip loading the first page\n return;\n }\n link = stac.getLinkWithRel('data');\n }\n else {\n // Second page and after\n stac = cx.state.data;\n link = cx.state.nextCollectionsLink;\n }\n if (!link) {\n return;\n }\n let response = await stacRequest(cx, link);\n if (!Utils.isObject(response.data) || !Array.isArray(response.data.collections)) {\n throw new BrowserError(i18n.t('errors.invalidStacCollections'));\n }\n else {\n response.data.collections = response.data.collections.map(collection => {\n let selfLink = Utils.getLinkWithRel(collection.links, 'self');\n let url;\n if (selfLink?.href) {\n url = Utils.toAbsolute(selfLink.href, cx.state.url || stac.getAbsoluteUrl());\n }\n else {\n url = Utils.toAbsolute(`collections/${collection.id}`, cx.state.catalogUrl || stac.getAbsoluteUrl());\n }\n let data = cx.getters.getStac(url);\n if (data) {\n return data;\n }\n else {\n data = new STAC(collection, url, cx.getters.toBrowserPath(url));\n data.markPotentiallyIncomplete();\n cx.commit('loaded', { data, url });\n return data;\n }\n });\n cx.commit('addApiCollections', { data: response.data, stac, show });\n }\n },\n async loadOgcApiConformance(cx, link) {\n let response = await stacRequest(cx, link);\n if (Utils.isObject(response.data) && Array.isArray(response.data.conformsTo)) {\n cx.commit('setConformanceClasses', response.data.conformsTo);\n }\n },\n async loadGeoJson(cx, link) {\n try {\n let response = await stacRequest(cx, link);\n return response.data; // Use data with $refs included as fallback anyway\n } catch (error) {\n return null;\n }\n },\n async retryAfterAuth(cx) {\n let errorFn = error => cx.commit('showGlobalError', {\n error,\n message: i18n.t('errors.authFailed')\n });\n\n for (let callback of cx.state.doAuth) {\n try {\n let p = callback();\n if (p instanceof Promise) {\n p.catch(errorFn);\n }\n } catch (error) {\n errorFn(error);\n }\n }\n },\n async validate(cx, url) {\n if (typeof cx.state.valid === 'boolean') {\n return;\n }\n try {\n let uri = URI('https://api.staclint.com/url');\n uri.addSearch('stac_url', url);\n let response = await axios.get(uri.toString());\n cx.commit('valid', Boolean(response.data?.body?.valid_stac));\n } catch (error) {\n cx.commit('valid', error);\n }\n }\n },\n });\n}\n\nexport default getStore;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-row',[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('Source',{staticClass:\"float-right\",attrs:{\"title\":_vm.title,\"stacUrl\":_vm.url,\"stac\":_vm.data}}),_c('h1',[(_vm.icon)?[_c('img',{staticClass:\"icon mr-2\",attrs:{\"src\":_vm.icon.href,\"alt\":_vm.icon.title,\"title\":_vm.icon.title}})]:_vm._e(),_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.title))])],2),(_vm.url || _vm.isSearchPage())?_c('p',{staticClass:\"lead\"},[(_vm.containerLink)?_c('i18n',{staticClass:\"in mr-3\",attrs:{\"tag\":\"span\",\"path\":\"in\"},scopedSlots:_vm._u([{key:\"catalog\",fn:function(){return [_c('StacLink',{attrs:{\"data\":_vm.containerLink}})]},proxy:true}],null,false,1458487365)}):_vm._e(),_c('b-button-group',[(_vm.parentLink)?_c('b-button',{attrs:{\"to\":_vm.toBrowserPath(_vm.parentLink.href),\"title\":_vm.parentLinkTitle,\"variant\":\"outline-primary\",\"size\":\"sm\"}},[_c('b-icon-arrow-90deg-up'),_vm._v(\" \"),_c('span',{staticClass:\"button-label prio\"},[_vm._v(_vm._s(_vm.$t('goToParent.label')))])],1):_vm._e(),(_vm.collectionLink)?_c('b-button',{attrs:{\"to\":_vm.toBrowserPath(_vm.collectionLink.href),\"title\":_vm.collectionLinkTitle,\"variant\":\"outline-primary\",\"size\":\"sm\"}},[_c('b-icon-folder-symlink'),_vm._v(\" \"),_c('span',{staticClass:\"button-label prio\"},[_vm._v(_vm._s(_vm.$t('goToCollection.label')))])],1):_vm._e(),_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.sidebar\",modifiers:{\"sidebar\":true}}],attrs:{\"variant\":\"outline-primary\",\"size\":\"sm\",\"title\":_vm.$t('browse')},on:{\"click\":function($event){return _vm.$emit('enableSidebar')}}},[_c('b-icon-book'),_vm._v(\" \"),_c('span',{staticClass:\"button-label prio\"},[_vm._v(_vm._s(_vm.$t('browse')))])],1),(_vm.canSearch)?_c('b-button',{attrs:{\"variant\":\"outline-primary\",\"size\":\"sm\",\"to\":_vm.searchBrowserLink,\"title\":_vm.$t('search.title'),\"pressed\":_vm.isSearchPage()}},[_c('b-icon-search'),_vm._v(\" \"),_c('span',{staticClass:\"button-label prio\"},[_vm._v(_vm._s(_vm.$t('search.title')))])],1):_vm._e(),(_vm.authConfig)?_c('b-button',{attrs:{\"variant\":\"outline-primary\",\"size\":\"sm\",\"title\":_vm.$t('authentication.button.title')},on:{\"click\":_vm.auth}},[(_vm.authData)?[_c('b-icon-lock'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('authentication.button.authenticated')))])]:[_c('b-icon-unlock'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('authentication.button.authenticate')))])]],2):_vm._e()],1)],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"share mt-1\"},[_c('b-button-group',[(_vm.showRoot)?_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"outline-primary\",\"id\":\"popover-root-btn\"}},[_c('b-icon-box'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.rootTitle))])],1):_vm._e(),(_vm.stacUrl)?_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"outline-primary\",\"id\":\"popover-link-btn\",\"title\":_vm.$t('source.detailsAboutSource')}},[_c('b-icon-link'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('source.label')))])],1):_vm._e(),_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"outline-primary\",\"id\":\"popover-share-btn\",\"title\":_vm.$t('source.share.withOthers')}},[_c('b-icon-share'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('source.share.label')))])],1),_c('b-dropdown',{attrs:{\"size\":\"sm\",\"variant\":\"outline-primary\",\"right\":\"\",\"title\":_vm.$t('source.language.switch')},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('b-icon-flag'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('source.language.label', {currentLanguage: _vm.currentLanguage})))])]},proxy:true}])},_vm._l((_vm.languages),function(l){return _c('b-dropdown-item',{key:l.code,staticClass:\"lang-item\",on:{\"click\":function($event){return _vm.switchLocale({locale: l.code, userSelected: true})}}},[(_vm.locale === l.code)?_c('b-icon-check'):_c('b-icon-blank'),_c('span',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s(l.native)+\" \"),(l.global && l.global !== l.native)?[_vm._v(\" / \"+_vm._s(l.global))]:_vm._e()],2),(_vm.supportsLanguageExt && (!l.ui || !l.data))?_c('b-icon-exclamation-triangle',{staticClass:\"ml-2\",attrs:{\"title\":l.ui ? _vm.$t('source.language.onlyUI') : _vm.$t('source.language.onlyData')}}):_vm._e()],1)}),1)],1),(_vm.showRoot)?_c('b-popover',{attrs:{\"id\":\"popover-root\",\"target\":\"popover-root-btn\",\"triggers\":\"focus\",\"placement\":\"bottom\",\"container\":\"stac-browser\",\"title\":_vm.rootTitle}},[_c('RootStats')],1):_vm._e(),(_vm.stacUrl)?_c('b-popover',{attrs:{\"id\":\"popover-link\",\"target\":\"popover-link-btn\",\"triggers\":\"click\",\"placement\":\"bottom\",\"container\":\"stac-browser\",\"title\":_vm.$t('source.title')},on:{\"show\":_vm.validate}},[(_vm.stac)?[(_vm.stacId)?_c('b-row',{staticClass:\"stac-id\"},[_c('b-col',{attrs:{\"cols\":\"4\"}},[_vm._v(_vm._s(_vm.$t('source.id')))]),_c('b-col',[_c('code',[_vm._v(_vm._s(_vm.stacId))]),_c('CopyButton',{staticClass:\"ml-2\",attrs:{\"copyText\":_vm.stacId,\"button-props\":{size: 'sm'},\"variant\":\"primary\"}})],1)],1):_vm._e(),(_vm.stacVersion)?_c('b-row',{staticClass:\"stac-version\"},[_c('b-col',{attrs:{\"cols\":\"4\"}},[_vm._v(_vm._s(_vm.$t('source.stacVersion')))]),_c('b-col',[_vm._v(_vm._s(_vm.stacVersion))])],1):_vm._e(),(_vm.canValidate)?_c('b-row',{staticClass:\"validation\"},[_c('b-col',{attrs:{\"cols\":\"4\"}},[_vm._v(_vm._s(_vm.$t('source.valid')))]),_c('b-col',[(_vm.valid === null)?_c('b-spinner',{attrs:{\"label\":_vm.$t('source.validating'),\"small\":\"\"}}):(_vm.valid === true)?[_vm._v(\"✔️\")]:(_vm.valid === false)?[_vm._v(\"❌\")]:[_vm._v(_vm._s(_vm.$t('source.validationNA')))]],2)],1):_vm._e(),_c('hr')]:_vm._e(),_c('Url',{attrs:{\"id\":\"stacUrl\",\"url\":_vm.stacUrl,\"label\":_vm.$t('source.locatedAt')}})],2):_vm._e(),_c('b-popover',{attrs:{\"id\":\"popover-share\",\"target\":\"popover-share-btn\",\"triggers\":\"focus\",\"placement\":\"bottom\",\"container\":\"stac-browser\",\"title\":_vm.$t('source.share.title')}},[_c('Url',{attrs:{\"id\":\"browserUrl\",\"url\":_vm.browserUrl(),\"label\":_vm.$t('source.share.sharePageWithOthers'),\"open\":false}}),_c('hr'),_c('b-button',{staticClass:\"twitter mr-1\",attrs:{\"href\":_vm.twitterUrl}},[_c('b-icon-twitter'),_vm._v(\" \"+_vm._s(_vm.$t('source.share.twitter')))],1),_c('b-button',{attrs:{\"variant\":\"dark\",\"href\":_vm.mailTo}},[_c('b-icon-envelope'),_vm._v(\" \"+_vm._s(_vm.$t('source.share.email')))],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-form-group',{attrs:{\"label\":_vm.label,\"label-for\":_vm.id}},[_c('b-input-group',{attrs:{\"size\":\"sm\"}},[_c('b-form-input',{ref:\"input\",attrs:{\"id\":_vm.id,\"value\":_vm.url,\"readonly\":\"\"}}),_c('b-input-group-append',[_c('CopyButton',{attrs:{\"copyText\":_vm.url,\"variant\":\"primary\"}}),(_vm.open)?_c('b-button',{attrs:{\"href\":_vm.url,\"target\":\"_blank\",\"variant\":\"primary\",\"title\":_vm.$t('open')}},[_c('b-icon-arrow-up-right-square')],1):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Url.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Url.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Url.vue?vue&type=template&id=74684ede&scoped=true&\"\nimport script from \"./Url.vue?vue&type=script&lang=js&\"\nexport * from \"./Url.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Url.vue?vue&type=style&index=0&id=74684ede&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"74684ede\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Source.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Source.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Source.vue?vue&type=template&id=2542c9fa&scoped=true&\"\nimport script from \"./Source.vue?vue&type=script&lang=js&\"\nexport * from \"./Source.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Source.vue?vue&type=style&index=0&id=2542c9fa&prod&lang=scss&\"\nimport style1 from \"./Source.vue?vue&type=style&index=1&id=2542c9fa&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2542c9fa\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacHeader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacHeader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StacHeader.vue?vue&type=template&id=e9cfbf72&scoped=true&\"\nimport script from \"./StacHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./StacHeader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./StacHeader.vue?vue&type=style&index=0&id=e9cfbf72&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e9cfbf72\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacBrowser.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacBrowser.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StacBrowser.vue?vue&type=template&id=272308a9&\"\nimport script from \"./StacBrowser.vue?vue&type=script&lang=js&\"\nexport * from \"./StacBrowser.vue?vue&type=script&lang=js&\"\nimport style0 from \"./StacBrowser.vue?vue&type=style&index=0&id=272308a9&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\nimport StacBrowser from \"./StacBrowser.vue\";\nimport i18n, { loadDefaultMessages } from './i18n';\n\nexport default function init() {\n return loadDefaultMessages().then(() => {\n return new Vue({\n i18n,\n render: h => h(StacBrowser)\n }).$mount(\"#stac-browser\");\n });\n}\n","import Vue from \"vue\";\nimport init from \"./init\";\n\nVue.config.productionTip = false;\n\ninit();\n","import Utils, { geojsonMediaType } from \"../utils\";\nimport Migrate from '@radiantearth/stac-migrate';\nimport { getBest } from '../locale-id';\n\nlet stacObjCounter = 0;\n\n// STAC Entity\nclass STAC {\n\n constructor(data, url, path, migrate = true) {\n this._id = stacObjCounter++;\n this._url = url;\n this._path = path;\n this._apiChildrenListeners = {};\n this._incomplete = false;\n this._apiChildren = {\n list: [],\n prev: false,\n next: false\n };\n\n if (migrate) {\n // Uncomment this line if the old checksum: fields should be converted\n // This is usually not needed so it's not enabled by default to shrink the bundle size\n // Migrate.enableMultihash(require('multihashes'));\n if (data.type === 'FeatureCollection') {\n data.features = data.features.map(item => Migrate.item(item, false));\n }\n else {\n data = Migrate.stac(data, false);\n }\n }\n for (let key in data) {\n if (typeof this[key] === 'undefined') {\n this[key] = data[key];\n }\n }\n }\n\n isPotentiallyIncomplete() {\n return this._incomplete;\n }\n\n markPotentiallyIncomplete() {\n this._incomplete = true;\n }\n\n isItem() {\n return this.type === 'Feature';\n }\n\n isCatalog() {\n return this.type === 'Catalog';\n }\n\n isCatalogLike() {\n return this.isCatalog() || this.isCollection();\n }\n\n isCollection() {\n return this.type === 'Collection';\n }\n\n isItemCollection() {\n return this.type === 'FeatureCollection';\n }\n\n hasApiData() {\n return this._apiChildren.list.length > 0;\n }\n\n setApiDataListener(id, listener = null) {\n if (typeof listener === 'function') {\n this._apiChildrenListeners[id] = listener;\n }\n else {\n delete this._apiChildrenListeners[id];\n }\n }\n\n setApiData(list, next = null, prev = null) {\n if (prev) {\n this._apiChildren.prev = prev;\n }\n if (next) {\n this._apiChildren.next = next;\n }\n this._apiChildren.list = list;\n\n for (let id in this._apiChildrenListeners) {\n try {\n this._apiChildrenListeners[id](this._apiChildren);\n } catch (error) {\n console.error(error);\n }\n }\n }\n\n getFileFormats() {\n let assets = [];\n if ((this.isItem() || this.isCollection()) && Utils.isObject(this.assets)) {\n assets = assets.concat(Object.values(this.assets));\n }\n if (this.isCollection() && Utils.isObject(this.item_assets)) {\n assets = assets.concat(Object.values(this.item_assets));\n }\n return assets\n .filter(asset => Array.isArray(asset.roles) && asset.roles.includes('data') && typeof asset.type === 'string') // Look for data files\n .map(asset => asset.type) // Array shall only contain media types\n .filter((v, i, a) => a.indexOf(v) === i); // Unique values\n }\n\n getChildren(priority = null) {\n if (!this.isCatalogLike()) {\n return [];\n }\n\n let showCollections = !priority || priority === 'collections';\n let showChilds = !priority || priority === 'childs';\n\n let children = [];\n if (showCollections && this._apiChildren.prev) {\n children.push(this._apiChildren.prev);\n }\n if (showCollections && this._apiChildren.list.length > 0) {\n children = this._apiChildren.list.slice(0);\n }\n if (showChilds) {\n children = STAC.addMissingChildren(children, this).concat(this.getLinksWithRels(['item']));\n }\n if (showCollections && this._apiChildren.next) {\n children.push(this._apiChildren.next);\n }\n return children;\n }\n\n static addMissingChildren(catalogs, stac) {\n let links = stac.getStacLinksWithRel('child').filter(link => {\n // Don't add links that are already in collections: https://github.com/radiantearth/stac-browser/issues/103\n // ToDo: The runtime of this can probably be improved\n let absoluteUrl = Utils.toAbsolute(link.href, stac.getAbsoluteUrl());\n return !catalogs.find(collection => collection.getAbsoluteUrl() === absoluteUrl);\n });\n // place the children first to avoid conflicts with the paginated collections\n // where the children are always at the end and can never be reached due to infinite scrolling\n return links.concat(catalogs);\n }\n\n getSearchLink() {\n // The search link MUST be 'application/geo+json' as otherwise it's likely not STAC\n // See https://github.com/opengeospatial/ogcapi-features/issues/832\n let links = Utils.getLinksWithRels(this.links, ['search'])\n .filter(link => Utils.isMediaType(link.type, geojsonMediaType))\n .map(link => Object.assign({}, link, {href: Utils.toAbsolute(link.href, this._url)}));\n // Prefer POST if present\n let post = links.find(link => Utils.hasText(link.method) && link.method.toUpperCase() === 'POST');\n return post || links[0] || null;\n }\n\n getApiCollectionsLink() {\n return this.getStacLinkWithRel('data');\n }\n\n getApiItemsLink() {\n return this.getStacLinkWithRel('items');\n }\n\n getMetadata(field) {\n if (this.isItem()) {\n return this.properties[field];\n }\n else if (this.isCatalogLike()) {\n return this[field];\n }\n return null;\n }\n\n getBrowserPath() {\n return this._path;\n }\n\n getAbsoluteUrl() {\n return this._url;\n }\n\n getLocaleLink(locale, fallbackLocale = null) {\n let links = this.getStacLinksWithRel('alternate')\n .filter(link => Utils.hasText(link.hreflang));\n \n let available;\n if (Array.isArray(this.languages)) {\n available = this.languages.map(l => l.code);\n }\n else {\n available = links.map(link => link.hreflang);\n }\n \n let best = getBest(available, locale, fallbackLocale);\n return links.find(link => link.hreflang === best) || null;\n }\n\n getStacLinksWithRel(rel, allowEmpty = true) {\n return Utils.getLinksWithRels(this.links, [rel])\n .filter(link => Utils.isStacMediaType(link.type, allowEmpty));\n }\n\n getStacLinkWithRel(rel, allowEmpty = true) {\n const links = this.getStacLinksWithRel(rel, allowEmpty);\n if (links.length > 0) {\n return links[0];\n }\n else {\n return null;\n }\n }\n\n getLinkWithRel(rel) {\n return Utils.getLinkWithRel(this.links, rel);\n }\n\n getLinksWithRels(rels) {\n return Utils.getLinksWithRels(this.links, rels);\n }\n\n getLinksWithOtherRels(rels) {\n return Utils.getLinksWithOtherRels(this.links, rels);\n }\n\n getAssetsWithRoles(roles) {\n let matches = [];\n if (Utils.isObject(this.assets)) {\n for (let key in this.assets) {\n let asset = this.assets[key];\n if (Utils.isObject(asset) && typeof asset.href === 'string' && Array.isArray(asset.roles) && asset.roles.find(role => roles.includes(role))) {\n matches.push(asset);\n }\n }\n }\n return matches;\n }\n\n static getDisplayTitle(sources, fallbackTitle = null) {\n if (!Array.isArray(sources)) {\n sources = [sources];\n }\n let stac = sources.find(o => o instanceof STAC);\n let link = sources.find(o => Utils.isObject(o) && !(o instanceof STAC));\n // Get title from STAC item/catalog/collection\n if (stac && Utils.hasText(stac.getTitle())) {\n return stac.getTitle();\n }\n // Get title from link\n else if (link && Utils.hasText(link.title)) {\n return link.title;\n }\n // Use id from STAC item/catalog/collection instead of titles\n else if (stac && Utils.hasText(stac.id)) {\n return stac.id;\n }\n // Use fallback title\n else if (Utils.hasText(fallbackTitle)) {\n return fallbackTitle;\n }\n // Use file or directory name from STAC as title\n else if (stac) {\n return Utils.titleForHref(stac.getAbsoluteUrl(), true);\n }\n // Use file or directory name from link as title\n else if (link && Utils.hasText(link.href)) {\n return Utils.titleForHref(link.href, true);\n }\n // Nothing available, return \"untitled\"\n else {\n return \"Untitled\";\n }\n }\n\n getTitle() {\n return this.getMetadata(\"title\");\n }\n\n _linkToAbsolute(link) {\n return Object.assign({}, link, { href: Utils.toAbsolute(link.href, this.getAbsoluteUrl()) });\n }\n\n getIcons() {\n return this.getLinksWithRels(['icon'])\n .filter(img => Utils.canBrowserDisplayImage(img))\n .map(img => this._linkToAbsolute(img));\n }\n\n /**\n * Get the thumbnails from the assets and links in a STAC entity.\n * \n * @param {boolean} browserOnly - Return only images that can be shown in a browser natively (PNG/JPG/GIF/WEBP).\n * @param {?string} prefer - If not `null` (default), prefers a role over the other. Either `thumbnail` or `overview`.\n * @returns \n */\n getThumbnails(browserOnly = false, prefer = null) { // prefer can be either \n let thumbnails = this.getAssetsWithRoles(['thumbnail', 'overview']);\n // Get from links only if no assets are available as they should usually be the same as in assets\n if (thumbnails.length === 0) {\n thumbnails = this.getLinksWithRels(['preview']);\n }\n // Some old catalogs use just a asset key\n if (thumbnails.length === 0 && Utils.isObject(this.assets) && Utils.isObject(this.assets.thumbnail)) {\n thumbnails = [this.assets.thumbnail];\n }\n if (browserOnly) {\n // Remove all images that can't be displayed in a browser\n thumbnails = thumbnails.filter(img => Utils.canBrowserDisplayImage(img));\n }\n if (prefer && thumbnails.length > 1) {\n // Prefer one role over the other.\n // The two step approach with two filters ensures the same sort bevahiour across all browsers:\n // see https://github.com/radiantearth/stac-browser/issues/370\n let filter = img => img.roles.includes(prefer);\n thumbnails = thumbnails\n .filter(filter)\n .concat(thumbnails.filter(img => !filter(img)));\n }\n return thumbnails.map(img => this._linkToAbsolute(img));\n }\n\n equals(other) {\n if (!Utils.isObject(other)) {\n return false;\n }\n if (this === other) {\n return true;\n }\n if (this.id === other.id && this.type == other.type) {\n return true;\n }\n return false;\n }\n\n}\n\nexport default STAC;\n","// STAC relation types\n\n// STAC hierarchical\nexport const stacHierarchy = [\n 'child',\n 'collection',\n 'item',\n 'parent',\n 'root',\n 'self',\n];\n\n// STAC API Pagination\nexport const stacPagination = [\n 'first',\n 'last',\n 'next',\n 'prev',\n 'previous',\n];\n\n// Queryables\nexport const ogcQueryables = [\n 'queryables', // Old way in STAC (deprecated)\n 'http://www.opengis.net/def/rel/ogc/1.0/queryables', // STAC and OGC APIs\n 'ogc-rel:queryables' // Alternative in OGC APIs\n];\n\n// Rels that STAC Browser can navigate to and display natively (i.e. Collections, Catalogs and Items)\nexport const stacBrowserNavigatesTo = [\n 'canonical', // Links to other catalogs or items v\n 'related',\n 'derived_from',\n 'latest-version', // version extension v\n 'predecessor-version',\n 'successor-version',\n 'source', // label extension,\n 'alternate' // language extension\n].concat(stacHierarchy).concat(stacPagination);\n\n// Rels that are handled in a special way and should not be shown in the link list\nexport const stacBrowserSpecialHandling = [\n 'conformance', // API related v\n 'data',\n 'items',\n 'search',\n 'icon', // Other v\n 'license',\n].concat(stacHierarchy).concat(stacPagination).concat(ogcQueryables);\n\n// OGC APIs\nexport const ogcRelPrefix = 'http://www.opengis.net/def/rel/ogc/1.0/';\n","import axios from \"axios\";\nimport URI from \"urijs\";\nimport Utils from \"../utils\";\n\nexport class Loading {\n\n constructor(show = false, loadApi = false) {\n this.show = Boolean(show);\n this.loadApi = Boolean(loadApi);\n }\n\n}\n\nexport async function stacRequest(cx, link) {\n let opts;\n let headers = {\n 'Accept-Language': cx.getters.acceptedLanguages\n };\n if (Utils.isObject(link)) {\n let method = typeof link.method === 'string' ? link.method.toLowerCase() : 'get';\n let url = cx.getters.getRequestUrl(link.href);\n if (Utils.hasText(link.type)) {\n headers.Accept = link.type;\n }\n if (!cx.getters.isExternalUrl(url)) {\n Object.assign(headers, cx.state.requestHeaders);\n }\n if (Utils.isObject(link.headers)) {\n Object.assign(headers, link.headers);\n }\n opts = {\n method,\n url,\n headers,\n data: link.body\n // ToDo: Support for merge property from STAC API\n };\n }\n else if (typeof link === 'string') {\n let url = cx.getters.getRequestUrl(link);\n if (!cx.getters.isExternalUrl(url)) {\n Object.assign(headers, cx.state.requestHeaders);\n }\n opts = {\n method: 'get',\n url,\n headers\n };\n }\n else {\n opts = link;\n }\n return await axios(opts);\n}\n\n\nexport function unproxyUrl(absoluteUrl, proxy) {\n if (absoluteUrl instanceof URI) {\n absoluteUrl = absoluteUrl.toString();\n }\n if (typeof absoluteUrl === 'string' && Array.isArray(proxy)) {\n return absoluteUrl.replace(proxy[1], proxy[0]);\n }\n return absoluteUrl;\n}\n\nexport function proxyUrl(absoluteUrl, proxy) {\n if (absoluteUrl instanceof URI) {\n absoluteUrl = absoluteUrl.toString();\n }\n if (typeof absoluteUrl === 'string' && Array.isArray(proxy)) {\n return absoluteUrl.replace(proxy[0], proxy[1]);\n }\n return absoluteUrl;\n}\n\nexport function processSTAC(state, stac) {\n if (typeof state.preprocessSTAC === 'function') {\n stac = state.preprocessSTAC(stac, state);\n }\n return Object.freeze(stac);\n}\n\nexport function isAuthenticationError(error) {\n return [401, 403].includes(error?.response?.status);\n}\n\nexport function addQueryIfNotExists(uri, query) {\n if (Utils.size(query) == 0) {\n return uri;\n }\n for (let key in query) {\n if (!uri.hasQuery(key)) {\n uri.addQuery(key, query[key]);\n }\n }\n return uri;\n}","import URI from 'urijs';\nimport removeMd from 'remove-markdown';\nimport { stacPagination } from \"./rels\";\n\nexport const commonFileNames = ['catalog', 'collection', 'item'];\n\nexport const geojsonMediaType = \"application/geo+json\";\n\nexport const schemaMediaType = \"application/schema+json\";\n\nexport const stacMediaTypes = [\n 'application/json',\n geojsonMediaType,\n 'text/json'\n];\n\nexport const browserImageTypes = [\n 'image/gif',\n 'image/jpg',\n 'image/jpeg',\n 'image/apng',\n 'image/png',\n 'image/webp'\n];\n\nexport const cogMediaTypes = [\n \"image/tiff; application=geotiff; profile=cloud-optimized\",\n \"image/vnd.stac.geotiff; cloud-optimized=true\"\n];\n\nexport const geotiffMediaTypes = [\n \"application/geotiff\",\n \"image/tiff; application=geotiff\",\n \"image/vnd.stac.geotiff\",\n].concat(cogMediaTypes);\n\nexport const browserProtocols = [\n 'http',\n 'https'\n];\n\nexport const imageMediaTypes = browserImageTypes.concat(geotiffMediaTypes);\nexport const mapMediaTypes = imageMediaTypes.concat([geojsonMediaType]);\n\nexport class BrowserError extends Error {\n constructor(message) {\n super(message);\n }\n}\n\n/**\n * General utilities\n * \n * @class\n */\nexport default class Utils {\n\n /**\n * Checks whether a variable is a real object or not.\n * \n * This is a more strict version of `typeof x === 'object'` as this example would also succeeds for arrays and `null`.\n * This function only returns `true` for real objects and not for arrays, `null` or any other data types.\n * \n * @param {*} obj - A variable to check.\n * @returns {boolean} - `true` is the given variable is an object, `false` otherwise.\n */\n static isObject(obj) {\n return (typeof obj === 'object' && obj === Object(obj) && !Array.isArray(obj));\n }\n\n /**\n * Computes the size of an array (number of array elements) or object (number of key-value-pairs).\n * \n * Returns 0 for all other data types.\n * \n * @param {*} obj \n * @returns {integer}\n */\n static size(obj) {\n if (typeof obj === 'object' && obj !== null) {\n if (Array.isArray(obj)) {\n return obj.length;\n }\n else {\n return Object.keys(obj).length;\n }\n }\n return 0;\n }\n\n static isStacMediaType(type, allowEmpty = false) {\n return Utils.isMediaType(type, stacMediaTypes, allowEmpty);\n }\n\n static isMediaType(type, types, allowEmpty = false) {\n if (!Array.isArray(types)) {\n types = [types];\n }\n if (allowEmpty && !type) {\n return true;\n }\n else if (typeof type !== 'string') {\n return false;\n }\n else {\n return types.includes(type.toLowerCase());\n }\n }\n\n /**\n * Checks whether a variable is a string and contains at least one character.\n * \n * @param {*} string - A variable to check.\n * @returns {boolean} - `true` is the given variable is an string with length > 0, `false` otherwise.\n */\n static hasText(string) {\n return (typeof string === 'string' && string.length > 0);\n }\n\n static shortenTitle(fullStr, strLen, separator = '…') {\n if (fullStr.length <= strLen) {\n return fullStr;\n }\n\n let sepLen = separator.length;\n let charsToShow = strLen - sepLen;\n let frontChars = Math.ceil(charsToShow/2);\n let backChars = Math.floor(charsToShow/2);\n return fullStr.substr(0, frontChars) + \n separator + \n fullStr.substr(fullStr.length - backChars);\n }\n\n static isGdalVfsUri(url) {\n return typeof url === 'string' && url.startsWith('/vsi') && !url.startsWith('/vsicurl/');\n }\n\n static toAbsolute(href, baseUrl, stringify = true) {\n return Utils.normalizeUri(href, baseUrl, false, stringify);\n }\n\n static normalizeUri(href, baseUrl = null, noParams = false, stringify = true) {\n // Convert vsicurl URLs to normal URLs\n if (typeof href === 'string' && href.startsWith('/vsicurl/')) {\n href = href.replace(/^\\/vsicurl\\//, '');\n }\n // Parse URL and make absolute, if required\n let uri = URI(href);\n // Don't convert GDAL VFS URIs: https://github.com/radiantearth/stac-browser/issues/116\n if (baseUrl && uri.is(\"relative\") && !Utils.isGdalVfsUri(href)) {\n uri = uri.absoluteTo(baseUrl);\n }\n uri.normalize();\n if (noParams) {\n uri.query(\"\");\n uri.fragment(\"\");\n }\n return stringify ? uri.toString() : uri;\n }\n\n static getLinkWithRel(links, rel) {\n return Array.isArray(links) ? links.find(link => Utils.isObject(link) && Utils.hasText(link.href) && link.rel === rel) : null;\n }\n\n static getLinksWithRels(links, rels) {\n return Array.isArray(links) ? links.filter(link => Utils.isObject(link) && Utils.hasText(link.href) && rels.includes(link.rel)) : [];\n }\n\n static getLinksWithOtherRels(links, rels) {\n return Array.isArray(links) ? links.filter(link => Utils.isObject(link) && Utils.hasText(link.href) && !rels.includes(link.rel)) : [];\n }\n\n static equalUrl(a, b) {\n try {\n let uri1 = URI(a);\n let uri2 = URI(b);\n // Ignore trailing slash in URL paths\n uri1.path(uri1.path().replace(/\\/$/, ''));\n uri2.path(uri2.path().replace(/\\/$/, ''));\n return uri1.equals(uri2);\n } catch (error) {\n return false;\n }\n }\n\n static summarizeMd(text, maxLength = null) {\n if (!Utils.hasText(text)) {\n return '';\n }\n // Best-effort approach to remove some CommonMark (Markdown).\n // Likely not perfect, but seems good enough for most cases.\n text = removeMd(text).replaceAll(/[\\r\\n]+/g, ' ');\n if (maxLength > 0 && text.length > maxLength) {\n text = text.substr(0, maxLength) + '…';\n }\n return text;\n }\n\n static scrollTo(el) {\n if (!el) {\n return;\n }\n var rect = el.getBoundingClientRect();\n var isVisible = rect.top < window.innerHeight && rect.bottom >= 0;\n if (!isVisible) {\n el.scrollIntoView({\n behavior: \"smooth\",\n block: \"start\"\n });\n }\n }\n\n // Convert from UTC to locale time (needed for vue2-datetimepicker)\n // see https://github.com/mengxiong10/vue2-datepicker/issues/388\n static dateFromUTC(dt) {\n if (dt instanceof Date) {\n const value = new Date(dt);\n const offset = value.getTimezoneOffset();\n dt = new Date(value.getTime() + offset * 60 * 1000);\n }\n return dt;\n }\n\n static dateToUTC(dt) {\n if (dt instanceof Date) {\n const offset = new Date().getTimezoneOffset();\n return new Date(dt.getTime() - offset * 60 * 1000);\n }\n return dt;\n }\n\n static formatDatetimeQuery(value) {\n return value.map(dt => {\n if (dt instanceof Date) {\n return dt.toISOString();\n }\n else if (dt) {\n return dt;\n }\n else {\n return '..';\n }\n }).join('/');\n }\n\n static getPaginationLinks(data) {\n let pages = {};\n if (Utils.isObject(data)) {\n let pageLinks = Utils.getLinksWithRels(data.links, stacPagination);\n for (let pageLink of pageLinks) {\n let rel = pageLink.rel === 'previous' ? 'prev' : pageLink.rel;\n pages[rel] = pageLink;\n }\n }\n return pages;\n }\n\n static addFiltersToLink(link, filters = {}, itemsPerPage = null) {\n let isEmpty = value => {\n return (value === null\n || (typeof value === 'number' && !Number.isFinite(value))\n || (typeof value === 'string' && value.length === 0)\n || (typeof value === 'object' && Utils.size(value) === 0));\n };\n\n if (!Utils.isObject(filters)) {\n filters = {};\n }\n else {\n filters = Object.assign({}, filters);\n }\n\n if (typeof filters.limit !== 'number' && typeof itemsPerPage === 'number') {\n filters.limit = itemsPerPage;\n }\n\n if (Utils.hasText(link.method) && link.method.toUpperCase() === 'POST') {\n let body = Object.assign({}, link.body);\n\n for (let key in filters) {\n let value = filters[key];\n if (isEmpty(value)) {\n delete body[key];\n continue;\n }\n\n if (key === 'datetime') {\n value = Utils.formatDatetimeQuery(value);\n }\n else if (key === 'filters') {\n Object.assign(body, value.toJSON());\n continue;\n }\n\n body[key] = value;\n }\n return Object.assign({}, link, { body });\n }\n else { // GET\n // Construct new link with search params\n let url = URI(link.href);\n\n for (let key in filters) {\n let value = filters[key];\n if (isEmpty(value)) {\n url.removeQuery(key);\n continue;\n }\n\n if (key === 'datetime') {\n value = Utils.formatDatetimeQuery(value);\n }\n else if (key === 'bbox') {\n value = value.join(',');\n }\n else if ((key === 'collections' || key === 'ids' || key === 'q')) {\n value = value.join(',');\n }\n else if (key === 'filters') {\n let params = value.toText();\n url.setQuery(params);\n continue;\n }\n\n url.setQuery(key, value);\n }\n\n return Object.assign({}, link, { href: url.toString() });\n }\n }\n\n static titleForHref(href, preferFileName = false) {\n let uri = URI(href);\n let auth = uri.authority();\n let file = uri.filename().replace(/^(.{1,})\\.\\w+$/, '$1');\n let dir = uri.directory().replace(/^\\//, '');\n if (auth && file && !preferFileName) {\n let path = uri.path().replace(/^\\//, '');\n if (auth === 'doi.org' && path.startsWith('10.')) {\n return `DOI ${path}`;\n }\n else {\n return `${file} (${auth})`;\n }\n }\n else if (file && !commonFileNames.includes(file)) {\n return file;\n }\n else if (auth) {\n return auth;\n }\n else if (dir) {\n return dir;\n }\n else {\n return href;\n }\n }\n\n static canBrowserDisplayImage(img) {\n if (typeof img.href !== 'string') {\n return false;\n }\n let uri = URI(img.href);\n let protocol = uri.protocol().toLowerCase();\n if (protocol && !browserProtocols.includes(protocol)) {\n return false;\n }\n else if (browserImageTypes.includes(img.type)) {\n return true;\n }\n else if (browserImageTypes.includes('image/' + uri.suffix().toLowerCase())) {\n return true;\n }\n else if (img.type) {\n return false;\n }\n else {\n return true; // If no img.type is given, try to load it anyway: https://github.com/radiantearth/stac-browser/issues/147\n }\n }\n\n // Gets the value at path of object.\n // Drop in replacement for lodash.get\n static getValueFromObjectUsingPath(object, path) {\n if (object === null || typeof object !== 'object') {\n return;\n }\n object = object[path[0]];\n if (typeof object !== 'undefined' && path.length > 1) {\n return this.getValueFromObjectUsingPath(object, path.slice(1));\n }\n return object;\n }\n\n static search(searchterm, target, and = true) {\n if (typeof searchterm !== 'string' || searchterm.length === 0) {\n return false;\n }\n if (Utils.isObject(target)) {\n target = Object.values(target);\n }\n else if (typeof target === 'string') {\n target = [target];\n }\n\n if (!Array.isArray(target)) {\n return false;\n }\n\n let splitChars = /[\\s.,;!&({[)}]]+/g;\n\n // Prepare search terms\n searchterm = searchterm.toLowerCase().split(splitChars);\n\n // Prepare text to search in\n target = target\n .filter(s => typeof s === 'string') // Remove non-strings\n .join(' ') // Merge into a single string\n .replace(splitChars, ' ') // replace split chars with white spaces\n .toLowerCase(); // Lowercase\n\n // Search with \"and\" or \"or\"\n let fn = and ? 'every' : 'some';\n return searchterm[fn](term => target.includes(term));\n }\n\n static createLink(href, rel) {\n return { href, rel };\n }\n\n static supportsExtension(data, pattern) {\n if (!Utils.isObject(data) || !Array.isArray(data['stac_extensions'])) {\n return false;\n }\n let regexp = new RegExp('^' + pattern.replaceAll('*', '[^/]+') + '$');\n return Boolean(data['stac_extensions'].find(uri => regexp.test(uri)));\n }\n\n /**\n * Deep merge two objects.\n * @param target\n * @param ...sources\n */\n static mergeDeep(target, ...sources) {\n if (!sources.length) {\n return target;\n }\n const source = sources.shift();\n\n if (Utils.isObject(target) && Utils.isObject(source)) {\n for (const key in source) {\n if (Utils.isObject(source[key])) {\n if (!target[key]) {\n Object.assign(target, { [key]: {} });\n }\n Utils.mergeDeep(target[key], source[key]);\n } else {\n Object.assign(target, { [key]: source[key] });\n }\n }\n }\n\n return Utils.mergeDeep(target, ...sources);\n }\n\n}","var map = {\n\t\"./de-CH/default.js\": [\n\t\t9665,\n\t\t7119,\n\t\t9665\n\t],\n\t\"./de/default.js\": [\n\t\t11929,\n\t\t7119,\n\t\t1929\n\t],\n\t\"./en/default.js\": [\n\t\t71358,\n\t\t1358\n\t],\n\t\"./es/default.js\": [\n\t\t10237,\n\t\t237\n\t],\n\t\"./fr-CA/default.js\": [\n\t\t70727,\n\t\t8096,\n\t\t727\n\t],\n\t\"./fr-CH/default.js\": [\n\t\t16437,\n\t\t8096,\n\t\t6437\n\t],\n\t\"./fr/default.js\": [\n\t\t55092,\n\t\t8096,\n\t\t5092\n\t],\n\t\"./it-CH/default.js\": [\n\t\t64739,\n\t\t5473,\n\t\t4739\n\t],\n\t\"./it/default.js\": [\n\t\t68144,\n\t\t5473,\n\t\t8144\n\t],\n\t\"./ro/default.js\": [\n\t\t91493,\n\t\t1493\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 50448;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./de-CH/config.json\": 13225,\n\t\"./de/config.json\": 27534,\n\t\"./en/config.json\": 78863,\n\t\"./es/config.json\": 25946,\n\t\"./fr-CA/config.json\": 44317,\n\t\"./fr-CH/config.json\": 78125,\n\t\"./fr/config.json\": 96727,\n\t\"./it-CH/config.json\": 6025,\n\t\"./it/config.json\": 62715,\n\t\"./ro/config.json\": 57031\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 82599;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"237\":\"088f29c9\",\"531\":\"e50613d4\",\"604\":\"734bbdd1\",\"624\":\"c61e2e5a\",\"727\":\"b0d7dd43\",\"796\":\"7f6c73c1\",\"833\":\"41ea4527\",\"1095\":\"a90e323c\",\"1198\":\"8d75deba\",\"1247\":\"a6db6509\",\"1358\":\"52fd3c69\",\"1364\":\"4e255109\",\"1374\":\"7d4415cb\",\"1493\":\"be46e4d0\",\"1514\":\"2a484198\",\"1929\":\"b7f67eab\",\"2005\":\"0062420b\",\"2184\":\"fdc4f0c6\",\"2380\":\"fbbc886b\",\"2407\":\"d1a62548\",\"2540\":\"2abe5443\",\"2588\":\"71e2ad8d\",\"2792\":\"96d8f5ad\",\"2815\":\"b406a8a8\",\"2968\":\"d335ab49\",\"3135\":\"70290c42\",\"3138\":\"c151eb76\",\"3154\":\"83e70a6b\",\"3628\":\"720978c7\",\"3669\":\"25ce579b\",\"3805\":\"342d7ff9\",\"4622\":\"1fe7c07f\",\"4739\":\"6bf73bc4\",\"4763\":\"77c0a023\",\"5092\":\"2e1ed9f7\",\"5260\":\"6132d987\",\"5473\":\"d0a5d181\",\"5607\":\"91d62c75\",\"5793\":\"731090db\",\"5972\":\"25977f56\",\"5998\":\"16142fd8\",\"6437\":\"4c8ef6f6\",\"6481\":\"2da48a38\",\"6553\":\"ea12aade\",\"6653\":\"b5a772ec\",\"6872\":\"38a2d766\",\"7053\":\"535b4c77\",\"7119\":\"79ae3c6c\",\"7191\":\"12aba673\",\"7245\":\"a71452db\",\"7257\":\"ed5bff34\",\"7710\":\"1bd3fb2f\",\"7848\":\"8e7a11a2\",\"8069\":\"170670d6\",\"8096\":\"b095b122\",\"8144\":\"fccff3a0\",\"8342\":\"1fa2741d\",\"8453\":\"11ac8f62\",\"8493\":\"90679e90\",\"8673\":\"bbd2c559\",\"8693\":\"7177a43e\",\"8770\":\"b4e42fc8\",\"9071\":\"88d00f41\",\"9090\":\"ef590db0\",\"9489\":\"ced0e5b3\",\"9539\":\"0c7b0d26\",\"9578\":\"7500538c\",\"9665\":\"e156817e\",\"9795\":\"077c2d89\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"604\":\"f849b3f1\",\"624\":\"6ad781a6\",\"1095\":\"0530e224\",\"1198\":\"5747ca0b\",\"1364\":\"a94c9ca6\",\"2588\":\"ac728857\",\"2815\":\"c9b64985\",\"3135\":\"32ec082e\",\"3154\":\"572c83fc\",\"3805\":\"4bc8c74b\",\"4622\":\"45781634\",\"5260\":\"72c8c98f\",\"5998\":\"4b50bc38\",\"7710\":\"f418fe25\",\"7848\":\"0780c10b\",\"8453\":\"6fac7cd8\",\"8493\":\"ea261962\",\"9795\":\"081b4583\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"@radiantearth/stac-browser:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/stac-browser/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"604\":1,\"624\":1,\"1095\":1,\"1198\":1,\"1364\":1,\"2588\":1,\"2815\":1,\"3135\":1,\"3154\":1,\"3805\":1,\"4622\":1,\"5260\":1,\"5998\":1,\"7710\":1,\"7848\":1,\"8453\":1,\"8493\":1,\"9795\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(1095 != chunkId) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk_radiantearth_stac_browser\"] = self[\"webpackChunk_radiantearth_stac_browser\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4998], function() { return __webpack_require__(23472); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["render","_vm","this","_c","_self","directives","name","rawName","value","load","expression","modifiers","class","classes","attrs","isList","hasImage","_b","staticClass","thumbnail","_e","data","catalog","fileFormats","length","description","deprecated","_v","_s","$t","_l","format","key","_f","temporalExtent","domProps","_t","staticRenderFns","components","StacLink","filters","summarize","text","Utils","summarizeMd","formatMediaType","shorten","mixins","ThumbnailCardMixin","StacFieldsMixin","formatTemporalExtent","props","type","Object","required","computed","mapGetters","push","getStac","_this$data","_this$data$extent","_this$data$extent$tem","isCollection","extent","temporal","interval","Array","isArray","getFileFormats","methods","visible","STAC","$store","commit","href","component","title","catalogCount","model","view","callback","$$v","isComplete","catalogs","sort","searchTerm","showPagination","ref","pagination","on","paginate","catalogView","loading","cardsComponent","tag","cardsComponentProps","scopedSlots","_u","fn","hasMore","loadMore","$event","toggle","id","BIconBricks","BIconListTask","String","default","selectedValue","$emit","ViewButtons","columns","get","state","cardViewMode","set","Catalog","Loading","Pagination","SearchBox","SortButtons","ViewMixin","collectionsOnly","Boolean","count","Number","mapState","$tc","values","some","link","map","stac","filter","haystack","keywords","concat","search","slice","a","b","getDisplayTitle","localeCompare","uiLanguage","reverse","created","cardViewSort","placement","$refs","topPagination","scrollTo","$el","copyColor","preventDefault","stopPropagation","copy","apply","arguments","buttonProps","copyIcon","BIconClipboard","BIconClipboardCheck","BIconClipboardX","copyText","variant","status","startsWith","focus","document","activeElement","Clipboard","error","console","setTimeout","compact","inline","markup","allowHTML","reader","commonmark","writer","safe","smart","parsed","parse","queued","isDeprecated","hasDescription","item","properties","datetime","Registry","require","formatTimestamp","start_datetime","end_datetime","hasText","items","itemCount","api","allowFilter","hasFilters","filtersOpen","filterCount","apiFilters","emitFilter","chunkedItems","showMore","BCollapse","BIconSearch","Item","SearchFilter","showFilters","chunkSize","shownItems","size","watch","mounted","reset","small","fill","stretch","top","first","prev","next","last","tooltip","attributes","icon","displayTitle","fallbackTitle","Function","button","icons","getIcons","find","o","isLink","isStacBrowserLink","isStacMediaType","allowExternalAccess","isExternalUrl","stacBrowserNavigatesTo","includes","rel","obj","to","isObject","assign","target","getBrowserPath","toBrowserPath","privateQueryParameters","uri","URI","addParameters","prefix","queryKey","hasQuery","addQuery","toString","getRequestUrl","fallback","module","exports","catalogUrl","catalogTitle","allowedDomains","detectLocaleFromBrowser","storeLocale","locale","fallbackLocale","supportedLocales","apiCatalogPriority","useTileLayerAsFallback","displayGeoTiffByDefault","buildTileUrlTemplate","asset","encodeURIComponent","stacProxyUrl","pathPrefix","historyMode","showThumbnailsAsAssets","stacLint","geoTiffResolution","redirectLegacyUrls","itemsPerPage","defaultThumbnailSize","maxPreviewsOnMap","crossOriginMedia","requestHeaders","requestQueryParameters","preprocessSTAC","authConfig","CQL_TEXT","CQL_JSON","CQL_ADV_COMPARISON","TYPES","Items","BasicFilters","CollectionIdFilter","ItemIdFilter","CqlFilters","Sort","FreeText","Global","Collections","conformances","canSort","supportsConformance","canFilterExtents","canFilterFreeText","cql","textMode","jsonMode","advancedComparison","functions","mixin","showThumbnail","isItem","thumbnails","getThumbnails","width","height","t","src","alt","crossorigin","right","blankColor","config","CONFIG_PATH","CONFIG_CLI","window","STAC_BROWSER_CONFIG","Vue","use","VueI18n","API_LANGUAGE_CONFORMANCE","LOCALE_CONFIG","loadLocaleConfig","CONFIG","messages","languages","i18n","loadDefaultMessages","Promise","all","loadMessages","async","mergeLocaleMessage","translateFields","vars","te","Fields","stringLocale","keywordPos","indexOf","keyword","substr","undefined","localeWithoutKeyword","parts","replace","split","language","shift","retVar","toLowerCase","pop","toUpperCase","country","script","substring","prepareSupported","supported","lgs","forEach","supportedLocale","Error","countries","firstCountry","main","lg","getBest","defaultLocale","getAnyCountry","doAuth","globalError","hideError","sidebar","displayCatalogTitle","browserVersion","proxy","isExternal","url","errorDescription","errorId","dismissible","message","tab","selectedAsset","dataChanged","hasAssets","assets","shownAssets","showAsset","additionalLinks","collectionLink","providers","ignoredMetadataFields","shownAssetsOnMap","shownBandsOnMap","selectedAssetKey","keys","thumbnailRefs","isThumbnail","tabs","bands","meta","toBrowserUrl","store","path","getters","location","origin","fragment","addSpatialCoverage","schema","bbox","spatialCoverage","geo","box","join","formatTemporalCoverage","dates","dt","makeAssets","contentUrl","toAbsolute","getAbsoluteUrl","encodingFormat","makeLinks","links","isBasedOn","fallbackDescription","makeProvider","role","p","roles","email","mail","stacType","container","collection","tc","inX","createBaseSchema","_data$getMetadata","thumbnailUrl","stacUrl","inLanguage","getMetadata","code","license","_data$getLinkWithRel","getLinkWithRel","copyrightHolder","producer","provider","creator","citation","identifier","dateCreated","dateModified","datePublished","expires","version","image","createCatalogSchema","parents","i","findIndex","_data$extent","_data$extent$temporal","_data$extent2","_data$extent2$spatial","temporalCoverage","spatial","associatedMedia","hasPart","dataset","isPartOf","createItemSchema","includedInDataCatalog","start","end","distribution","addSchemaToDocument","doc","element","getElementById","createElement","head","appendChild","innerText","JSON","stringify","AnonymizedNotice","Assets","BTabs","BTab","CollectionLink","Description","DeprecationNotice","Links","Map","Metadata","Providers","ReadMore","Thumbnails","ShowAssetMixin","immediate","handler","parentLink","cc","mixed","hasCatalogs","hasItems","empty","licenses","temporalExtents","linkPosition","hasThumbnails","mapData","hasItemAssets","item_assets","nextCollectionsLink","loadMoreCollections","isApi","itemPages","apiItemsLoading","paginateItems","filterItems","filtersShown","Catalogs","Keywords","formatLicense","formatTemporalExtents","stateQueryParameters","getApiItemsLoading","summaries","extents","pages","apiItemsPagination","apiItemsLink","addFiltersToLink","getApiItemsLink","features","rootLink","show","dispatch","$root","msg","ErrorAlert","isAxiosError","response","res","BrowserError","is","oldPath","redirectLegacyUrl","fromBrowserPath","loadApi","part","every","match","decode","newPath","$router","query","getRoutes","routes","Browse","route","params","pathMatch","loadParent","getStore","router","localDefaults","valid","localRequestQueryParameters","itemdef","apiItems","catalogDefaults","queue","authData","conformsTo","dataLanguage","dataLanguages","apiCollections","Vuex","strict","database","allowSelectCatalog","globalRequestQueryParameters","source","returnErrorObject","absoluteUrl","root","_state$data","isCatalog","_state$data2","isCatalogLike","_state$data3","_state$data4","_","_state$data5","getStacLinkWithRel","createLink","getLinksWithRels","segment","_state$data6","classRegexp","c","replaceAll","regexp","RegExp","supportsExtension","schemaUri","canSearch","canSearchCollections","canSearchItems","getStacLinksWithRel","hasCollections","getApiCollectionsLink","hasChilds","showCollections","showChilds","addMissingChildren","_state$data7","getLinksWithOtherRels","stacBrowserSpecialHandling","canBrowserDisplayImage","relative","absolute","unproxyUrl","relativeTo","protocol","authority","q","externalRE","endsWith","whitelist","domain","equals","relativeStr","baseUrl","addLocalQueryParams","proxyUrl","addQueryIfNotExists","acceptedLanguages","navigator","entries","l","mutations","setQueryParameter","delete","setRequestHeader","requestAuth","setAuthData","newState","updateState","openCollapsible","uid","idx","closeCollapsible","updateLoading","loaded","processSTAC","clear","resetCatalog","clearAll","resetPage","showPage","unshift","lang","errored","unqueue","splice","removeFromQueue","num","setConformanceClasses","setApiItemsLink","toggleApiItemsLoading","collectionId","setApiItems","feature","getPaginationLinks","setApiData","addApiCollections","collections","nextLink","resetApiItems","showGlobalError","actions","switchLocale","cx","userSelected","localStorage","setItem","dataLanguageCodes","dataLanguageFallback","setAuth","formatter","loadBackground","urls","promises","loadParents","parentStac","args","loadRoot","force","isPotentiallyIncomplete","stacRequest","localeLink","getLocaleLink","conformanceLink","isAuthenticationError","loadApiItems","selfLink","_cx$getters$root","apiCollectionsLink","markPotentiallyIncomplete","loadNextApiCollections","loadOgcApiConformance","loadGeoJson","retryAfterAuth","errorFn","catch","validate","_response$data","_response$data$body","addSearch","axios","body","valid_stac","isSearchPage","containerLink","parentLinkTitle","collectionLinkTitle","searchBrowserLink","auth","showRoot","rootTitle","currentLanguage","native","global","supportsLanguageExt","ui","stacId","stacVersion","canValidate","browserUrl","twitterUrl","mailTo","label","open","BFormGroup","BFormInput","BIconArrowUpRightSquare","BInputGroup","BInputGroupAppend","CopyButton","LANGUAGE_EXT","BDropdown","BDropdownItem","BIconBlank","BIconBox","BIconCheck","BIconEnvelope","BIconExclamationTriangle","BIconFlag","BIconLink","BIconShare","BIconTwitter","BPopover","RootStats","Url","_this$stac","stac_version","_this$stac2","host","hostname","newLang","alternate","uiSupported","dataSupported","mapActions","BIconArrow90degUp","BIconBook","BIconFolderSymlink","BIconLock","BIconUnlock","Source","dataLink","getSearchLink","equalUrl","currentRoute","AlertPlugin","ButtonGroupPlugin","ButtonPlugin","BadgePlugin","CardPlugin","LayoutPlugin","SpinnerPlugin","directive","VBToggle","VBVisible","VueRouter","mode","base","Props","Watchers","newValue","Authentication","Sidebar","StacHeader","onDataLoaded","catalogUrlFromVueX","detectLocaleFromBrowserFromVueX","fallbackLocaleFromVueX","supportedLocalesFromVueX","storeLocaleFromVueX","STAC_BROWSER_VERSION","setAttribute","I18N","$i18n","documentElement","deep","$route","duplicated","oldRoot","canChange","doReset","doSet","onReady","detectLocale","parseQuery","afterEach","from","resetOp","$on","showError","setInterval","getItem","best","_params$state","privateFromHash","hash","private","realKey","localRequest","init","then","h","StacBrowser","$mount","productionTip","stacObjCounter","constructor","migrate","_id","_url","_path","_apiChildrenListeners","_incomplete","_apiChildren","list","Migrate","isItemCollection","hasApiData","setApiDataListener","listener","v","getChildren","priority","children","isMediaType","geojsonMediaType","post","method","field","available","hreflang","allowEmpty","rels","getAssetsWithRoles","matches","sources","getTitle","titleForHref","_linkToAbsolute","img","browserOnly","prefer","other","stacHierarchy","stacPagination","ogcQueryables","ogcRelPrefix","opts","headers","Accept","freeze","_error$response","commonFileNames","schemaMediaType","stacMediaTypes","browserImageTypes","cogMediaTypes","geotiffMediaTypes","browserProtocols","imageMediaTypes","mapMediaTypes","super","types","string","shortenTitle","fullStr","strLen","separator","sepLen","charsToShow","frontChars","Math","ceil","backChars","floor","isGdalVfsUri","normalizeUri","noParams","absoluteTo","normalize","uri1","uri2","maxLength","removeMd","el","rect","getBoundingClientRect","isVisible","innerHeight","bottom","scrollIntoView","behavior","block","dateFromUTC","Date","offset","getTimezoneOffset","getTime","dateToUTC","formatDatetimeQuery","toISOString","pageLinks","pageLink","isEmpty","isFinite","limit","toJSON","removeQuery","toText","setQuery","preferFileName","file","filename","dir","directory","suffix","getValueFromObjectUsingPath","object","searchterm","and","splitChars","s","term","pattern","test","mergeDeep","webpackAsyncContext","req","__webpack_require__","resolve","e","ids","webpackContext","webpackContextResolve","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","call","m","deferred","O","result","chunkIds","notFulfilled","Infinity","fulfilled","j","r","n","getter","__esModule","d","leafPrototypes","getProto","getPrototypeOf","__proto__","ns","create","def","current","getOwnPropertyNames","definition","defineProperty","enumerable","f","chunkId","reduce","u","miniCssF","g","globalThis","hmd","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","done","needAttach","scripts","getElementsByTagName","getAttribute","charset","timeout","nc","onScriptComplete","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","bind","Symbol","toStringTag","nmd","paths","createStylesheet","fullhref","oldTag","reject","linkTag","onLinkComplete","errorType","realHref","err","request","insertBefore","nextSibling","findStylesheet","existingLinkTags","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/app.f8e1cff5.js","mappings":"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","sources":["webpack://@radiantearth/stac-browser/./src/components/Catalog.vue","webpack://@radiantearth/stac-browser/src/components/Catalog.vue","webpack://@radiantearth/stac-browser/./src/components/Catalog.vue?bc73","webpack://@radiantearth/stac-browser/./src/components/Catalog.vue?462e","webpack://@radiantearth/stac-browser/./src/components/Catalogs.vue","webpack://@radiantearth/stac-browser/./src/components/ViewButtons.vue","webpack://@radiantearth/stac-browser/src/components/ViewButtons.vue","webpack://@radiantearth/stac-browser/./src/components/ViewButtons.vue?386c","webpack://@radiantearth/stac-browser/./src/components/ViewButtons.vue?e0ba","webpack://@radiantearth/stac-browser/./src/components/ViewMixin.js","webpack://@radiantearth/stac-browser/src/components/Catalogs.vue","webpack://@radiantearth/stac-browser/./src/components/Catalogs.vue?404d","webpack://@radiantearth/stac-browser/./src/components/Catalogs.vue?cc1b","webpack://@radiantearth/stac-browser/./src/components/CopyButton.vue","webpack://@radiantearth/stac-browser/src/components/CopyButton.vue","webpack://@radiantearth/stac-browser/./src/components/CopyButton.vue?517d","webpack://@radiantearth/stac-browser/./src/components/CopyButton.vue?5144","webpack://@radiantearth/stac-browser/./src/components/Description.vue","webpack://@radiantearth/stac-browser/src/components/Description.vue","webpack://@radiantearth/stac-browser/./src/components/Description.vue?4800","webpack://@radiantearth/stac-browser/./src/components/Description.vue?234b","webpack://@radiantearth/stac-browser/./src/components/Item.vue","webpack://@radiantearth/stac-browser/src/components/Item.vue","webpack://@radiantearth/stac-browser/./src/components/Item.vue?dda3","webpack://@radiantearth/stac-browser/./src/components/Item.vue?9ab6","webpack://@radiantearth/stac-browser/./src/components/Items.vue","webpack://@radiantearth/stac-browser/src/components/Items.vue","webpack://@radiantearth/stac-browser/./src/components/Items.vue?b5a8","webpack://@radiantearth/stac-browser/./src/components/Items.vue?2880","webpack://@radiantearth/stac-browser/./src/components/Loading.vue","webpack://@radiantearth/stac-browser/src/components/Loading.vue","webpack://@radiantearth/stac-browser/./src/components/Loading.vue?c91b","webpack://@radiantearth/stac-browser/./src/components/Loading.vue?7ea9","webpack://@radiantearth/stac-browser/./src/components/Pagination.vue","webpack://@radiantearth/stac-browser/src/components/Pagination.vue","webpack://@radiantearth/stac-browser/./src/components/Pagination.vue?a825","webpack://@radiantearth/stac-browser/./src/components/Pagination.vue?c5cd","webpack://@radiantearth/stac-browser/./src/components/StacLink.vue","webpack://@radiantearth/stac-browser/src/components/StacLink.vue","webpack://@radiantearth/stac-browser/./src/components/StacLink.vue?1029","webpack://@radiantearth/stac-browser/./src/components/StacLink.vue?a103","webpack://@radiantearth/stac-browser/./config.js","webpack://@radiantearth/stac-browser/./src/components/ApiCapabilitiesMixin.js","webpack://@radiantearth/stac-browser/./src/components/StacFieldsMixin.js","webpack://@radiantearth/stac-browser/./src/components/ThumbnailCardMixin.js","webpack://@radiantearth/stac-browser/./src/config.js","webpack://@radiantearth/stac-browser/./src/i18n.js","webpack://@radiantearth/stac-browser/./src/locale-id.js","webpack://@radiantearth/stac-browser/./src/StacBrowser.vue","webpack://@radiantearth/stac-browser/./src/views/Browse.vue","webpack://@radiantearth/stac-browser/./src/components/ErrorAlert.vue","webpack://@radiantearth/stac-browser/src/components/ErrorAlert.vue","webpack://@radiantearth/stac-browser/./src/components/ErrorAlert.vue?ecab","webpack://@radiantearth/stac-browser/./src/components/ErrorAlert.vue?a728","webpack://@radiantearth/stac-browser/./src/views/Item.vue","webpack://@radiantearth/stac-browser/./src/components/ShowAssetMixin.js","webpack://@radiantearth/stac-browser/./src/schema-org.js","webpack://@radiantearth/stac-browser/src/views/Item.vue","webpack://@radiantearth/stac-browser/./src/views/Item.vue?f568","webpack://@radiantearth/stac-browser/./src/views/Item.vue?8b34","webpack://@radiantearth/stac-browser/./src/views/Catalog.vue","webpack://@radiantearth/stac-browser/src/views/Catalog.vue","webpack://@radiantearth/stac-browser/./src/views/Catalog.vue?2b5a","webpack://@radiantearth/stac-browser/./src/views/Catalog.vue?ddb4","webpack://@radiantearth/stac-browser/src/views/Browse.vue","webpack://@radiantearth/stac-browser/./src/views/Browse.vue?9d9c","webpack://@radiantearth/stac-browser/./src/views/Browse.vue?dda6","webpack://@radiantearth/stac-browser/./src/router/index.js","webpack://@radiantearth/stac-browser/./src/store/index.js","webpack://@radiantearth/stac-browser/./src/components/StacHeader.vue","webpack://@radiantearth/stac-browser/./src/components/Source.vue","webpack://@radiantearth/stac-browser/./src/components/Url.vue","webpack://@radiantearth/stac-browser/src/components/Url.vue","webpack://@radiantearth/stac-browser/./src/components/Url.vue?a566","webpack://@radiantearth/stac-browser/./src/components/Url.vue?ab5e","webpack://@radiantearth/stac-browser/src/components/Source.vue","webpack://@radiantearth/stac-browser/./src/components/Source.vue?ca2b","webpack://@radiantearth/stac-browser/./src/components/Source.vue?90bb","webpack://@radiantearth/stac-browser/src/components/StacHeader.vue","webpack://@radiantearth/stac-browser/./src/components/StacHeader.vue?f736","webpack://@radiantearth/stac-browser/./src/components/StacHeader.vue?4265","webpack://@radiantearth/stac-browser/src/StacBrowser.vue","webpack://@radiantearth/stac-browser/./src/StacBrowser.vue?22e4","webpack://@radiantearth/stac-browser/./src/StacBrowser.vue?36e0","webpack://@radiantearth/stac-browser/./src/init.js","webpack://@radiantearth/stac-browser/./src/main.js","webpack://@radiantearth/stac-browser/./src/models/stac.js","webpack://@radiantearth/stac-browser/./src/rels.js","webpack://@radiantearth/stac-browser/./src/store/utils.js","webpack://@radiantearth/stac-browser/./src/utils.js","webpack://@radiantearth/stac-browser/./src/locales/ lazy ^\\.\\/.*\\/default\\.js$ namespace object","webpack://@radiantearth/stac-browser/./src/locales/ sync ^\\.\\/.*\\/config\\.json$","webpack://@radiantearth/stac-browser/webpack/bootstrap","webpack://@radiantearth/stac-browser/webpack/runtime/chunk loaded","webpack://@radiantearth/stac-browser/webpack/runtime/compat get default export","webpack://@radiantearth/stac-browser/webpack/runtime/create fake namespace object","webpack://@radiantearth/stac-browser/webpack/runtime/define property getters","webpack://@radiantearth/stac-browser/webpack/runtime/ensure chunk","webpack://@radiantearth/stac-browser/webpack/runtime/get javascript chunk filename","webpack://@radiantearth/stac-browser/webpack/runtime/get mini-css chunk filename","webpack://@radiantearth/stac-browser/webpack/runtime/global","webpack://@radiantearth/stac-browser/webpack/runtime/harmony module decorator","webpack://@radiantearth/stac-browser/webpack/runtime/hasOwnProperty shorthand","webpack://@radiantearth/stac-browser/webpack/runtime/load script","webpack://@radiantearth/stac-browser/webpack/runtime/make namespace object","webpack://@radiantearth/stac-browser/webpack/runtime/node module decorator","webpack://@radiantearth/stac-browser/webpack/runtime/publicPath","webpack://@radiantearth/stac-browser/webpack/runtime/css loading","webpack://@radiantearth/stac-browser/webpack/runtime/jsonp chunk loading","webpack://@radiantearth/stac-browser/webpack/startup"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-card',{directives:[{name:\"b-visible\",rawName:\"v-b-visible.400\",value:(_vm.load),expression:\"load\",modifiers:{\"400\":true}}],class:_vm.classes,attrs:{\"no-body\":\"\",\"img-right\":_vm.isList}},[(_vm.hasImage)?_c('b-card-img-lazy',_vm._b({staticClass:\"thumbnail\",attrs:{\"offset\":\"200\"}},'b-card-img-lazy',_vm.thumbnail,false)):_vm._e(),_c('b-card-body',[_c('b-card-title',[_c('StacLink',{staticClass:\"stretched-link\",attrs:{\"data\":[_vm.data, _vm.catalog]}})],1),(_vm.data && (_vm.fileFormats.length > 0 || _vm.data.description || _vm.data.deprecated))?_c('b-card-text',{staticClass:\"intro\"},[(_vm.data.deprecated)?_c('b-badge',{staticClass:\"mr-1 mt-1 deprecated\",attrs:{\"variant\":\"warning\"}},[_vm._v(_vm._s(_vm.$t('deprecated')))]):_vm._e(),_vm._l((_vm.fileFormats),function(format){return _c('b-badge',{key:format,staticClass:\"mr-1 mt-1 fileformat\",attrs:{\"variant\":\"secondary\"}},[_vm._v(_vm._s(_vm._f(\"formatMediaType\")(format)))])}),_vm._v(\" \"+_vm._s(_vm._f(\"summarize\")(_vm.data.description))+\" \")],2):_vm._e(),(_vm.temporalExtent)?_c('b-card-text',{staticClass:\"datetime\"},[_c('small',{domProps:{\"innerHTML\":_vm._s(_vm.temporalExtent)}})]):_vm._e()],1),_c('b-card-footer',[_vm._t(\"footer\",null,{\"data\":_vm.data})],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Catalog.vue?vue&type=template&id=481d2869&\"\nimport script from \"./Catalog.vue?vue&type=script&lang=js&\"\nexport * from \"./Catalog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Catalog.vue?vue&type=style&index=0&id=481d2869&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{staticClass:\"catalogs mb-4\"},[_c('header',[_c('h2',{staticClass:\"title mr-2\"},[_vm._v(_vm._s(_vm.title))]),(_vm.catalogCount !== null)?_c('b-badge',{staticClass:\"mr-4\",attrs:{\"pill\":\"\",\"variant\":\"secondary\"}},[_vm._v(_vm._s(_vm.catalogCount))]):_vm._e(),_c('ViewButtons',{staticClass:\"mr-2\",model:{value:(_vm.view),callback:function ($$v) {_vm.view=$$v},expression:\"view\"}}),(_vm.isComplete && _vm.catalogs.length > 1)?_c('SortButtons',{model:{value:(_vm.sort),callback:function ($$v) {_vm.sort=$$v},expression:\"sort\"}}):_vm._e()],1),(_vm.isComplete && _vm.catalogs.length > 1)?_c('SearchBox',{staticClass:\"mt-1 mb-1\",attrs:{\"placeholder\":_vm.$t('catalogs.filterByTitle')},model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}}):_vm._e(),(_vm.showPagination)?_c('Pagination',{ref:\"topPagination\",attrs:{\"pagination\":_vm.pagination,\"placement\":\"top\"},on:{\"paginate\":_vm.paginate}}):_vm._e(),(_vm.searchTerm && _vm.catalogView.length === 0)?_c('b-alert',{attrs:{\"variant\":\"warning\",\"show\":\"\"}},[_vm._v(_vm._s(_vm.$t('catalogs.noMatches')))]):_vm._e(),_c('section',{staticClass:\"list\"},[(_vm.loading)?_c('Loading',{attrs:{\"fill\":\"\",\"top\":\"\"}}):_vm._e(),_c(_vm.cardsComponent,_vm._b({tag:\"component\"},'component',_vm.cardsComponentProps,false),_vm._l((_vm.catalogView),function(catalog){return _c('Catalog',{key:catalog.href,attrs:{\"catalog\":catalog},scopedSlots:_vm._u([{key:\"footer\",fn:function({data}){return [_vm._t(\"catalogFooter\",null,{\"data\":data})]}}],null,true)})}),1)],1),(_vm.showPagination)?_c('Pagination',{attrs:{\"pagination\":_vm.pagination},on:{\"paginate\":_vm.paginate}}):(_vm.hasMore)?_c('b-button',{directives:[{name:\"b-visible\",rawName:\"v-b-visible.300\",value:(_vm.loadMore),expression:\"loadMore\",modifiers:{\"300\":true}}],attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.loadMore}},[_vm._v(_vm._s(_vm.$t('catalogs.loadMore')))]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-button-group',{attrs:{\"title\":_vm.$t('view.title'),\"size\":\"sm\"}},[_c('b-button',{attrs:{\"title\":_vm.$t('view.tiles.title'),\"variant\":\"outline-primary\",\"pressed\":_vm.value === 'cards'},on:{\"click\":function($event){return _vm.toggle('cards')}}},[_c('b-icon-bricks'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('view.tiles.label')))])],1),_c('b-button',{attrs:{\"title\":_vm.$t('view.list.title'),\"variant\":\"outline-primary\",\"pressed\":_vm.value === 'list'},on:{\"click\":function($event){return _vm.toggle('list')}}},[_c('b-icon-list-task'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('view.list.label')))])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ViewButtons.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ViewButtons.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ViewButtons.vue?vue&type=template&id=6a51668d&\"\nimport script from \"./ViewButtons.vue?vue&type=script&lang=js&\"\nexport * from \"./ViewButtons.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import ViewButtons from './ViewButtons.vue';\n\nexport default {\n components: {\n ViewButtons\n },\n computed: {\n cardsComponent() {\n return (this.view === 'list') ? 'div' : 'b-card-group';\n },\n cardsComponentProps() {\n if (this.view === 'list') {\n return {\n class: [\n 'card-list'\n ]\n };\n }\n else {\n return {\n columns: true\n };\n }\n },\n view: {\n get() {\n return this.$store.state.cardViewMode;\n },\n set(cardViewMode) {\n this.$store.commit('config', { cardViewMode });\n }\n }\n }\n};","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalogs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalogs.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Catalogs.vue?vue&type=template&id=18cddb3a&\"\nimport script from \"./Catalogs.vue?vue&type=script&lang=js&\"\nexport * from \"./Catalogs.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-button',_vm._b({staticClass:\"copy-button\",attrs:{\"variant\":_vm.copyColor,\"title\":_vm.$t('copy')},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.copy.apply(null, arguments)}}},'b-button',_vm.buttonProps,false),[_c(_vm.copyIcon,{tag:\"component\"}),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CopyButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CopyButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CopyButton.vue?vue&type=template&id=033681c8&\"\nimport script from \"./CopyButton.vue?vue&type=script&lang=js&\"\nexport * from \"./CopyButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"styled-description\",class:{compact: _vm.compact, inline: _vm.inline},domProps:{\"innerHTML\":_vm._s(_vm.markup(_vm.description))}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Description.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Description.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Description.vue?vue&type=template&id=77c4c56a&\"\nimport script from \"./Description.vue?vue&type=script&lang=js&\"\nexport * from \"./Description.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Description.vue?vue&type=style&index=0&id=77c4c56a&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-card',{directives:[{name:\"b-visible\",rawName:\"v-b-visible.400\",value:(_vm.load),expression:\"load\",modifiers:{\"400\":true}}],staticClass:\"item-card\",class:{queued: !_vm.data, deprecated: _vm.isDeprecated, description: _vm.hasDescription},attrs:{\"no-body\":\"\"}},[(_vm.hasImage)?_c('b-card-img-lazy',_vm._b({staticClass:\"thumbnail\",attrs:{\"offset\":\"200\"}},'b-card-img-lazy',_vm.thumbnail,false)):_vm._e(),_c('b-card-body',[_c('b-card-title',[_c('StacLink',{staticClass:\"stretched-link\",attrs:{\"data\":[_vm.data, _vm.item]}})],1),(_vm.fileFormats.length > 0 || _vm.hasDescription || _vm.isDeprecated)?_c('b-card-text',{staticClass:\"intro\"},[(_vm.isDeprecated)?_c('b-badge',{staticClass:\"mr-1 mt-1 deprecated\",attrs:{\"variant\":\"warning\"}},[_vm._v(_vm._s(_vm.$t('deprecated')))]):_vm._e(),_vm._l((_vm.fileFormats),function(format){return _c('b-badge',{key:format,staticClass:\"mr-1 mt-1 fileformat\",attrs:{\"variant\":\"secondary\"}},[_vm._v(_vm._s(_vm._f(\"formatMediaType\")(format)))])}),(_vm.hasDescription)?[_vm._v(_vm._s(_vm._f(\"summarize\")(_vm.data.properties.description)))]:_vm._e()],2):_vm._e(),_c('b-card-text',[_c('small',{staticClass:\"text-muted\"},[(_vm.extent)?[_vm._v(_vm._s(_vm._f(\"formatTemporalExtent\")(_vm.extent)))]:(_vm.data && _vm.data.properties.datetime)?[_vm._v(_vm._s(_vm._f(\"formatTimestamp\")(_vm.data.properties.datetime)))]:[_vm._v(_vm._s(_vm.$t('items.noTime')))]],2)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Item.vue?vue&type=template&id=038776d6&\"\nimport script from \"./Item.vue?vue&type=script&lang=js&\"\nexport * from \"./Item.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Item.vue?vue&type=style&index=0&id=038776d6&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{staticClass:\"items mb-4\"},[_c('header',[_c('h2',{staticClass:\"title mr-2\"},[_vm._v(_vm._s(_vm.$tc('stacItem', _vm.items.length )))]),(_vm.itemCount !== null)?_c('b-badge',{staticClass:\"mr-4\",attrs:{\"pill\":\"\",\"variant\":\"secondary\"}},[_vm._v(_vm._s(_vm.itemCount))]):_vm._e(),(!_vm.api && _vm.items.length > 1)?_c('SortButtons',{model:{value:(_vm.sort),callback:function ($$v) {_vm.sort=$$v},expression:\"sort\"}}):_vm._e()],1),(_vm.showPagination)?_c('Pagination',{ref:\"topPagination\",attrs:{\"pagination\":_vm.pagination,\"placement\":\"top\"},on:{\"paginate\":_vm.paginate}}):_vm._e(),(_vm.allowFilter)?[(_vm.api)?_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.itemFilter\",modifiers:{\"itemFilter\":true}}],staticClass:\"mb-4 mt-2\",class:{'ml-3': _vm.showPagination},attrs:{\"variant\":_vm.hasFilters && !_vm.filtersOpen ? 'primary' : 'outline-primary'}},[_c('b-icon-search'),_vm._v(\" \"+_vm._s(_vm.filtersOpen ? _vm.$t('items.hideFilter') : _vm.$t('items.showFilter'))+\" \"),(_vm.hasFilters && !_vm.filtersOpen)?_c('b-badge',{attrs:{\"variant\":\"dark\"}},[_vm._v(_vm._s(_vm.filterCount))]):_vm._e()],1):_vm._e(),_c('b-collapse',{attrs:{\"id\":\"itemFilter\"},model:{value:(_vm.filtersOpen),callback:function ($$v) {_vm.filtersOpen=$$v},expression:\"filtersOpen\"}},[_c('SearchFilter',{attrs:{\"type\":\"Items\",\"title\":_vm.$t('items.filter'),\"parent\":_vm.stac,\"value\":_vm.apiFilters},on:{\"input\":_vm.emitFilter}})],1)]:_vm._e(),_c('section',{staticClass:\"list\"},[(_vm.loading)?_c('Loading',{attrs:{\"fill\":\"\",\"top\":\"\"}}):_vm._e(),(_vm.chunkedItems.length > 0)?_c('b-card-group',{attrs:{\"columns\":\"\"}},_vm._l((_vm.chunkedItems),function(item){return _c('Item',{key:item.href,attrs:{\"item\":item}})}),1):_c('b-alert',{attrs:{\"variant\":_vm.hasFilters ? 'warning' : 'info',\"show\":\"\"}},[(_vm.hasFilters)?[_vm._v(_vm._s(_vm.$t('search.noItemsFound')))]:[_vm._v(_vm._s(_vm.$t('items.noneAvailableForCollection')))]],2)],1),(_vm.showPagination)?_c('Pagination',{attrs:{\"pagination\":_vm.pagination},on:{\"paginate\":_vm.paginate}}):(_vm.hasMore)?_c('b-button',{directives:[{name:\"b-visible\",rawName:\"v-b-visible.300\",value:(_vm.showMore),expression:\"showMore\",modifiers:{\"300\":true}}],attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.showMore}},[_vm._v(_vm._s(_vm.$t('showMore')))]):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Items.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Items.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Items.vue?vue&type=template&id=b7e27f22&\"\nimport script from \"./Items.vue?vue&type=script&lang=js&\"\nexport * from \"./Items.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:_vm.classes},[_c('b-spinner',{attrs:{\"label\":_vm.$t('loading'),\"small\":_vm.small}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Loading.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Loading.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Loading.vue?vue&type=template&id=67931bb8&scoped=true&\"\nimport script from \"./Loading.vue?vue&type=script&lang=js&\"\nexport * from \"./Loading.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Loading.vue?vue&type=style&index=0&id=67931bb8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"67931bb8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-button-group',{class:_vm.classes},[_c('b-button',{attrs:{\"disabled\":!_vm.pagination.first,\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.paginate(_vm.pagination.first)}}},[_vm._v(_vm._s(_vm.$t('pagination.first')))]),_c('b-button',{attrs:{\"disabled\":!_vm.pagination.prev,\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.paginate(_vm.pagination.prev)}}},[_vm._v(_vm._s(_vm.$t('pagination.previous')))]),_c('b-button',{attrs:{\"disabled\":!_vm.pagination.next,\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.paginate(_vm.pagination.next)}}},[_vm._v(_vm._s(_vm.$t('pagination.next')))]),(_vm.pagination.last)?_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.paginate(_vm.pagination.last)}}},[_vm._v(_vm._s(_vm.$t('pagination.last')))]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Pagination.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Pagination.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Pagination.vue?vue&type=template&id=56aa2ed6&\"\nimport script from \"./Pagination.vue?vue&type=script&lang=js&\"\nexport * from \"./Pagination.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.component,_vm._b({tag:\"component\",staticClass:\"stac-link\",attrs:{\"title\":_vm.tooltip}},'component',_vm.attributes,false),[(_vm.icon)?[_c('img',{staticClass:\"icon mr-2\",attrs:{\"src\":_vm.icon.href,\"alt\":_vm.icon.title,\"title\":_vm.icon.title}})]:_vm._e(),_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.displayTitle))])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacLink.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacLink.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StacLink.vue?vue&type=template&id=935ce1da&\"\nimport script from \"./StacLink.vue?vue&type=script&lang=js&\"\nexport * from \"./StacLink.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = {\n catalogUrl: null,\n catalogTitle: \"STAC Browser\",\n allowExternalAccess: true, // Must be true if catalogUrl is not given\n allowedDomains: [],\n detectLocaleFromBrowser: true,\n storeLocale: true,\n locale: \"en\",\n fallbackLocale: \"en\",\n supportedLocales: [\n \"de\",\n// \"de-CH\",\n \"es\",\n \"en\",\n \"fr\",\n// \"fr-CA\",\n// \"fr-CH\",\n \"it\",\n// \"it-CH\",\n \"ro\"\n ],\n apiCatalogPriority: null,\n useTileLayerAsFallback: true,\n displayGeoTiffByDefault: false,\n buildTileUrlTemplate: ({href, asset}) => \"https://tiles.rdnt.io/tiles/{z}/{x}/{y}@2x?url=\" + encodeURIComponent(asset.href.startsWith(\"/vsi\") ? asset.href : href),\n stacProxyUrl: null,\n pathPrefix: \"/\",\n historyMode: \"history\",\n cardViewMode: \"cards\",\n cardViewSort: \"asc\",\n showThumbnailsAsAssets: false,\n stacLint: true,\n geoTiffResolution: 128,\n redirectLegacyUrls: false,\n itemsPerPage: 12,\n defaultThumbnailSize: null,\n maxPreviewsOnMap: 50,\n crossOriginMedia: null,\n requestHeaders: {},\n requestQueryParameters: {},\n preprocessSTAC: null,\n authConfig: null\n};\n","// Add deprecated CQL conformance classes for stac-fastapi:\n// https://github.com/stac-utils/stac-fastapi/issues/539\nconst CQL_TEXT = [\n 'https://api.stacspec.org/v1.*/item-search#filter:cql-text', // deprecated\n 'http://www.opengis.net/spec/cql2/1.*/conf/cql2-text'\n];\nconst CQL_JSON = [\n 'https://api.stacspec.org/v1.*/item-search#filter:cql-json', // deprecated\n 'http://www.opengis.net/spec/cql2/1.*/conf/cql2-json'\n];\n\nconst CQL_ADV_COMPARISON = ['http://www.opengis.net/spec/cql2/1.*/req/advanced-comparison-operators'];\n\nimport { mapGetters } from \"vuex\";\n\nexport const TYPES = {\n // OGC / STAC API - Features\n Items: {\n BasicFilters: [\n 'https://api.stacspec.org/v1.*/ogcapi-features',\n 'http://www.opengis.net/spec/ogcapi-features-1/1.*/conf/core'\n ],\n CollectionIdFilter: false,\n ItemIdFilter: false,\n // It seems some conformance classes use conf (correct) and some req (deprecated?) after the version number\n CqlFilters: ['http://www.opengis.net/spec/ogcapi-features-3/1.*/*/features-filter'],\n Sort: [\n 'https://api.stacspec.org/v1.*/ogcapi-features#sort',\n 'http://www.opengis.net/spec/ogcapi-records-1/1.*/conf/sorting'\n ],\n FreeText: ['https://api.stacspec.org/v1.*/ogcapi-features#free-text']\n },\n // STAC API - Item Search\n Global: {\n BasicFilters: true,\n CollectionIdFilter: true,\n ItemIdFilter: true,\n CqlFilters: ['https://api.stacspec.org/v1.*/item-search#filter'],\n Sort: ['https://api.stacspec.org/v1.*/item-search#sort'],\n FreeText: ['https://api.stacspec.org/v1.*/item-search#free-text']\n },\n // OGC / STAC API - Collections\n Collections: {\n BasicFilters: ['https://api.stacspec.org/v1.*/collection-search'],\n CollectionIdFilter: false,\n ItemIdFilter: false,\n CqlFilters: ['https://api.stacspec.org/v1.*/collection-search#filter'],\n Sort: ['https://api.stacspec.org/v1.*/collection-search#sort'],\n FreeText: ['https://api.stacspec.org/v1.*/collection-search#free-text']\n }\n};\n\nexport default {\n props: {\n type: {\n type: String,\n required: true\n }\n },\n computed: {\n ...mapGetters(['supportsConformance']),\n\n conformances() {\n return TYPES[this.type];\n },\n\n canSort() {\n return this.supportsConformance(this.conformances.Sort);\n },\n canFilterExtents() {\n return this.supportsConformance(this.conformances.BasicFilters);\n },\n canFilterFreeText() {\n return this.supportsConformance(this.conformances.FreeText);\n },\n cql() {\n if (!this.supportsConformance(this.conformances.CqlFilters)) {\n return null;\n }\n let textMode = this.supportsConformance(CQL_TEXT);\n let jsonMode = this.supportsConformance(CQL_JSON);\n if (!textMode && !jsonMode) {\n return null;\n }\n\n return {\n textMode,\n jsonMode,\n advancedComparison: this.supportsConformance(CQL_ADV_COMPARISON)\n };\n }\n }\n};\n","import { mapState } from 'vuex';\n\nexport default functions => {\n let mixin = {\n computed: {\n ...mapState(['uiLanguage'])\n },\n methods: {}\n };\n for(let name in functions) {\n let fn = functions[name];\n mixin.methods[name] = function() {\n // We call uiLanguage once so that it's a dependency for the computed property\n // which makes the computed property to re-render when uiLanguage changes.\n this.uiLanguage;\n return fn(...arguments);\n };\n }\n return mixin;\n};","import { mapState } from 'vuex';\n\nexport default {\n props: {\n showThumbnail: {\n type: Boolean,\n default: true\n }\n },\n computed: {\n ...mapState(['cardViewMode', 'crossOriginMedia', 'defaultThumbnailSize']),\n isList() {\n return this.data && !this.data.isItem() && this.cardViewMode === 'list';\n },\n hasImage() {\n return this.showThumbnail && this.thumbnail;\n },\n thumbnail() {\n if (this.data) {\n let thumbnails = this.data.getThumbnails(true, 'thumbnail');\n if (thumbnails.length > 0) {\n let t = thumbnails[0];\n let width, height;\n if (Array.isArray(t['proj:shape']) && t['proj:shape'].length === 2) {\n [height, width] = t['proj:shape'];\n }\n else if (Array.isArray(this.defaultThumbnailSize) && this.defaultThumbnailSize.length === 2) {\n [height, width] = this.defaultThumbnailSize;\n }\n return {\n src: t.href,\n alt: t.title,\n crossorigin: this.crossOriginMedia,\n right: this.isList,\n blankColor: \"rgba(0, 0, 0, 0.125)\",\n width,\n height,\n // for b-card-img-lazy\n \"blank-width\": width,\n \"blank-height\": height\n };\n }\n }\n return null;\n }\n }\n};","let config;\nif (typeof CONFIG_PATH === 'undefined') {\n config = require('../config');\n}\nelse {\n config = require(CONFIG_PATH);\n}\n\nexport default Object.assign(config, CONFIG_CLI, window.STAC_BROWSER_CONFIG);","import Vue from 'vue';\nimport VueI18n from 'vue-i18n';\nimport CONFIG from './config';\nimport {default as Fields} from '@radiantearth/stac-fields/I18N';\nimport Utils from './utils';\n\nVue.use(VueI18n);\n\nexport const API_LANGUAGE_CONFORMANCE = ['https://api.stacspec.org/v1.*/language'];\n\nconst LOCALE_CONFIG = {};\n\nfunction loadLocaleConfig() {\n // Load locale config\n for(let locale of CONFIG.supportedLocales) {\n LOCALE_CONFIG[locale] = require(`./locales/${locale}/config.json`);\n }\n const messages = {};\n // Add language names all other languages\n for(let locale in LOCALE_CONFIG) {\n messages[locale] = {\n languages: LOCALE_CONFIG\n };\n }\n return messages;\n}\n\nconst i18n = new VueI18n({\n locale: CONFIG.locale,\n fallbackLocale: CONFIG.fallbackLocale,\n messages: loadLocaleConfig()\n});\nexport default i18n;\n\nexport function loadDefaultMessages() {\n return Promise.all([\n loadMessages(CONFIG.locale),\n loadMessages(CONFIG.fallbackLocale)\n ]);\n}\n\nexport async function loadMessages(locale) {\n // Check whether the language has already been loaded\n // Note that a languages key is already present thus check >1 and not >0\n if (Utils.size(i18n.messages[locale]) > 1) {\n return;\n }\n const messages = (await import(`./locales/${locale}/default.js`)).default;\n i18n.mergeLocaleMessage(locale, messages);\n}\n\nexport function translateFields(value, vars = null) {\n if (typeof value !== 'string' || value.length === 0) {\n return value;\n }\n let key = `fields.${value}`;\n if (i18n.te(key)) {\n return i18n.t(key, null, vars);\n }\n return Fields.format(value, vars);\n}","// This code is based on https://github.com/cherry-projects/locale-id\n// Due to the \"heavy\" dependencies, it has been slimmed down\n\n// http://userguide.icu-project.org/locale\nexport default function parse(locale) {\n if (!locale) {\n return undefined;\n }\n\n // extract keyword\n const stringLocale = String(locale);\n const keywordPos = stringLocale.indexOf('@');\n\n const keyword = keywordPos !== -1\n ? stringLocale.substr(keywordPos + 1)\n : undefined;\n\n const localeWithoutKeyword = keywordPos !== -1\n ? stringLocale.substr(0, keywordPos)\n : stringLocale;\n\n // en-us => en_us\n const parts = String(localeWithoutKeyword)\n .replace(/-/g, '_')\n .split('_');\n\n if (!parts.length || parts.length > 4) {\n return undefined;\n }\n\n const language = parts.shift();\n if (!language) {\n return undefined;\n }\n\n const retVar = {\n keyword,\n language: language.toLowerCase(),\n };\n\n if (!parts.length) {\n return retVar;\n }\n\n if (parts.length === 3) {\n const variant = parts.pop();\n if (variant) {\n retVar.variant = variant.toUpperCase();\n }\n }\n\n let country = parts.pop();\n if (country.length > 3) {\n retVar.keyword = country;\n\n country = parts.pop();\n }\n\n if (country) {\n retVar.country = country.toUpperCase();\n }\n\n if (!parts.length) {\n return retVar;\n }\n\n const script = parts.pop();\n if (typeof script === 'string' && script.length >= 1) {\n retVar.script = script[0].toUpperCase() + script.substring(1).toLowerCase();\n }\n\n return retVar;\n}\n\nexport function normalize(locale, delimeter = '_') {\n const obj = parse(locale);\n if (!obj) {\n return obj;\n }\n\n let result = obj.language;\n\n if (obj.script) {\n result += `${delimeter}${obj.script}`;\n }\n\n if (obj.country) {\n result += `${delimeter}${obj.country}`;\n }\n\n return result;\n}\n\nconst splitAcceptLanguageRegEx = /([a-z]{1,8}(-[a-z]{1,8})?)\\s*(;\\s*q\\s*=\\s*(1|0\\.[0-9]+))?/ig;\nconst acceptLanguageItemRegEx = /^([a-z]{1,8}(-[a-z]{1,8})?)/i;\n\nexport function normalizeAcceptLanguage(acceptLanguage) {\n const returnItems = [];\n if (!acceptLanguage) {\n return returnItems;\n }\n\n const items = acceptLanguage.match(splitAcceptLanguageRegEx) || [];\n items.forEach(acceptLanguageItem => {\n const matches = acceptLanguageItem.match(acceptLanguageItemRegEx) || [];\n const locale = normalize(matches[0]);\n if (locale) {\n returnItems.push(locale);\n }\n });\n\n return returnItems;\n}\n\nexport function prepareSupported(supported) {\n const lgs = {};\n\n supported.forEach(supportedLocale => {\n const { language, country } = parse(supportedLocale);\n if (!language) {\n throw new Error(`Locale ${supportedLocale} is not parsable`);\n }\n\n if (!lgs[language]) {\n lgs[language] = {\n countries: {},\n firstCountry: undefined,\n main: undefined,\n };\n }\n\n const lg = lgs[language];\n if (country) {\n lg.countries[country] = supportedLocale;\n\n if (!lg.firstCountry) {\n lg.firstCountry = supportedLocale;\n }\n } else {\n lg.main = supportedLocale;\n }\n });\n\n return lgs;\n}\n\nexport function getBest(supported, locale, defaultLocale, getAnyCountry) {\n const lgs = Array.isArray(supported) ? prepareSupported(supported) : supported;\n\n // return defaultLocale if current locale is undefined\n if (!locale && defaultLocale) {\n return getBest(supported, defaultLocale, undefined, getAnyCountry);\n }\n\n if (!locale) {\n return undefined;\n }\n\n const { language, country } = parse(locale);\n if (!language) {\n return defaultLocale;\n }\n\n // selected locale is not supported\n if (!lgs[language]) {\n if (locale === defaultLocale) {\n return undefined;\n }\n\n return getBest(supported, defaultLocale, null, getAnyCountry);\n }\n\n const { countries, main = defaultLocale, firstCountry } = lgs[language];\n if (!countries || !country) {\n if (getAnyCountry && firstCountry) {\n return firstCountry;\n }\n\n return main;\n }\n\n if (getAnyCountry && firstCountry) {\n return countries[country] ? countries[country] : firstCountry;\n }\n\n return countries[country] ? countries[country] : main;\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-container',{attrs:{\"id\":\"stac-browser\"}},[(_vm.doAuth.length > 0)?_c('Authentication'):_vm._e(),(_vm.globalError)?_c('ErrorAlert',_vm._b({staticClass:\"global-error\",on:{\"close\":_vm.hideError}},'ErrorAlert',_vm.globalError,false)):_vm._e(),(_vm.sidebar)?_c('Sidebar'):_vm._e(),_c('header',[_c('div',{staticClass:\"logo\"},[_vm._v(_vm._s(_vm.displayCatalogTitle))]),_c('StacHeader',{on:{\"enableSidebar\":function($event){_vm.sidebar = true}}})],1),_c('router-view'),_c('footer',[_c('i18n',{staticClass:\"poweredby text-muted\",attrs:{\"tag\":\"small\",\"path\":\"poweredBy\"},scopedSlots:_vm._u([{key:\"link\",fn:function(){return [_c('a',{attrs:{\"href\":\"https://github.com/radiantearth/stac-browser\",\"target\":\"_blank\"}},[_vm._v(\"STAC Browser\")]),_vm._v(\" \"+_vm._s(_vm.browserVersion)+\" \")]},proxy:true}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('main',{staticClass:\"browse d-flex flex-column\"},[(!_vm.allowExternalAccess && _vm.isExternal)?_c('b-alert',{attrs:{\"show\":\"\"}},[_vm._v(_vm._s(_vm.$t('errors.noExternalAccess')))]):(_vm.error)?_c('ErrorAlert',{attrs:{\"dismissible\":false,\"url\":_vm.url,\"description\":_vm.errorDescription,\"id\":_vm.errorId}}):(_vm.loading)?_c('Loading',{attrs:{\"stretch\":\"\"}}):_c(_vm.component,{tag:\"component\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":\"\",\"dismissible\":_vm.dismissible},on:{\"dismissed\":function($event){return _vm.$emit('close')}}},[_c('p',{staticClass:\"message\"},[_vm._v(_vm._s(_vm.message || _vm.$t('errors.default')))]),(_vm.error && _vm.error.message)?_c('dl',{staticClass:\"error\"},[_c('dt',[_vm._v(_vm._s(_vm.$t('errors.labels.cause')))]),_c('dd',[_vm._v(_vm._s(_vm.error.message))])]):_vm._e(),(_vm.description)?_c('dl',{staticClass:\"description\"},[_c('dt',[_vm._v(_vm._s(_vm.$t('errors.labels.reason')))]),_c('dd',[_vm._v(_vm._s(_vm.description))])]):_vm._e(),(_vm.id)?_c('dl',{staticClass:\"id\"},[_c('dt',[_vm._v(_vm._s(_vm.$t('errors.labels.code')))]),_c('dd',[_c('code',[_vm._v(_vm._s(_vm.id))])])]):_vm._e(),(_vm.url)?_c('dl',{staticClass:\"url\"},[_c('dt',[_vm._v(_vm._s(_vm.$t('errors.labels.requestURL')))]),_c('dd',[_c('code',[_vm._v(_vm._s(_vm.url))])])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ErrorAlert.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ErrorAlert.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ErrorAlert.vue?vue&type=template&id=09bb7d1b&scoped=true&\"\nimport script from \"./ErrorAlert.vue?vue&type=script&lang=js&\"\nexport * from \"./ErrorAlert.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ErrorAlert.vue?vue&type=style&index=0&id=09bb7d1b&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"09bb7d1b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{key:_vm.data.id,staticClass:\"item\"},[_c('b-row',[_c('b-col',{staticClass:\"left\"},[_c('section',{staticClass:\"mb-4\"},[_c('b-card',{staticClass:\"maps-preview\",attrs:{\"no-body\":\"\"}},[_c('b-tabs',{ref:\"tabs\",attrs:{\"card\":\"\",\"pills\":\"\",\"vertical\":\"\",\"end\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('b-tab',{attrs:{\"title\":_vm.$t('map'),\"no-body\":\"\"}},[_c('Map',{attrs:{\"stac\":_vm.data,\"stacLayerData\":_vm.selectedAsset,\"scrollWheelZoom\":\"\"},on:{\"dataChanged\":_vm.dataChanged}})],1),(_vm.thumbnails.length > 0)?_c('b-tab',{attrs:{\"title\":_vm.$t('thumbnails'),\"no-body\":\"\"}},[_c('Thumbnails',{attrs:{\"thumbnails\":_vm.thumbnails}})],1):_vm._e()],1)],1)],1),(_vm.hasAssets)?_c('Assets',{attrs:{\"assets\":_vm.assets,\"context\":_vm.data,\"shown\":_vm.shownAssets},on:{\"showAsset\":_vm.showAsset}}):_vm._e(),(_vm.additionalLinks.length > 0)?_c('Links',{attrs:{\"title\":_vm.$t('additionalResources'),\"links\":_vm.additionalLinks}}):_vm._e()],1),_c('b-col',{staticClass:\"right\"},[_c('section',{staticClass:\"intro\"},[(_vm.data.properties.description)?_c('h2',[_vm._v(_vm._s(_vm.$t('description')))]):_vm._e(),(_vm.data.properties.deprecated)?_c('DeprecationNotice',{attrs:{\"data\":_vm.data}}):_vm._e(),(_vm.data.properties['anon:warning'])?_c('AnonymizedNotice',{attrs:{\"warning\":_vm.data.properties['anon:warning']}}):_vm._e(),(_vm.data.properties.description)?_c('ReadMore',{attrs:{\"lines\":10,\"text\":_vm.$t('read.more'),\"text-less\":_vm.$t('read.less')}},[_c('Description',{attrs:{\"description\":_vm.data.properties.description}})],1):_vm._e(),(Array.isArray(_vm.data.properties.keywords) && _vm.data.properties.keywords.length > 0)?_c('Keywords',{attrs:{\"keywords\":_vm.data.properties.keywords}}):_vm._e()],1),(_vm.collectionLink)?_c('CollectionLink',{attrs:{\"link\":_vm.collectionLink}}):_vm._e(),(_vm.data.properties.providers)?_c('Providers',{attrs:{\"providers\":_vm.data.properties.providers}}):_vm._e(),_c('Metadata',{attrs:{\"data\":_vm.data,\"type\":\"Item\",\"ignoreFields\":_vm.ignoredMetadataFields}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Utils from '../utils';\nimport { mapGetters } from 'vuex';\n\nexport default {\n data() {\n return {\n shownAssetsOnMap: [],\n shownBandsOnMap: [],\n tab: null,\n selectedAsset: null,\n selectedAssetKey: null\n };\n },\n computed: {\n ...mapGetters(['thumbnails', 'hasAssets', 'assets']),\n shownAssets() {\n if (this.tab === 0) {\n return this.shownAssetsOnMap;\n }\n else if (this.tab === 1 || (this.tab === null && this.thumbnails.length > 0)) {\n let keys = [];\n let thumbnailRefs = this.thumbnails.map(t => t.href);\n for(let key in this.assets) {\n let asset = this.assets[key];\n if (thumbnailRefs.includes(asset.href)) {\n keys.push(key);\n }\n }\n return keys;\n }\n return [];\n }\n },\n methods: {\n showAsset(asset, id, isThumbnail) {\n if (isThumbnail) {\n this.tab = 1;\n }\n else {\n this.tab = 0;\n this.selectedAsset = asset;\n this.selectedAssetKey = id;\n }\n if (this.$refs.tabs) {\n Utils.scrollTo(this.$refs.tabs.$el);\n }\n },\n dataChanged(data) {\n if (!Utils.isObject(data)) {\n this.shownBandsOnMap = [];\n this.shownAssetsOnMap = [];\n }\n else if (data.assets || data.bands) {\n if (Utils.size(data.assets) > 0) {\n if (this.selectedAssetKey) {\n this.shownAssetsOnMap = [this.selectedAssetKey];\n }\n else {\n this.shownAssetsOnMap = data.assets.map(meta => meta.key);\n }\n }\n if (Utils.size(data.bands) > 0) {\n this.shownBandsOnMap = data.bands;\n }\n }\n else if (this.selectedAssetKey) {\n this.shownAssetsOnMap = [this.selectedAssetKey];\n }\n }\n }\n};","import Utils from './utils';\nimport STAC from './models/stac';\nimport URI from 'urijs';\nimport i18n from './i18n';\n\nfunction toBrowserUrl(url, store) {\n let path = store.getters.toBrowserPath(url);\n let uri = URI(window.location.origin.toString());\n if (store.state.historyMode === 'hash') {\n uri.path(store.state.pathPrefix);\n uri.fragment(path);\n }\n else {\n uri.path(store.state.pathPrefix.replace(/\\/$/, '') + path);\n }\n return uri.toString();\n}\n\nfunction addSpatialCoverage(schema, bbox) {\n if (Array.isArray(bbox) && bbox.length >= 4) {\n schema.spatialCoverage = {\n \"@type\": \"Place\",\n geo: {\n \"@type\": \"GeoShape\",\n box: (bbox || []).join(\" \")\n }\n };\n }\n}\n\nfunction formatTemporalCoverage(dates) {\n if (Array.isArray(dates) && dates.length === 2 && (typeof dates[0] === 'string' || typeof dates[1] === 'string')) {\n return dates.map(dt => dt ? dt : '..').join('/');\n }\n return null;\n}\n\nfunction makeAssets(data) {\n if (Utils.size(data.assets) > 0) {\n return Object.values(data.assets).map(a => ({\n \"@type\": \"DataDownload\",\n contentUrl: Utils.toAbsolute(a.href, data.getAbsoluteUrl()),\n encodingFormat: a.type,\n name: a.title\n }));\n }\n return [];\n}\n\nfunction makeLinks(links, data, store, type = \"DataCatalog\") {\n return links.map(link => {\n let name, isBasedOn;\n if (link instanceof STAC) {\n name = STAC.getDisplayTitle(link);\n isBasedOn = link.getAbsoluteUrl();\n }\n else {\n name = link.title;\n isBasedOn = Utils.toAbsolute(link.href, data.getAbsoluteUrl());\n }\n let obj = {\n \"@type\": type,\n name,\n url: toBrowserUrl(isBasedOn, store),\n isBasedOn\n };\n if (type === 'Dataset') {\n obj.description = fallbackDescription(link, store);\n }\n return obj;\n });\n}\n\nfunction makeProvider(providers, role) {\n return providers\n .filter(p => Utils.isObject(p) && Array.isArray(p.roles) && p.roles.includes(role))\n .map(p => ({\n \"@type\": \"Organization\",\n \"name\": p.name,\n \"description\": p.description,\n \"url\": p.url,\n \"email\": p.email || p.mail,\n }));\n}\n\nfunction fallbackDescription(data, store) {\n let stacType, container;\n if (data instanceof STAC) {\n stacType = data.isItem() ? \"Item\" : data.type;\n container = data.collection;\n }\n else if (Utils.isObject(data) && data.rel === 'item') {\n stacType = \"Item\";\n }\n if (stacType) {\n let type = i18n.tc(`stac${stacType}`);\n let inX = i18n.t('in', {catalog: container || store.catalogTitle});\n return `SpatioTemporal Asset Catalog (STAC)\\n${type} - ${data.id} ${inX}`;\n }\n}\n\nfunction createBaseSchema(data, type, store) {\n let name = STAC.getDisplayTitle(data);\n let stacUrl = data.getAbsoluteUrl();\n let url = toBrowserUrl(stacUrl, store);\n let inLanguage = data.getMetadata('language')?.code;\n let thumbnails = data.getThumbnails(true);\n let thumbnailUrl;\n if (thumbnails.length > 0) {\n thumbnailUrl = Utils.toAbsolute(thumbnails[0].href, data.getAbsoluteUrl());\n }\n let license = data.getMetadata('license');\n if (license && license !== 'proprietary' && license !== 'various') {\n license = `https://spdx.org/licenses/${license}.html`;\n }\n else {\n license = data.getLinkWithRel('license')?.href;\n }\n if (license) {\n license = Utils.toAbsolute(license, data.getAbsoluteUrl());\n }\n\n let providers = data.getMetadata('providers');\n let copyrightHolder; // licensor\n let producer; // producer\n let provider; // host\n let creator; // processor\n if (Utils.size(providers) > 0) {\n copyrightHolder = makeProvider(providers, \"licensor\");\n producer = makeProvider(providers, \"producer\");\n provider = makeProvider(providers, \"host\");\n creator = makeProvider(providers, \"processor\");\n }\n\n return {\n \"@context\": \"https://schema.org/\",\n \"@type\": type,\n name,\n description: data.getMetadata(\"description\") || fallbackDescription(data, store),\n citation: data.getMetadata(\"sci:citation\"),\n identifier: data.getMetadata(\"sci:doi\") || data.id,\n keywords: data.getMetadata(\"keywords\"),\n license,\n url,\n isBasedOn: stacUrl,\n dateCreated: data.getMetadata('created'),\n dateModified: data.getMetadata('updated'),\n datePublished: data.getMetadata('published'),\n expires: data.getMetadata('expires'),\n inLanguage,\n thumbnailUrl,\n version: data.getMetadata('version'),\n image: thumbnailUrl,\n copyrightHolder,\n producer,\n provider,\n creator\n };\n}\n\nexport function createCatalogSchema(data, parents, store) {\n if (!(data instanceof STAC)) {\n return null;\n }\n // Remove invalid links\n parents = parents.filter(link => Utils.isObject(link));\n if (parents.length > 1) {\n // Remove duplicates\n parents = parents.filter((link, i) => parents.findIndex(p => p.isBasedOn === link.isBasedOn) !== i);\n }\n\n let schema = createBaseSchema(data, 'DataCatalog', store);\n\n if (data.isCollection()) {\n if (data.extent?.temporal?.interval.length > 0) {\n schema.temporalCoverage = formatTemporalCoverage(data.extent.temporal.interval[0]);\n }\n\n if (data.extent?.spatial?.bbox.length > 0) {\n addSpatialCoverage(schema, data.extent.spatial.bbox[0]);\n }\n schema.associatedMedia = makeAssets(data);\n }\n\n schema.hasPart = makeLinks(store.getters.catalogs, data, store);\n schema.dataset = makeLinks(store.getters.items, data, store, \"Dataset\");\n schema.isPartOf = makeLinks(parents, data, store);\n\n return schema;\n}\n\nexport function createItemSchema(data, parents, store) {\n if (!(data instanceof STAC)) {\n return null;\n }\n parents = parents.filter(link => Utils.isObject(link));\n\n let schema = createBaseSchema(data, 'Dataset', store);\n\n schema.includedInDataCatalog = makeLinks(parents, data, store);\n\n let start = data.getMetadata('start_datetime');\n let end = data.getMetadata('end_datetime');\n if (start || end) {\n schema.temporalCoverage = formatTemporalCoverage([start, end]);\n }\n else {\n schema.temporalCoverage = data.getMetadata('datetime');\n }\n\n addSpatialCoverage(schema, data.bbox);\n schema.distribution = makeAssets(data);\n\n return schema;\n}\n\nexport function addSchemaToDocument(doc, schema) {\n let id = 'schema-org';\n let element = doc.getElementById(id);\n if (!element) {\n element = doc.createElement('script');\n element.type = 'application/ld+json';\n element.id = id;\n doc.head.appendChild(element);\n }\n element.innerText = JSON.stringify(schema);\n}","\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Item.vue?vue&type=template&id=7e621ed7&\"\nimport script from \"./Item.vue?vue&type=script&lang=js&\"\nexport * from \"./Item.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Item.vue?vue&type=style&index=0&id=7e621ed7&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{key:_vm.data.id,class:{cc: true, [_vm.data.type.toLowerCase()]: true, mixed: _vm.hasCatalogs && _vm.hasItems, empty: !_vm.hasCatalogs && !_vm.hasItems}},[_c('b-row',[_c('b-col',{staticClass:\"meta\"},[_c('section',{staticClass:\"intro\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('description')))]),(_vm.data.deprecated)?_c('DeprecationNotice',{attrs:{\"data\":_vm.data}}):_vm._e(),(_vm.data['anon:warning'])?_c('AnonymizedNotice',{attrs:{\"warning\":_vm.data['anon:warning']}}):_vm._e(),(_vm.data.description)?_c('ReadMore',{attrs:{\"lines\":10,\"text\":_vm.$t('read.more'),\"text-less\":_vm.$t('read.less')}},[_c('Description',{attrs:{\"description\":_vm.data.description}})],1):_vm._e(),(Array.isArray(_vm.data.keywords) && _vm.data.keywords.length > 0)?_c('Keywords',{attrs:{\"keywords\":_vm.data.keywords}}):_vm._e(),(_vm.isCollection)?_c('section',{staticClass:\"metadata mb-4\"},[(_vm.licenses)?_c('b-row',[_c('b-col',{staticClass:\"label\",attrs:{\"md\":\"4\"}},[_vm._v(_vm._s(_vm.$t('catalog.license')))]),_c('b-col',{staticClass:\"value\",attrs:{\"md\":\"8\"}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.licenses)}})])],1):_vm._e(),(_vm.temporalExtents)?_c('b-row',[_c('b-col',{staticClass:\"label\",attrs:{\"md\":\"4\"}},[_vm._v(_vm._s(_vm.$t('catalog.temporalExtent')))]),_c('b-col',{staticClass:\"value\",attrs:{\"md\":\"8\"}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.temporalExtents)}})])],1):_vm._e()],1):_vm._e(),(_vm.linkPosition === 'left')?_c('Links',{attrs:{\"title\":_vm.$t('additionalResources'),\"links\":_vm.additionalLinks}}):_vm._e()],1),(_vm.isCollection || _vm.hasThumbnails)?_c('section',{staticClass:\"mb-4\"},[_c('b-card',{staticClass:\"maps-preview\",attrs:{\"no-body\":\"\"}},[_c('b-tabs',{ref:\"tabs\",attrs:{\"pills\":\"\",\"card\":\"\",\"vertical\":\"\",\"end\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[(_vm.isCollection)?_c('b-tab',{attrs:{\"title\":_vm.$t('map'),\"no-body\":\"\"}},[_c('Map',{attrs:{\"stac\":_vm.data,\"stacLayerData\":_vm.mapData,\"fitBoundsOnce\":\"\",\"popover\":\"\"},on:{\"dataChanged\":_vm.dataChanged}})],1):_vm._e(),(_vm.hasThumbnails)?_c('b-tab',{attrs:{\"title\":_vm.$t('thumbnails'),\"no-body\":\"\"}},[_c('Thumbnails',{attrs:{\"thumbnails\":_vm.thumbnails}})],1):_vm._e()],1)],1)],1):_vm._e(),(_vm.hasAssets)?_c('Assets',{attrs:{\"assets\":_vm.assets,\"context\":_vm.data,\"shown\":_vm.shownAssets},on:{\"showAsset\":_vm.showAsset}}):_vm._e(),(_vm.hasItemAssets && !_vm.hasItems)?_c('Assets',{attrs:{\"assets\":_vm.data.item_assets,\"definition\":true}}):_vm._e(),(_vm.providers)?_c('Providers',{attrs:{\"providers\":_vm.providers}}):_vm._e(),_c('Metadata',{staticClass:\"mb-4\",attrs:{\"title\":_vm.$t('metadata.title'),\"type\":_vm.data.type,\"data\":_vm.data,\"ignoreFields\":_vm.ignoredMetadataFields}}),(_vm.collectionLink)?_c('CollectionLink',{attrs:{\"link\":_vm.collectionLink}}):_vm._e(),(_vm.linkPosition === 'right')?_c('Links',{attrs:{\"title\":_vm.$t('additionalResources'),\"links\":_vm.additionalLinks}}):_vm._e()],1),(_vm.hasCatalogs)?_c('b-col',{staticClass:\"catalogs-container\"},[_c('Catalogs',{attrs:{\"catalogs\":_vm.catalogs,\"hasMore\":!!_vm.nextCollectionsLink},on:{\"loadMore\":_vm.loadMoreCollections}})],1):_vm._e(),(_vm.hasItems)?_c('b-col',{staticClass:\"items-container\"},[_c('Items',{attrs:{\"stac\":_vm.data,\"items\":_vm.items,\"api\":_vm.isApi,\"showFilters\":_vm.showFilters,\"apiFilters\":_vm.filters,\"pagination\":_vm.itemPages,\"loading\":_vm.apiItemsLoading},on:{\"paginate\":_vm.paginateItems,\"filterItems\":_vm.filterItems,\"filtersShown\":_vm.filtersShown}}),(_vm.hasItemAssets)?_c('Assets',{attrs:{\"assets\":_vm.data.item_assets,\"definition\":true}}):_vm._e()],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Catalog.vue?vue&type=template&id=41aa33b4&\"\nimport script from \"./Catalog.vue?vue&type=script&lang=js&\"\nexport * from \"./Catalog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Catalog.vue?vue&type=style&index=0&id=41aa33b4&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Browse.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Browse.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Browse.vue?vue&type=template&id=b70f9318&\"\nimport script from \"./Browse.vue?vue&type=script&lang=js&\"\nexport * from \"./Browse.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Browse from '../views/Browse.vue';\n\nfunction getRoutes(config) {\n let routes = [];\n\n if (config.allowExternalAccess) {\n routes.push({\n path: \"/external/(.*)\",\n name: \"browseExternal\",\n component: Browse,\n props: route => {\n return {\n path: `/external/${route.params.pathMatch}`\n };\n }\n });\n }\n\n if (!config.catalogUrl) {\n routes.push({\n path: \"/\",\n name: \"select\",\n component: () => import(\"../views/SelectDataSource.vue\")\n });\n routes.push({\n path: \"/search/external/(.*)\",\n name: \"search\",\n component: () => import(\"../views/Search.vue\"),\n props: route => {\n return {\n loadParent: `/external/${route.params.pathMatch}`\n };\n }\n });\n }\n else {\n routes.push({\n path: \"/search\",\n name: \"search\",\n component: () => import(\"../views/Search.vue\")\n });\n }\n\n routes.push({\n path: \"/(.*)\",\n name: \"browse\",\n component: Browse,\n props: route => {\n return {\n path: route.params.pathMatch\n };\n }\n });\n\n return routes;\n}\n\nexport default getRoutes;","import Vue from \"vue\";\nimport Vuex from \"vuex\";\n\nimport axios from \"axios\";\nimport URI from \"urijs\";\n\nimport i18n from '../i18n';\nimport { stacBrowserSpecialHandling } from \"../rels\";\nimport Utils, { BrowserError } from '../utils';\nimport STAC from '../models/stac';\n\nimport { addQueryIfNotExists, isAuthenticationError, Loading, processSTAC, proxyUrl, unproxyUrl, stacRequest } from './utils';\nimport { getBest } from '../locale-id';\nimport { TYPES } from \"../components/ApiCapabilitiesMixin\";\n\nfunction getStore(config, router) {\n // Local settings (e.g. for currently loaded STAC entity)\n const localDefaults = () => ({\n url: '',\n title: config.catalogTitle,\n description: null,\n data: null,\n valid: null,\n parents: null,\n globalError: null,\n\n localRequestQueryParameters: {},\n stateQueryParameters: {\n language: null,\n asset: [],\n itemdef: []\n },\n\n apiItems: [],\n apiItemsLink: null,\n apiItemsPagination: {}\n });\n\n const catalogDefaults = () => ({\n queue: [],\n privateQueryParameters: {},\n authData: null,\n doAuth: [],\n conformsTo: [],\n dataLanguage: null,\n dataLanguages: [],\n\n apiCollections: [],\n apiItemsLoading: {},\n nextCollectionsLink: null\n });\n\n return new Vuex.Store({\n strict: true,\n state: Object.assign({}, config, localDefaults(), catalogDefaults(), {\n // Global settings\n database: {}, // STAC object, Error object or Loading object or Promise (when loading)\n allowSelectCatalog: !config.catalogUrl,\n globalRequestQueryParameters: config.requestQueryParameters,\n uiLanguage: config.locale\n }),\n getters: {\n loading: state => !state.url || !state.data || state.database[state.url] instanceof Loading,\n getApiItemsLoading: state => data => {\n let id = '';\n if (data instanceof Loading) {\n return true;\n }\n else if (data instanceof STAC) {\n id = data.id;\n }\n else if (typeof data === 'string') {\n id = data;\n }\n return state.apiItemsLoading[id] || false;\n },\n error: state => state.database[state.url] instanceof Error ? state.database[state.url] : null,\n getStac: state => (source, returnErrorObject = false) => {\n if (source instanceof STAC) {\n return source;\n }\n if (Utils.isObject(source) && Utils.hasText(source.href)) {\n source = source.href;\n }\n if (!Utils.hasText(source)) {\n return null;\n }\n let absoluteUrl = Utils.toAbsolute(source, state.url);\n let data = state.database[absoluteUrl];\n if (data instanceof STAC || (returnErrorObject && data instanceof Error)) {\n return data;\n }\n else {\n return null;\n }\n },\n\n displayCatalogTitle: (state, getters) => STAC.getDisplayTitle(getters.root, state.catalogTitle),\n\n isCollection: state => state.data?.isCollection() || false,\n isCatalog: state => state.data?.isCatalog() || false,\n isCatalogLike: state => state.data?.isCatalogLike() || false,\n isItem: state => state.data?.isItem() || false,\n\n root: (_, getters) => getters.getStac(getters.rootLink),\n\n rootLink: state => {\n let link = state.data?.getStacLinkWithRel('root');\n if (link) {\n return link;\n }\n else if (state.catalogUrl) {\n return Utils.createLink(state.catalogUrl, 'root');\n }\n else if (state.url && state.data instanceof STAC && state.data.getLinksWithRels(['conformance', 'service-desc', 'service-doc', 'data', 'search']).length > 0) {\n return Utils.createLink(state.url, 'root');\n }\n else if (state.url) {\n // Fallback: If we detect OGC API like paths, try to guess the paths\n let uri = URI(state.url);\n let path = uri.segment(-2);\n if (['collections', 'items'].includes(path)) {\n uri.segment(-1, \"\");\n uri.segment(-1, \"\");\n if (path === 'items') {\n uri.segment(-1, \"\");\n uri.segment(-1, \"\");\n }\n return Utils.createLink(uri.toString(), 'root');\n }\n }\n return null;\n },\n parentLink: state => {\n if (state.data instanceof STAC) {\n let link = state.data.getStacLinkWithRel('parent');\n if (link) {\n return link;\n }\n }\n\n // Fallback: If we detect OGC API like paths, try to guess the paths\n if (state.url) {\n let uri = URI(state.url);\n let path = uri.segment(-2);\n if (['collections', 'items'].includes(path)) {\n uri.segment(-1, \"\");\n uri.segment(-1, \"\");\n return Utils.createLink(uri.toString(), 'parent');\n }\n }\n\n return null;\n },\n collectionLink: state => {\n if (state.data instanceof STAC) {\n let link = state.data?.getStacLinkWithRel('collection');\n if (link) {\n return link;\n }\n }\n\n // Fallback: If we detect OGC API like paths, try to guess the paths\n if (state.url) {\n let uri = URI(state.url);\n let path = uri.segment(-2);\n if (path == 'items') {\n uri.segment(-1, \"\");\n uri.segment(-1, \"\");\n return Utils.createLink(uri.toString(), 'collection');\n }\n }\n\n return null;\n },\n supportsConformance: state => classes => {\n if(!Array.isArray(classes)) {\n return classes;\n }\n let classRegexp = classes\n .map(c => c.replaceAll('*', '[^/]+').replace(/\\/?#/, '/?#'))\n .join('|');\n let regexp = new RegExp('^(' + classRegexp + ')$');\n return Boolean(state.conformsTo.find(uri => uri.match(regexp)));\n },\n supportsExtension: state => schemaUri => {\n return Utils.supportsExtension(state.data, schemaUri);\n },\n\n canSearch: (state, getters) => {\n return getters.canSearchCollections || getters.canSearchItems;\n },\n canSearchItems: (state, getters) => {\n return getters.supportsConformance(TYPES.Items.BasicFilters);\n },\n canSearchCollections: (state, getters) => {\n return getters.supportsConformance(TYPES.Collections.BasicFilters);\n },\n\n items: state => {\n if (state.apiItems.length > 0) {\n return state.apiItems;\n }\n else if (state.data) {\n return state.data.getStacLinksWithRel('item');\n }\n return [];\n },\n catalogs: state => {\n let hasCollections = Boolean(state.data instanceof STAC && state.data.getApiCollectionsLink() && state.apiCollections.length > 0);\n let hasChilds = Boolean(state.data instanceof STAC);\n let showCollections = !state.apiCatalogPriority || state.apiCatalogPriority === 'collections';\n let showChilds = !state.apiCatalogPriority || state.apiCatalogPriority === 'childs';\n let catalogs = [];\n if (hasCollections && showCollections) {\n catalogs = catalogs.concat(state.apiCollections);\n }\n if (hasChilds && showChilds) {\n catalogs = STAC.addMissingChildren(catalogs, state.data);\n }\n return catalogs;\n },\n\n // hasAsset also checks whether the assets have a href and thus are not item asset definitions\n hasAssets: (state, getters) => Boolean(Object.values(getters.assets).find(asset => Utils.isObject(asset) && typeof asset.href === 'string')),\n assets: (state, getters) => {\n if (!Utils.isObject(state.data?.assets)) {\n return {};\n }\n else if (state.showThumbnailsAsAssets) {\n return state.data.assets;\n }\n else {\n let assets = {};\n let thumbnails = getters.thumbnails;\n for (let key in state.data.assets) {\n let asset = state.data.assets[key];\n if (!thumbnails.includes(asset)) {\n assets[key] = asset;\n }\n }\n return assets;\n }\n },\n thumbnails: state => state.data ? state.data.getThumbnails(true) : [],\n additionalLinks: state => state.data ? state.data.getLinksWithOtherRels(stacBrowserSpecialHandling).filter(link => link.rel !== 'preview' || !Utils.canBrowserDisplayImage(link)) : [],\n\n toBrowserPath: (state, getters) => url => {\n if (!Utils.hasText(url)) {\n url = '/';\n }\n\n let absolute = Utils.toAbsolute(unproxyUrl(url, state.stacProxyUrl), state.url, false);\n let relative;\n if (!state.allowSelectCatalog && state.catalogUrl) {\n relative = absolute.relativeTo(state.catalogUrl);\n }\n\n if (typeof relative === 'undefined' || getters.isExternalUrl(absolute, false)) {\n if (!state.allowExternalAccess) {\n return absolute.toString();\n }\n let parts = ['/external'];\n let protocol = absolute.protocol();\n if (protocol !== 'https') {\n parts.push(protocol + ':');\n }\n parts.push(absolute.authority());\n parts.push(absolute.path().replace(/^\\//, ''));\n let path = parts.join('/');\n let q = absolute.query();\n if (q) {\n path += `?${q}`;\n }\n return path;\n }\n else {\n return '/' + relative.toString();\n }\n },\n fromBrowserPath: (state, getters) => url => {\n const externalRE = /^\\/(search\\/)?external\\//;\n if (!Utils.hasText(url) || url === '/') {\n url = state.catalogUrl;\n }\n else if (url.match(externalRE)) {\n let parts = url.replace(externalRE, '').split('/');\n let protocol;\n if (!parts[0].endsWith(':')) {\n protocol = 'https:';\n }\n else {\n protocol = parts.shift();\n }\n url = `${protocol}//${parts.join('/')}`;\n }\n else if (!state.allowSelectCatalog && state.catalogUrl) {\n url = Utils.toAbsolute(url, state.catalogUrl, false);\n }\n return getters.getRequestUrl(url, null, true);\n },\n isExternalUrl: state => (absoluteUrl, whitelist = true) => {\n if (!state.catalogUrl) {\n return false;\n }\n if (!(absoluteUrl instanceof URI)) {\n absoluteUrl = URI(absoluteUrl);\n }\n if (whitelist && Array.isArray(state.allowedDomains) && state.allowedDomains.includes(absoluteUrl.domain())) {\n return false;\n }\n let relative;\n if (absoluteUrl.is(\"relative\")) {\n relative = absoluteUrl;\n }\n else {\n relative = absoluteUrl.relativeTo(state.catalogUrl);\n if (relative.equals(absoluteUrl)) {\n return true;\n }\n }\n let relativeStr = relative.toString();\n return relativeStr.startsWith('//') || relativeStr.startsWith('../');\n },\n getRequestUrl: (state, getters) => (url, baseUrl = null, addLocalQueryParams = false) => {\n let absoluteUrl = Utils.toAbsolute(proxyUrl(url, state.stacProxyUrl), baseUrl ? baseUrl : state.url, false);\n if (!getters.isExternalUrl(absoluteUrl)) {\n // Check whether private params are present and add them if the URL is part of the catalog\n addQueryIfNotExists(absoluteUrl, state.privateQueryParameters);\n // Check if we need to add global request params\n addQueryIfNotExists(absoluteUrl, state.globalRequestQueryParameters);\n if (addLocalQueryParams) {\n // Check if we need to add local request params\n addQueryIfNotExists(absoluteUrl, state.localRequestQueryParameters);\n }\n }\n // If we are proxying a STAC Catalog, replace any URI with the proxied address.\n return absoluteUrl.toString();\n },\n\n acceptedLanguages: state => {\n const languages = {};\n // Implement in ascending order:\n languages['en'] = 0.1;\n if (Array.isArray(state.supportedLocales)) {\n state.supportedLocales.forEach(locale => languages[locale] = 0.2);\n }\n if (Utils.hasText(state.fallbackLocale)) {\n languages[state.fallbackLocale] = 0.5;\n }\n if (Array.isArray(navigator.languages)) {\n navigator.languages.forEach(locale => languages[locale] = 0.7);\n }\n if (Utils.hasText(state.locale)) {\n languages[state.locale] = 1;\n }\n return Object.entries(languages)\n .sort((a,b) => {\n if (a[1] > b[1]) {\n return -1;\n }\n else if (a[1] < b[1]) {\n return 1;\n }\n return 0;\n })\n .map(([l, q]) => q >= 1 ? l : `${l};q=${q}`)\n .join(',');\n }\n },\n mutations: {\n config(state, config) {\n for (let key in config) {\n let value = config[key];\n switch (key) {\n case 'catalogTitle':\n state.catalogTitle = value;\n break;\n case 'catalogUrl':\n if (typeof value === 'function') {\n state.catalogUrl = value();\n }\n else if (typeof value === 'string') {\n state.catalogUrl = value;\n }\n break;\n case 'crossOriginMedia':\n state.crossOriginMedia = ['anonymous', 'use-credentials'].includes(value) ? value : null;\n break;\n case 'cardViewSort':\n switch(value) {\n case 'asc':\n state.cardViewSort = 1;\n break;\n case 'desc':\n state.cardViewSort = -1;\n break;\n default:\n state.cardViewSort = 0;\n }\n break;\n default:\n state[key] = value;\n }\n }\n },\n languages(state, {uiLanguage, dataLanguage}) {\n state.dataLanguage = dataLanguage || null;\n state.uiLanguage = uiLanguage || null;\n },\n setQueryParameter(state, { type, key, value }) {\n type = `${type}QueryParameters`;\n if (typeof value === 'undefined') {\n Vue.delete(state[type], key);\n }\n else {\n Vue.set(state[type], key, value);\n }\n },\n setRequestHeader(state, { key, value }) {\n if (typeof value === 'undefined') {\n Vue.delete(state.requestHeaders, key);\n }\n else {\n Vue.set(state.requestHeaders, key, value);\n }\n },\n requestAuth(state, callback) {\n if (typeof callback === 'function') {\n state.doAuth.push(callback);\n }\n else {\n state.doAuth = [];\n }\n },\n setAuthData(state, value) {\n state.authData = value;\n },\n state(state, newState) {\n state.stateQueryParameters = newState;\n },\n updateState(state, {type, value}) {\n if (value === null || typeof value === 'undefined') {\n Vue.delete(state.stateQueryParameters, type);\n }\n else {\n Vue.set(state.stateQueryParameters, type, value);\n }\n },\n openCollapsible(state, { type, uid }) {\n const idx = state.stateQueryParameters[type].indexOf(uid);\n // need to prevent duplicates because of the way the collapse v-model works\n if (idx === -1) {\n state.stateQueryParameters[type].push(uid);\n }\n },\n closeCollapsible(state, { type, uid }) {\n const idx = state.stateQueryParameters[type].indexOf(uid);\n if (idx > -1) {\n Vue.delete(state.stateQueryParameters[type], idx);\n }\n },\n updateLoading(state, { url, show, loadApi }) {\n let data = state.database[url];\n Vue.set(data, 'show', show || data.show);\n Vue.set(data, 'loadApi', loadApi || data.loadApi);\n },\n loading(state, { url, loading }) {\n Vue.set(state.database, url, loading);\n if (loading.show) {\n state.url = url;\n }\n },\n loaded(state, { url, data }) {\n Vue.set(state.database, url, processSTAC(state, data));\n },\n clear(state, url) {\n Vue.delete(state.database, url);\n },\n resetCatalog(state, clearAll) {\n Object.assign(state, catalogDefaults());\n Object.assign(state, localDefaults());\n if (!state.supportedLocales.includes(state.locale)) {\n state.locale = config.locale;\n }\n if (clearAll) {\n state.catalogUrl = config.catalogUrl;\n state.catalogTitle = config.catalogTitle;\n state.database = {};\n }\n },\n resetPage(state) {\n Object.assign(state, localDefaults());\n },\n showPage(state, { url, title, description, stac }) {\n if (!stac) {\n stac = state.database[url] || null;\n }\n state.url = url || null;\n state.data = stac instanceof STAC ? stac : null;\n state.valid = null;\n state.description = description;\n\n // Set title\n if (title) {\n state.title = title;\n }\n else {\n state.title = STAC.getDisplayTitle(state.data, state.catalogTitle);\n if (state.data) {\n let description = state.data.getMetadata('description');\n if (Utils.hasText(description)) {\n state.description = description;\n }\n }\n }\n\n if (state.data) {\n let source = state.data.isItem() ? state.data.properties : state.data;\n let languages = Array.isArray(source.languages) ? source.languages.slice() : [];\n if (Utils.isObject(source.language)) {\n languages.unshift(source.language);\n }\n state.dataLanguages = languages.filter(lang => Utils.isObject(lang) && typeof lang.code === 'string');\n }\n },\n errored(state, { url, error }) {\n if (!(error instanceof Error)) {\n error = new Error(error);\n }\n Vue.set(state.database, url, error);\n },\n valid(state, valid) {\n state.valid = valid;\n },\n queue(state, url) {\n state.queue.push(url);\n },\n unqueue(state, url) {\n let i = state.queue.indexOf(url);\n if (i !== -1) {\n state.queue.splice(i, 1);\n }\n },\n removeFromQueue(state, num) {\n state.queue.splice(0, num);\n },\n setConformanceClasses(state, classes) {\n if (Array.isArray(classes)) {\n state.conformsTo = classes;\n }\n },\n setApiItemsLink(state, link) {\n state.apiItemsLink = link;\n },\n toggleApiItemsLoading(state, collectionId = '') {\n if (state.apiItemsLoading[collectionId]) {\n Vue.delete(state.apiItemsLoading, collectionId);\n }\n else {\n Vue.set(state.apiItemsLoading, collectionId, true);\n }\n },\n setApiItems(state, { data, stac, show }) {\n if (!Utils.isObject(data) || !Array.isArray(data.features)) {\n return;\n }\n let apiItems = data.features.map(feature => processSTAC(state, feature));\n\n if (show) {\n state.apiItems = apiItems;\n }\n\n // Handle pagination links\n let pages = Utils.getPaginationLinks(data);\n\n if (show) {\n state.apiItemsPagination = pages;\n }\n\n if (stac instanceof STAC) {\n // ToDo: Prev link only required when state.apiItems is not cached(?) -> cache apiItems?\n stac.setApiData(apiItems, pages.next, pages.prev);\n }\n },\n addApiCollections(state, { data, stac, show }) {\n if (!Utils.isObject(data) || !Array.isArray(data.collections)) {\n return;\n }\n\n let collections = data.collections.map(collection => processSTAC(state, collection));\n let nextLink = Utils.getLinkWithRel(data.links, 'next');\n if (show) {\n state.nextCollectionsLink = nextLink;\n state.apiCollections = state.apiCollections.concat(collections);\n }\n if (stac instanceof STAC) {\n stac.setApiData(collections, nextLink);\n }\n },\n resetApiItems(state, link) {\n state.apiItems = [];\n state.apiItemsLink = link;\n state.apiItemsPagination = {};\n },\n parents(state, parents) {\n state.parents = parents;\n },\n showGlobalError(state, error) {\n console.error(error);\n state.globalError = error;\n }\n },\n actions: {\n async switchLocale(cx, {locale, userSelected}) {\n cx.commit('config', {locale});\n\n if (cx.state.storeLocale && userSelected) {\n try {\n window.localStorage.setItem('locale', locale);\n } catch (error) {\n console.error(error);\n }\n }\n\n // Locale for UI\n let uiLanguage = getBest(cx.state.supportedLocales, locale, cx.state.fallbackLocale);\n // Locale for data\n let dataLanguageCodes = cx.state.dataLanguages.map(l => l.code);\n let dataLanguageFallback = cx.state.dataLanguages.length > 0 ? cx.state.dataLanguages[0].code : uiLanguage;\n let dataLanguage = getBest(dataLanguageCodes, locale, dataLanguageFallback);\n\n cx.commit('languages', {dataLanguage, uiLanguage});\n cx.commit('setQueryParameter', { type: 'state', key: 'language', value: locale });\n },\n async setAuth(cx, value) {\n if (!Utils.hasText(value)) {\n value = null;\n }\n // Set the value the user has provided separately\n cx.commit('setAuthData', value);\n\n // Format the value and add it to query parameters or headers\n let authConfig = cx.state.authConfig;\n let key = authConfig.key;\n if (value) {\n if (authConfig.formatter === 'Bearer') {\n value = `Bearer ${value}`;\n }\n else if (typeof authConfig.formatter === 'function') {\n value = authConfig.formatter(value);\n }\n }\n if (!Utils.hasText(value)) {\n value = undefined;\n }\n if (authConfig.type === 'query') {\n cx.commit('setQueryParameter', {type: 'private', key, value});\n }\n else if (authConfig.type === 'header') {\n cx.commit('setRequestHeader', {key, value});\n }\n },\n async loadBackground(cx, count) {\n let urls = cx.state.queue.slice(0, count);\n if (urls.length > 0) {\n let promises = [];\n for (let url of urls) {\n promises.push(cx.dispatch('load', { url }));\n }\n cx.commit('removeFromQueue', count);\n return await Promise.all(promises);\n }\n },\n async loadParents(cx) {\n if (!(cx.state.data instanceof STAC)) {\n cx.commit('parents', []);\n return;\n }\n\n let parents = [];\n let stac = cx.state.data;\n while (stac) {\n let parentLink = stac.getLinkWithRel('parent') || stac.getLinkWithRel('root');\n if (!parentLink) {\n break;\n }\n let url = Utils.toAbsolute(parentLink.href, stac.getAbsoluteUrl());\n await cx.dispatch('load', { url, loadApi: true });\n let parentStac = cx.getters.getStac(url, true);\n if (parentStac instanceof Error) {\n cx.commit('parents', parentStac);\n return;\n }\n if (parentStac === stac) {\n break;\n }\n parents.push(parentStac);\n stac = parentStac;\n }\n cx.commit('parents', parents);\n },\n async load(cx, args) {\n let { url, show, loadApi, loadRoot, force } = args;\n\n let path = cx.getters.toBrowserPath(url);\n url = Utils.toAbsolute(url, cx.state.url);\n\n // Load the root catalog data if not available (e.g. after page refresh or external access)\n if (!loadRoot && path !== '/' && cx.state.catalogUrl && !cx.getters.getStac(cx.state.catalogUrl)) {\n await cx.dispatch(\"load\", { url: cx.state.catalogUrl, loadApi: true, loadRoot: true });\n }\n\n if (force) {\n cx.commit('clear', url);\n }\n\n let loading = new Loading(show, loadApi);\n let data = cx.state.database[url];\n if (data instanceof Loading) {\n cx.commit('updateLoading', { url, show, loadApi });\n return;\n }\n else if (!data || (data instanceof STAC && data.isPotentiallyIncomplete())) {\n cx.commit('loading', { url, loading });\n try {\n let response = await stacRequest(cx, url);\n if (!Utils.isObject(response.data)) {\n throw new BrowserError(i18n.t('errors.invalidJsonObject'));\n }\n data = new STAC(response.data, url, path);\n if (show) {\n // If we prefer another language abort redirect to the new language\n let localeLink = data.getLocaleLink(cx.state.dataLanguage);\n if (localeLink) {\n router.replace(cx.getters.toBrowserPath(localeLink.href));\n return;\n }\n }\n\n cx.commit('loaded', { url, data });\n\n if (!cx.getters.root) {\n let root = data.getLinkWithRel('root');\n if (root) {\n cx.commit('config', { catalogUrl: Utils.toAbsolute(root.href, url) });\n }\n }\n\n let conformanceLink = data.getStacLinkWithRel('conformance');\n if (Array.isArray(data.conformsTo) && data.conformsTo.length > 0) {\n cx.commit('setConformanceClasses', data.conformsTo);\n }\n else if (conformanceLink) {\n await cx.dispatch('loadOgcApiConformance', conformanceLink);\n }\n } catch (error) {\n if (cx.state.authConfig && isAuthenticationError(error)) {\n cx.commit('clear', url);\n cx.commit('requestAuth', () => cx.dispatch('load', args));\n return;\n }\n console.error(error);\n cx.commit('errored', { url, error });\n }\n }\n\n if (loading.loadApi && data instanceof STAC) {\n // Load API Collections\n if (data.getApiCollectionsLink()) {\n let args = { stac: data, show: loading.show };\n try {\n await cx.dispatch('loadNextApiCollections', args);\n } catch (error) {\n if (cx.state.authConfig && isAuthenticationError(error)) {\n cx.commit('requestAuth', () => cx.dispatch('loadNextApiCollections', args));\n }\n else {\n cx.commit('showGlobalError', {\n message: i18n.t('errors.loadApiCollectionsFailed'),\n error\n });\n }\n }\n }\n // Load API Items\n if (data.getApiItemsLink()) {\n let args = { stac: data, show: loading.show };\n try {\n await cx.dispatch('loadApiItems', args);\n } catch (error) {\n if (cx.state.authConfig && isAuthenticationError(error)) {\n cx.commit('requestAuth', () => cx.dispatch('loadApiItems', args));\n }\n else {\n cx.commit('showGlobalError', {\n message: i18n.t('errors.loadApiItemsFailed'),\n error\n });\n }\n }\n }\n }\n\n if (loading.show) {\n cx.commit('showPage', { url });\n }\n },\n async loadApiItems(cx, { link, stac, show, filters }) {\n let collectionId = stac instanceof STAC ? stac.id : '';\n cx.commit('toggleApiItemsLoading', collectionId);\n\n try {\n let baseUrl = cx.state.url;\n if (stac instanceof STAC) {\n link = stac.getApiItemsLink();\n baseUrl = stac.getAbsoluteUrl();\n }\n\n link = Utils.addFiltersToLink(link, filters, cx.state.itemsPerPage);\n\n let response = await stacRequest(cx, link);\n if (!Utils.isObject(response.data) || !Array.isArray(response.data.features)) {\n throw new BrowserError(i18n.t('errors.invalidStacItems'));\n }\n else {\n response.data.features = response.data.features.map(item => {\n try {\n if (!Utils.isObject(item) || item.type !== 'Feature') {\n return null;\n }\n let selfLink = Utils.getLinkWithRel(item.links, 'self');\n let url;\n if (selfLink?.href) {\n url = Utils.toAbsolute(selfLink.href, baseUrl);\n }\n else if (typeof item.id !== 'undefined') {\n let apiCollectionsLink = cx.getters.root?.getApiCollectionsLink();\n if (baseUrl) {\n url = Utils.toAbsolute(`items/${item.id}`, baseUrl);\n }\n else if (apiCollectionsLink) {\n url = Utils.toAbsolute(`${collectionId}/items/${item.id}`, apiCollectionsLink.href);\n }\n else if (cx.state.catalogUrl) {\n url = Utils.toAbsolute(`collections/${collectionId}/items/${item.id}`, cx.state.catalogUrl);\n }\n else {\n return null;\n }\n }\n else {\n return null;\n }\n let data = cx.getters.getStac(url);\n if (data) {\n return data;\n }\n else {\n data = new STAC(item, url, cx.getters.toBrowserPath(url));\n data.markPotentiallyIncomplete();\n cx.commit('loaded', { data, url });\n return data;\n }\n } catch (error) {\n console.error(error);\n return null;\n }\n }).filter(item => item instanceof STAC);\n if (show) {\n cx.commit('setApiItemsLink', link);\n }\n cx.commit('setApiItems', { data: response.data, stac, show });\n cx.commit('toggleApiItemsLoading', collectionId);\n return response;\n }\n } catch (error) {\n cx.commit('toggleApiItemsLoading', collectionId);\n throw error;\n }\n },\n async loadNextApiCollections(cx, { stac, show }) {\n let link;\n if (stac) {\n // First page\n if (cx.state.apiCollections.length > 0) {\n // If we have already loaded collections, skip loading the first page\n return;\n }\n link = stac.getLinkWithRel('data');\n }\n else {\n // Second page and after\n stac = cx.state.data;\n link = cx.state.nextCollectionsLink;\n }\n if (!link) {\n return;\n }\n let response = await stacRequest(cx, link);\n if (!Utils.isObject(response.data) || !Array.isArray(response.data.collections)) {\n throw new BrowserError(i18n.t('errors.invalidStacCollections'));\n }\n else {\n response.data.collections = response.data.collections.map(collection => {\n let selfLink = Utils.getLinkWithRel(collection.links, 'self');\n let url;\n if (selfLink?.href) {\n url = Utils.toAbsolute(selfLink.href, cx.state.url || stac.getAbsoluteUrl());\n }\n else {\n url = Utils.toAbsolute(`collections/${collection.id}`, cx.state.catalogUrl || stac.getAbsoluteUrl());\n }\n let data = cx.getters.getStac(url);\n if (data) {\n return data;\n }\n else {\n data = new STAC(collection, url, cx.getters.toBrowserPath(url));\n data.markPotentiallyIncomplete();\n cx.commit('loaded', { data, url });\n return data;\n }\n });\n cx.commit('addApiCollections', { data: response.data, stac, show });\n }\n },\n async loadOgcApiConformance(cx, link) {\n let response = await stacRequest(cx, link);\n if (Utils.isObject(response.data) && Array.isArray(response.data.conformsTo)) {\n cx.commit('setConformanceClasses', response.data.conformsTo);\n }\n },\n async loadGeoJson(cx, link) {\n try {\n let response = await stacRequest(cx, link);\n return response.data; // Use data with $refs included as fallback anyway\n } catch (error) {\n return null;\n }\n },\n async retryAfterAuth(cx) {\n let errorFn = error => cx.commit('showGlobalError', {\n error,\n message: i18n.t('errors.authFailed')\n });\n\n for (let callback of cx.state.doAuth) {\n try {\n let p = callback();\n if (p instanceof Promise) {\n p.catch(errorFn);\n }\n } catch (error) {\n errorFn(error);\n }\n }\n },\n async validate(cx, url) {\n if (typeof cx.state.valid === 'boolean') {\n return;\n }\n try {\n let uri = URI('https://api.staclint.com/url');\n uri.addSearch('stac_url', url);\n let response = await axios.get(uri.toString());\n cx.commit('valid', Boolean(response.data?.body?.valid_stac));\n } catch (error) {\n cx.commit('valid', error);\n }\n }\n },\n });\n}\n\nexport default getStore;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-row',[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('Source',{staticClass:\"float-right\",attrs:{\"title\":_vm.title,\"stacUrl\":_vm.url,\"stac\":_vm.data}}),_c('h1',[(_vm.icon)?[_c('img',{staticClass:\"icon mr-2\",attrs:{\"src\":_vm.icon.href,\"alt\":_vm.icon.title,\"title\":_vm.icon.title}})]:_vm._e(),_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.title))])],2),(_vm.url || _vm.isSearchPage())?_c('p',{staticClass:\"lead\"},[(_vm.containerLink)?_c('i18n',{staticClass:\"in mr-3\",attrs:{\"tag\":\"span\",\"path\":\"in\"},scopedSlots:_vm._u([{key:\"catalog\",fn:function(){return [_c('StacLink',{attrs:{\"data\":_vm.containerLink}})]},proxy:true}],null,false,1458487365)}):_vm._e(),_c('b-button-group',[(_vm.parentLink)?_c('b-button',{attrs:{\"to\":_vm.toBrowserPath(_vm.parentLink.href),\"title\":_vm.parentLinkTitle,\"variant\":\"outline-primary\",\"size\":\"sm\"}},[_c('b-icon-arrow-90deg-up'),_vm._v(\" \"),_c('span',{staticClass:\"button-label prio\"},[_vm._v(_vm._s(_vm.$t('goToParent.label')))])],1):_vm._e(),(_vm.collectionLink)?_c('b-button',{attrs:{\"to\":_vm.toBrowserPath(_vm.collectionLink.href),\"title\":_vm.collectionLinkTitle,\"variant\":\"outline-primary\",\"size\":\"sm\"}},[_c('b-icon-folder-symlink'),_vm._v(\" \"),_c('span',{staticClass:\"button-label prio\"},[_vm._v(_vm._s(_vm.$t('goToCollection.label')))])],1):_vm._e(),_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.sidebar\",modifiers:{\"sidebar\":true}}],attrs:{\"variant\":\"outline-primary\",\"size\":\"sm\",\"title\":_vm.$t('browse')},on:{\"click\":function($event){return _vm.$emit('enableSidebar')}}},[_c('b-icon-book'),_vm._v(\" \"),_c('span',{staticClass:\"button-label prio\"},[_vm._v(_vm._s(_vm.$t('browse')))])],1),(_vm.canSearch)?_c('b-button',{attrs:{\"variant\":\"outline-primary\",\"size\":\"sm\",\"to\":_vm.searchBrowserLink,\"title\":_vm.$t('search.title'),\"pressed\":_vm.isSearchPage()}},[_c('b-icon-search'),_vm._v(\" \"),_c('span',{staticClass:\"button-label prio\"},[_vm._v(_vm._s(_vm.$t('search.title')))])],1):_vm._e(),(_vm.authConfig)?_c('b-button',{attrs:{\"variant\":\"outline-primary\",\"size\":\"sm\",\"title\":_vm.$t('authentication.button.title')},on:{\"click\":_vm.auth}},[(_vm.authData)?[_c('b-icon-lock'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('authentication.button.authenticated')))])]:[_c('b-icon-unlock'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('authentication.button.authenticate')))])]],2):_vm._e()],1)],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"share mt-1\"},[_c('b-button-group',[(_vm.showRoot)?_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"outline-primary\",\"id\":\"popover-root-btn\"}},[_c('b-icon-box'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.rootTitle))])],1):_vm._e(),(_vm.stacUrl)?_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"outline-primary\",\"id\":\"popover-link-btn\",\"title\":_vm.$t('source.detailsAboutSource')}},[_c('b-icon-link'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('source.label')))])],1):_vm._e(),_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"outline-primary\",\"id\":\"popover-share-btn\",\"title\":_vm.$t('source.share.withOthers')}},[_c('b-icon-share'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('source.share.label')))])],1),_c('b-dropdown',{attrs:{\"size\":\"sm\",\"variant\":\"outline-primary\",\"right\":\"\",\"title\":_vm.$t('source.language.switch')},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('b-icon-flag'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('source.language.label', {currentLanguage: _vm.currentLanguage})))])]},proxy:true}])},_vm._l((_vm.languages),function(l){return _c('b-dropdown-item',{key:l.code,staticClass:\"lang-item\",on:{\"click\":function($event){return _vm.switchLocale({locale: l.code, userSelected: true})}}},[(_vm.locale === l.code)?_c('b-icon-check'):_c('b-icon-blank'),_c('span',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s(l.native)+\" \"),(l.global && l.global !== l.native)?[_vm._v(\" / \"+_vm._s(l.global))]:_vm._e()],2),(_vm.supportsLanguageExt && (!l.ui || !l.data))?_c('b-icon-exclamation-triangle',{staticClass:\"ml-2\",attrs:{\"title\":l.ui ? _vm.$t('source.language.onlyUI') : _vm.$t('source.language.onlyData')}}):_vm._e()],1)}),1)],1),(_vm.showRoot)?_c('b-popover',{attrs:{\"id\":\"popover-root\",\"target\":\"popover-root-btn\",\"triggers\":\"focus\",\"placement\":\"bottom\",\"container\":\"stac-browser\",\"title\":_vm.rootTitle}},[_c('RootStats')],1):_vm._e(),(_vm.stacUrl)?_c('b-popover',{attrs:{\"id\":\"popover-link\",\"target\":\"popover-link-btn\",\"triggers\":\"click\",\"placement\":\"bottom\",\"container\":\"stac-browser\",\"title\":_vm.$t('source.title')},on:{\"show\":_vm.validate}},[(_vm.stac)?[(_vm.stacId)?_c('b-row',{staticClass:\"stac-id\"},[_c('b-col',{attrs:{\"cols\":\"4\"}},[_vm._v(_vm._s(_vm.$t('source.id')))]),_c('b-col',[_c('code',[_vm._v(_vm._s(_vm.stacId))]),_c('CopyButton',{staticClass:\"ml-2\",attrs:{\"copyText\":_vm.stacId,\"button-props\":{size: 'sm'},\"variant\":\"primary\"}})],1)],1):_vm._e(),(_vm.stacVersion)?_c('b-row',{staticClass:\"stac-version\"},[_c('b-col',{attrs:{\"cols\":\"4\"}},[_vm._v(_vm._s(_vm.$t('source.stacVersion')))]),_c('b-col',[_vm._v(_vm._s(_vm.stacVersion))])],1):_vm._e(),(_vm.canValidate)?_c('b-row',{staticClass:\"validation\"},[_c('b-col',{attrs:{\"cols\":\"4\"}},[_vm._v(_vm._s(_vm.$t('source.valid')))]),_c('b-col',[(_vm.valid === null)?_c('b-spinner',{attrs:{\"label\":_vm.$t('source.validating'),\"small\":\"\"}}):(_vm.valid === true)?[_vm._v(\"✔️\")]:(_vm.valid === false)?[_vm._v(\"❌\")]:[_vm._v(_vm._s(_vm.$t('source.validationNA')))]],2)],1):_vm._e(),_c('hr')]:_vm._e(),_c('Url',{attrs:{\"id\":\"stacUrl\",\"url\":_vm.stacUrl,\"label\":_vm.$t('source.locatedAt')}})],2):_vm._e(),_c('b-popover',{attrs:{\"id\":\"popover-share\",\"target\":\"popover-share-btn\",\"triggers\":\"focus\",\"placement\":\"bottom\",\"container\":\"stac-browser\",\"title\":_vm.$t('source.share.title')}},[_c('Url',{attrs:{\"id\":\"browserUrl\",\"url\":_vm.browserUrl(),\"label\":_vm.$t('source.share.sharePageWithOthers'),\"open\":false}}),_c('hr'),_c('b-button',{staticClass:\"twitter mr-1\",attrs:{\"href\":_vm.twitterUrl}},[_c('b-icon-twitter'),_vm._v(\" \"+_vm._s(_vm.$t('source.share.twitter')))],1),_c('b-button',{attrs:{\"variant\":\"dark\",\"href\":_vm.mailTo}},[_c('b-icon-envelope'),_vm._v(\" \"+_vm._s(_vm.$t('source.share.email')))],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-form-group',{attrs:{\"label\":_vm.label,\"label-for\":_vm.id}},[_c('b-input-group',{attrs:{\"size\":\"sm\"}},[_c('b-form-input',{ref:\"input\",attrs:{\"id\":_vm.id,\"value\":_vm.url,\"readonly\":\"\"}}),_c('b-input-group-append',[_c('CopyButton',{attrs:{\"copyText\":_vm.url,\"variant\":\"primary\"}}),(_vm.open)?_c('b-button',{attrs:{\"href\":_vm.url,\"target\":\"_blank\",\"variant\":\"primary\",\"title\":_vm.$t('open')}},[_c('b-icon-arrow-up-right-square')],1):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Url.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Url.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Url.vue?vue&type=template&id=74684ede&scoped=true&\"\nimport script from \"./Url.vue?vue&type=script&lang=js&\"\nexport * from \"./Url.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Url.vue?vue&type=style&index=0&id=74684ede&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"74684ede\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Source.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Source.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Source.vue?vue&type=template&id=03548d8c&scoped=true&\"\nimport script from \"./Source.vue?vue&type=script&lang=js&\"\nexport * from \"./Source.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Source.vue?vue&type=style&index=0&id=03548d8c&prod&lang=scss&\"\nimport style1 from \"./Source.vue?vue&type=style&index=1&id=03548d8c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"03548d8c\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacHeader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacHeader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StacHeader.vue?vue&type=template&id=e9cfbf72&scoped=true&\"\nimport script from \"./StacHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./StacHeader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./StacHeader.vue?vue&type=style&index=0&id=e9cfbf72&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e9cfbf72\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacBrowser.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacBrowser.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StacBrowser.vue?vue&type=template&id=272308a9&\"\nimport script from \"./StacBrowser.vue?vue&type=script&lang=js&\"\nexport * from \"./StacBrowser.vue?vue&type=script&lang=js&\"\nimport style0 from \"./StacBrowser.vue?vue&type=style&index=0&id=272308a9&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\nimport StacBrowser from \"./StacBrowser.vue\";\nimport i18n, { loadDefaultMessages } from './i18n';\n\nexport default function init() {\n return loadDefaultMessages().then(() => {\n return new Vue({\n i18n,\n render: h => h(StacBrowser)\n }).$mount(\"#stac-browser\");\n });\n}\n","import Vue from \"vue\";\nimport init from \"./init\";\n\nVue.config.productionTip = false;\n\ninit();\n","import Utils, { geojsonMediaType } from \"../utils\";\nimport Migrate from '@radiantearth/stac-migrate';\nimport { getBest } from '../locale-id';\n\nlet stacObjCounter = 0;\n\n// STAC Entity\nclass STAC {\n\n constructor(data, url, path, migrate = true) {\n this._id = stacObjCounter++;\n this._url = url;\n this._path = path;\n this._apiChildrenListeners = {};\n this._incomplete = false;\n this._apiChildren = {\n list: [],\n prev: false,\n next: false\n };\n\n if (migrate) {\n // Uncomment this line if the old checksum: fields should be converted\n // This is usually not needed so it's not enabled by default to shrink the bundle size\n // Migrate.enableMultihash(require('multihashes'));\n if (data.type === 'FeatureCollection') {\n data.features = data.features.map(item => Migrate.item(item, false));\n }\n else {\n data = Migrate.stac(data, false);\n }\n }\n for (let key in data) {\n if (typeof this[key] === 'undefined') {\n this[key] = data[key];\n }\n }\n }\n\n isPotentiallyIncomplete() {\n return this._incomplete;\n }\n\n markPotentiallyIncomplete() {\n this._incomplete = true;\n }\n\n isItem() {\n return this.type === 'Feature';\n }\n\n isCatalog() {\n return this.type === 'Catalog';\n }\n\n isCatalogLike() {\n return this.isCatalog() || this.isCollection();\n }\n\n isCollection() {\n return this.type === 'Collection';\n }\n\n isItemCollection() {\n return this.type === 'FeatureCollection';\n }\n\n hasApiData() {\n return this._apiChildren.list.length > 0;\n }\n\n setApiDataListener(id, listener = null) {\n if (typeof listener === 'function') {\n this._apiChildrenListeners[id] = listener;\n }\n else {\n delete this._apiChildrenListeners[id];\n }\n }\n\n setApiData(list, next = null, prev = null) {\n if (prev) {\n this._apiChildren.prev = prev;\n }\n if (next) {\n this._apiChildren.next = next;\n }\n this._apiChildren.list = list;\n\n for (let id in this._apiChildrenListeners) {\n try {\n this._apiChildrenListeners[id](this._apiChildren);\n } catch (error) {\n console.error(error);\n }\n }\n }\n\n getFileFormats() {\n let assets = [];\n if ((this.isItem() || this.isCollection()) && Utils.isObject(this.assets)) {\n assets = assets.concat(Object.values(this.assets));\n }\n if (this.isCollection() && Utils.isObject(this.item_assets)) {\n assets = assets.concat(Object.values(this.item_assets));\n }\n return assets\n .filter(asset => Array.isArray(asset.roles) && asset.roles.includes('data') && typeof asset.type === 'string') // Look for data files\n .map(asset => asset.type) // Array shall only contain media types\n .filter((v, i, a) => a.indexOf(v) === i); // Unique values\n }\n\n getChildren(priority = null) {\n if (!this.isCatalogLike()) {\n return [];\n }\n\n let showCollections = !priority || priority === 'collections';\n let showChilds = !priority || priority === 'childs';\n\n let children = [];\n if (showCollections && this._apiChildren.prev) {\n children.push(this._apiChildren.prev);\n }\n if (showCollections && this._apiChildren.list.length > 0) {\n children = this._apiChildren.list.slice(0);\n }\n if (showChilds) {\n children = STAC.addMissingChildren(children, this).concat(this.getLinksWithRels(['item']));\n }\n if (showCollections && this._apiChildren.next) {\n children.push(this._apiChildren.next);\n }\n return children;\n }\n\n static addMissingChildren(catalogs, stac) {\n let links = stac.getStacLinksWithRel('child').filter(link => {\n // Don't add links that are already in collections: https://github.com/radiantearth/stac-browser/issues/103\n // ToDo: The runtime of this can probably be improved\n let absoluteUrl = Utils.toAbsolute(link.href, stac.getAbsoluteUrl());\n return !catalogs.find(collection => collection.getAbsoluteUrl() === absoluteUrl);\n });\n // place the children first to avoid conflicts with the paginated collections\n // where the children are always at the end and can never be reached due to infinite scrolling\n return links.concat(catalogs);\n }\n\n getSearchLink() {\n // The search link MUST be 'application/geo+json' as otherwise it's likely not STAC\n // See https://github.com/opengeospatial/ogcapi-features/issues/832\n let links = Utils.getLinksWithRels(this.links, ['search'])\n .filter(link => Utils.isMediaType(link.type, geojsonMediaType))\n .map(link => Object.assign({}, link, {href: Utils.toAbsolute(link.href, this._url)}));\n // Prefer POST if present\n let post = links.find(link => Utils.hasText(link.method) && link.method.toUpperCase() === 'POST');\n return post || links[0] || null;\n }\n\n getApiCollectionsLink() {\n return this.getStacLinkWithRel('data');\n }\n\n getApiItemsLink() {\n return this.getStacLinkWithRel('items');\n }\n\n getMetadata(field) {\n if (this.isItem()) {\n return this.properties[field];\n }\n else if (this.isCatalogLike()) {\n return this[field];\n }\n return null;\n }\n\n getBrowserPath() {\n return this._path;\n }\n\n getAbsoluteUrl() {\n return this._url;\n }\n\n getLocaleLink(locale, fallbackLocale = null) {\n let links = this.getStacLinksWithRel('alternate')\n .filter(link => Utils.hasText(link.hreflang));\n \n let available;\n if (Array.isArray(this.languages)) {\n available = this.languages.map(l => l.code);\n }\n else {\n available = links.map(link => link.hreflang);\n }\n \n let best = getBest(available, locale, fallbackLocale);\n return links.find(link => link.hreflang === best) || null;\n }\n\n getStacLinksWithRel(rel, allowEmpty = true) {\n return Utils.getLinksWithRels(this.links, [rel])\n .filter(link => Utils.isStacMediaType(link.type, allowEmpty));\n }\n\n getStacLinkWithRel(rel, allowEmpty = true) {\n const links = this.getStacLinksWithRel(rel, allowEmpty);\n if (links.length > 0) {\n return links[0];\n }\n else {\n return null;\n }\n }\n\n getLinkWithRel(rel) {\n return Utils.getLinkWithRel(this.links, rel);\n }\n\n getLinksWithRels(rels) {\n return Utils.getLinksWithRels(this.links, rels);\n }\n\n getLinksWithOtherRels(rels) {\n return Utils.getLinksWithOtherRels(this.links, rels);\n }\n\n getAssetsWithRoles(roles) {\n let matches = [];\n if (Utils.isObject(this.assets)) {\n for (let key in this.assets) {\n let asset = this.assets[key];\n if (Utils.isObject(asset) && typeof asset.href === 'string' && Array.isArray(asset.roles) && asset.roles.find(role => roles.includes(role))) {\n matches.push(asset);\n }\n }\n }\n return matches;\n }\n\n static getDisplayTitle(sources, fallbackTitle = null) {\n if (!Array.isArray(sources)) {\n sources = [sources];\n }\n let stac = sources.find(o => o instanceof STAC);\n let link = sources.find(o => Utils.isObject(o) && !(o instanceof STAC));\n // Get title from STAC item/catalog/collection\n if (stac && Utils.hasText(stac.getTitle())) {\n return stac.getTitle();\n }\n // Get title from link\n else if (link && Utils.hasText(link.title)) {\n return link.title;\n }\n // Use id from STAC item/catalog/collection instead of titles\n else if (stac && Utils.hasText(stac.id)) {\n return stac.id;\n }\n // Use fallback title\n else if (Utils.hasText(fallbackTitle)) {\n return fallbackTitle;\n }\n // Use file or directory name from STAC as title\n else if (stac) {\n return Utils.titleForHref(stac.getAbsoluteUrl(), true);\n }\n // Use file or directory name from link as title\n else if (link && Utils.hasText(link.href)) {\n return Utils.titleForHref(link.href, true);\n }\n // Nothing available, return \"untitled\"\n else {\n return \"Untitled\";\n }\n }\n\n getTitle() {\n return this.getMetadata(\"title\");\n }\n\n _linkToAbsolute(link) {\n return Object.assign({}, link, { href: Utils.toAbsolute(link.href, this.getAbsoluteUrl()) });\n }\n\n getIcons() {\n return this.getLinksWithRels(['icon'])\n .filter(img => Utils.canBrowserDisplayImage(img))\n .map(img => this._linkToAbsolute(img));\n }\n\n /**\n * Get the thumbnails from the assets and links in a STAC entity.\n * \n * @param {boolean} browserOnly - Return only images that can be shown in a browser natively (PNG/JPG/GIF/WEBP).\n * @param {?string} prefer - If not `null` (default), prefers a role over the other. Either `thumbnail` or `overview`.\n * @returns \n */\n getThumbnails(browserOnly = false, prefer = null) { // prefer can be either \n let thumbnails = this.getAssetsWithRoles(['thumbnail', 'overview']);\n // Get from links only if no assets are available as they should usually be the same as in assets\n if (thumbnails.length === 0) {\n thumbnails = this.getLinksWithRels(['preview']);\n }\n // Some old catalogs use just a asset key\n if (thumbnails.length === 0 && Utils.isObject(this.assets) && Utils.isObject(this.assets.thumbnail)) {\n thumbnails = [this.assets.thumbnail];\n }\n if (browserOnly) {\n // Remove all images that can't be displayed in a browser\n thumbnails = thumbnails.filter(img => Utils.canBrowserDisplayImage(img));\n }\n if (prefer && thumbnails.length > 1) {\n // Prefer one role over the other.\n // The two step approach with two filters ensures the same sort bevahiour across all browsers:\n // see https://github.com/radiantearth/stac-browser/issues/370\n let filter = img => img.roles.includes(prefer);\n thumbnails = thumbnails\n .filter(filter)\n .concat(thumbnails.filter(img => !filter(img)));\n }\n return thumbnails.map(img => this._linkToAbsolute(img));\n }\n\n equals(other) {\n if (!Utils.isObject(other)) {\n return false;\n }\n if (this === other) {\n return true;\n }\n if (this.id === other.id && this.type == other.type) {\n return true;\n }\n return false;\n }\n\n}\n\nexport default STAC;\n","// STAC relation types\n\n// STAC hierarchical\nexport const stacHierarchy = [\n 'child',\n 'collection',\n 'item',\n 'parent',\n 'root',\n 'self',\n];\n\n// STAC API Pagination\nexport const stacPagination = [\n 'first',\n 'last',\n 'next',\n 'prev',\n 'previous',\n];\n\n// Queryables\nexport const ogcQueryables = [\n 'queryables', // Old way in STAC (deprecated)\n 'http://www.opengis.net/def/rel/ogc/1.0/queryables', // STAC and OGC APIs\n 'ogc-rel:queryables' // Alternative in OGC APIs\n];\n\n// Rels that STAC Browser can navigate to and display natively (i.e. Collections, Catalogs and Items)\nexport const stacBrowserNavigatesTo = [\n 'canonical', // Links to other catalogs or items v\n 'related',\n 'derived_from',\n 'latest-version', // version extension v\n 'predecessor-version',\n 'successor-version',\n 'source', // label extension,\n 'alternate' // language extension\n].concat(stacHierarchy).concat(stacPagination);\n\n// Rels that are handled in a special way and should not be shown in the link list\nexport const stacBrowserSpecialHandling = [\n 'conformance', // API related v\n 'data',\n 'items',\n 'search',\n 'icon', // Other v\n 'license',\n].concat(stacHierarchy).concat(stacPagination).concat(ogcQueryables);\n\n// OGC APIs\nexport const ogcRelPrefix = 'http://www.opengis.net/def/rel/ogc/1.0/';\n","import axios from \"axios\";\nimport URI from \"urijs\";\nimport Utils from \"../utils\";\n\nexport class Loading {\n\n constructor(show = false, loadApi = false) {\n this.show = Boolean(show);\n this.loadApi = Boolean(loadApi);\n }\n\n}\n\nexport async function stacRequest(cx, link) {\n let opts;\n let headers = {\n 'Accept-Language': cx.getters.acceptedLanguages\n };\n if (Utils.isObject(link)) {\n let method = typeof link.method === 'string' ? link.method.toLowerCase() : 'get';\n let url = cx.getters.getRequestUrl(link.href);\n if (Utils.hasText(link.type)) {\n headers.Accept = link.type;\n }\n if (!cx.getters.isExternalUrl(url)) {\n Object.assign(headers, cx.state.requestHeaders);\n }\n if (Utils.isObject(link.headers)) {\n Object.assign(headers, link.headers);\n }\n opts = {\n method,\n url,\n headers,\n data: link.body\n // ToDo: Support for merge property from STAC API\n };\n }\n else if (typeof link === 'string') {\n let url = cx.getters.getRequestUrl(link);\n if (!cx.getters.isExternalUrl(url)) {\n Object.assign(headers, cx.state.requestHeaders);\n }\n opts = {\n method: 'get',\n url,\n headers\n };\n }\n else {\n opts = link;\n }\n return await axios(opts);\n}\n\n\nexport function unproxyUrl(absoluteUrl, proxy) {\n if (absoluteUrl instanceof URI) {\n absoluteUrl = absoluteUrl.toString();\n }\n if (typeof absoluteUrl === 'string' && Array.isArray(proxy)) {\n return absoluteUrl.replace(proxy[1], proxy[0]);\n }\n return absoluteUrl;\n}\n\nexport function proxyUrl(absoluteUrl, proxy) {\n if (absoluteUrl instanceof URI) {\n absoluteUrl = absoluteUrl.toString();\n }\n if (typeof absoluteUrl === 'string' && Array.isArray(proxy)) {\n return absoluteUrl.replace(proxy[0], proxy[1]);\n }\n return absoluteUrl;\n}\n\nexport function processSTAC(state, stac) {\n if (typeof state.preprocessSTAC === 'function') {\n stac = state.preprocessSTAC(stac, state);\n }\n return Object.freeze(stac);\n}\n\nexport function isAuthenticationError(error) {\n return [401, 403].includes(error?.response?.status);\n}\n\nexport function addQueryIfNotExists(uri, query) {\n if (Utils.size(query) == 0) {\n return uri;\n }\n for (let key in query) {\n if (!uri.hasQuery(key)) {\n uri.addQuery(key, query[key]);\n }\n }\n return uri;\n}","import URI from 'urijs';\nimport removeMd from 'remove-markdown';\nimport { stacPagination } from \"./rels\";\n\nexport const commonFileNames = ['catalog', 'collection', 'item'];\n\nexport const geojsonMediaType = \"application/geo+json\";\n\nexport const schemaMediaType = \"application/schema+json\";\n\nexport const stacMediaTypes = [\n 'application/json',\n geojsonMediaType,\n 'text/json'\n];\n\nexport const browserImageTypes = [\n 'image/gif',\n 'image/jpg',\n 'image/jpeg',\n 'image/apng',\n 'image/png',\n 'image/webp'\n];\n\nexport const cogMediaTypes = [\n \"image/tiff; application=geotiff; profile=cloud-optimized\",\n \"image/vnd.stac.geotiff; cloud-optimized=true\"\n];\n\nexport const geotiffMediaTypes = [\n \"application/geotiff\",\n \"image/tiff; application=geotiff\",\n \"image/vnd.stac.geotiff\",\n].concat(cogMediaTypes);\n\nexport const browserProtocols = [\n 'http',\n 'https'\n];\n\nexport const imageMediaTypes = browserImageTypes.concat(geotiffMediaTypes);\nexport const mapMediaTypes = imageMediaTypes.concat([geojsonMediaType]);\n\nexport class BrowserError extends Error {\n constructor(message) {\n super(message);\n }\n}\n\n/**\n * General utilities\n * \n * @class\n */\nexport default class Utils {\n\n /**\n * Checks whether a variable is a real object or not.\n * \n * This is a more strict version of `typeof x === 'object'` as this example would also succeeds for arrays and `null`.\n * This function only returns `true` for real objects and not for arrays, `null` or any other data types.\n * \n * @param {*} obj - A variable to check.\n * @returns {boolean} - `true` is the given variable is an object, `false` otherwise.\n */\n static isObject(obj) {\n return (typeof obj === 'object' && obj === Object(obj) && !Array.isArray(obj));\n }\n\n /**\n * Computes the size of an array (number of array elements) or object (number of key-value-pairs).\n * \n * Returns 0 for all other data types.\n * \n * @param {*} obj \n * @returns {integer}\n */\n static size(obj) {\n if (typeof obj === 'object' && obj !== null) {\n if (Array.isArray(obj)) {\n return obj.length;\n }\n else {\n return Object.keys(obj).length;\n }\n }\n return 0;\n }\n\n static isStacMediaType(type, allowEmpty = false) {\n return Utils.isMediaType(type, stacMediaTypes, allowEmpty);\n }\n\n static isMediaType(type, types, allowEmpty = false) {\n if (!Array.isArray(types)) {\n types = [types];\n }\n if (allowEmpty && !type) {\n return true;\n }\n else if (typeof type !== 'string') {\n return false;\n }\n else {\n return types.includes(type.toLowerCase());\n }\n }\n\n /**\n * Checks whether a variable is a string and contains at least one character.\n * \n * @param {*} string - A variable to check.\n * @returns {boolean} - `true` is the given variable is an string with length > 0, `false` otherwise.\n */\n static hasText(string) {\n return (typeof string === 'string' && string.length > 0);\n }\n\n static shortenTitle(fullStr, strLen, separator = '…') {\n if (fullStr.length <= strLen) {\n return fullStr;\n }\n\n let sepLen = separator.length;\n let charsToShow = strLen - sepLen;\n let frontChars = Math.ceil(charsToShow/2);\n let backChars = Math.floor(charsToShow/2);\n return fullStr.substr(0, frontChars) + \n separator + \n fullStr.substr(fullStr.length - backChars);\n }\n\n static isGdalVfsUri(url) {\n return typeof url === 'string' && url.startsWith('/vsi') && !url.startsWith('/vsicurl/');\n }\n\n static toAbsolute(href, baseUrl, stringify = true) {\n return Utils.normalizeUri(href, baseUrl, false, stringify);\n }\n\n static normalizeUri(href, baseUrl = null, noParams = false, stringify = true) {\n // Convert vsicurl URLs to normal URLs\n if (typeof href === 'string' && href.startsWith('/vsicurl/')) {\n href = href.replace(/^\\/vsicurl\\//, '');\n }\n // Parse URL and make absolute, if required\n let uri = URI(href);\n // Don't convert GDAL VFS URIs: https://github.com/radiantearth/stac-browser/issues/116\n if (baseUrl && uri.is(\"relative\") && !Utils.isGdalVfsUri(href)) {\n uri = uri.absoluteTo(baseUrl);\n }\n uri.normalize();\n if (noParams) {\n uri.query(\"\");\n uri.fragment(\"\");\n }\n return stringify ? uri.toString() : uri;\n }\n\n static getLinkWithRel(links, rel) {\n return Array.isArray(links) ? links.find(link => Utils.isObject(link) && Utils.hasText(link.href) && link.rel === rel) : null;\n }\n\n static getLinksWithRels(links, rels) {\n return Array.isArray(links) ? links.filter(link => Utils.isObject(link) && Utils.hasText(link.href) && rels.includes(link.rel)) : [];\n }\n\n static getLinksWithOtherRels(links, rels) {\n return Array.isArray(links) ? links.filter(link => Utils.isObject(link) && Utils.hasText(link.href) && !rels.includes(link.rel)) : [];\n }\n\n static equalUrl(a, b) {\n try {\n let uri1 = URI(a);\n let uri2 = URI(b);\n // Ignore trailing slash in URL paths\n uri1.path(uri1.path().replace(/\\/$/, ''));\n uri2.path(uri2.path().replace(/\\/$/, ''));\n return uri1.equals(uri2);\n } catch (error) {\n return false;\n }\n }\n\n static summarizeMd(text, maxLength = null) {\n if (!Utils.hasText(text)) {\n return '';\n }\n // Best-effort approach to remove some CommonMark (Markdown).\n // Likely not perfect, but seems good enough for most cases.\n text = removeMd(text).replaceAll(/[\\r\\n]+/g, ' ');\n if (maxLength > 0 && text.length > maxLength) {\n text = text.substr(0, maxLength) + '…';\n }\n return text;\n }\n\n static scrollTo(el) {\n if (!el) {\n return;\n }\n var rect = el.getBoundingClientRect();\n var isVisible = rect.top < window.innerHeight && rect.bottom >= 0;\n if (!isVisible) {\n el.scrollIntoView({\n behavior: \"smooth\",\n block: \"start\"\n });\n }\n }\n\n // Convert from UTC to locale time (needed for vue2-datetimepicker)\n // see https://github.com/mengxiong10/vue2-datepicker/issues/388\n static dateFromUTC(dt) {\n if (dt instanceof Date) {\n const value = new Date(dt);\n const offset = value.getTimezoneOffset();\n dt = new Date(value.getTime() + offset * 60 * 1000);\n }\n return dt;\n }\n\n static dateToUTC(dt) {\n if (dt instanceof Date) {\n const offset = new Date().getTimezoneOffset();\n return new Date(dt.getTime() - offset * 60 * 1000);\n }\n return dt;\n }\n\n static formatDatetimeQuery(value) {\n return value.map(dt => {\n if (dt instanceof Date) {\n return dt.toISOString();\n }\n else if (dt) {\n return dt;\n }\n else {\n return '..';\n }\n }).join('/');\n }\n\n static getPaginationLinks(data) {\n let pages = {};\n if (Utils.isObject(data)) {\n let pageLinks = Utils.getLinksWithRels(data.links, stacPagination);\n for (let pageLink of pageLinks) {\n let rel = pageLink.rel === 'previous' ? 'prev' : pageLink.rel;\n pages[rel] = pageLink;\n }\n }\n return pages;\n }\n\n static addFiltersToLink(link, filters = {}, itemsPerPage = null) {\n let isEmpty = value => {\n return (value === null\n || (typeof value === 'number' && !Number.isFinite(value))\n || (typeof value === 'string' && value.length === 0)\n || (typeof value === 'object' && Utils.size(value) === 0));\n };\n\n if (!Utils.isObject(filters)) {\n filters = {};\n }\n else {\n filters = Object.assign({}, filters);\n }\n\n if (typeof filters.limit !== 'number' && typeof itemsPerPage === 'number') {\n filters.limit = itemsPerPage;\n }\n\n if (Utils.hasText(link.method) && link.method.toUpperCase() === 'POST') {\n let body = Object.assign({}, link.body);\n\n for (let key in filters) {\n let value = filters[key];\n if (isEmpty(value)) {\n delete body[key];\n continue;\n }\n\n if (key === 'datetime') {\n value = Utils.formatDatetimeQuery(value);\n }\n else if (key === 'filters') {\n Object.assign(body, value.toJSON());\n continue;\n }\n\n body[key] = value;\n }\n return Object.assign({}, link, { body });\n }\n else { // GET\n // Construct new link with search params\n let url = URI(link.href);\n\n for (let key in filters) {\n let value = filters[key];\n if (isEmpty(value)) {\n url.removeQuery(key);\n continue;\n }\n\n if (key === 'datetime') {\n value = Utils.formatDatetimeQuery(value);\n }\n else if (key === 'bbox') {\n value = value.join(',');\n }\n else if ((key === 'collections' || key === 'ids' || key === 'q')) {\n value = value.join(',');\n }\n else if (key === 'filters') {\n let params = value.toText();\n url.setQuery(params);\n continue;\n }\n\n url.setQuery(key, value);\n }\n\n return Object.assign({}, link, { href: url.toString() });\n }\n }\n\n static titleForHref(href, preferFileName = false) {\n let uri = URI(href);\n let auth = uri.authority();\n let file = uri.filename().replace(/^(.{1,})\\.\\w+$/, '$1');\n let dir = uri.directory().replace(/^\\//, '');\n if (auth && file && !preferFileName) {\n let path = uri.path().replace(/^\\//, '');\n if (auth === 'doi.org' && path.startsWith('10.')) {\n return `DOI ${path}`;\n }\n else {\n return `${file} (${auth})`;\n }\n }\n else if (file && !commonFileNames.includes(file)) {\n return file;\n }\n else if (auth) {\n return auth;\n }\n else if (dir) {\n return dir;\n }\n else {\n return href;\n }\n }\n\n static canBrowserDisplayImage(img) {\n if (typeof img.href !== 'string') {\n return false;\n }\n let uri = URI(img.href);\n let protocol = uri.protocol().toLowerCase();\n if (protocol && !browserProtocols.includes(protocol)) {\n return false;\n }\n else if (browserImageTypes.includes(img.type)) {\n return true;\n }\n else if (browserImageTypes.includes('image/' + uri.suffix().toLowerCase())) {\n return true;\n }\n else if (img.type) {\n return false;\n }\n else {\n return true; // If no img.type is given, try to load it anyway: https://github.com/radiantearth/stac-browser/issues/147\n }\n }\n\n // Gets the value at path of object.\n // Drop in replacement for lodash.get\n static getValueFromObjectUsingPath(object, path) {\n if (object === null || typeof object !== 'object') {\n return;\n }\n object = object[path[0]];\n if (typeof object !== 'undefined' && path.length > 1) {\n return this.getValueFromObjectUsingPath(object, path.slice(1));\n }\n return object;\n }\n\n static search(searchterm, target, and = true) {\n if (typeof searchterm !== 'string' || searchterm.length === 0) {\n return false;\n }\n if (Utils.isObject(target)) {\n target = Object.values(target);\n }\n else if (typeof target === 'string') {\n target = [target];\n }\n\n if (!Array.isArray(target)) {\n return false;\n }\n\n let splitChars = /[\\s.,;!&({[)}]]+/g;\n\n // Prepare search terms\n searchterm = searchterm.toLowerCase().split(splitChars);\n\n // Prepare text to search in\n target = target\n .filter(s => typeof s === 'string') // Remove non-strings\n .join(' ') // Merge into a single string\n .replace(splitChars, ' ') // replace split chars with white spaces\n .toLowerCase(); // Lowercase\n\n // Search with \"and\" or \"or\"\n let fn = and ? 'every' : 'some';\n return searchterm[fn](term => target.includes(term));\n }\n\n static createLink(href, rel) {\n return { href, rel };\n }\n\n static supportsExtension(data, pattern) {\n if (!Utils.isObject(data) || !Array.isArray(data['stac_extensions'])) {\n return false;\n }\n let regexp = new RegExp('^' + pattern.replaceAll('*', '[^/]+') + '$');\n return Boolean(data['stac_extensions'].find(uri => regexp.test(uri)));\n }\n\n /**\n * Deep merge two objects.\n * @param target\n * @param ...sources\n */\n static mergeDeep(target, ...sources) {\n if (!sources.length) {\n return target;\n }\n const source = sources.shift();\n\n if (Utils.isObject(target) && Utils.isObject(source)) {\n for (const key in source) {\n if (Utils.isObject(source[key])) {\n if (!target[key]) {\n Object.assign(target, { [key]: {} });\n }\n Utils.mergeDeep(target[key], source[key]);\n } else {\n Object.assign(target, { [key]: source[key] });\n }\n }\n }\n\n return Utils.mergeDeep(target, ...sources);\n }\n\n}","var map = {\n\t\"./de-CH/default.js\": [\n\t\t9665,\n\t\t7119,\n\t\t9665\n\t],\n\t\"./de/default.js\": [\n\t\t11929,\n\t\t7119,\n\t\t1929\n\t],\n\t\"./en/default.js\": [\n\t\t71358,\n\t\t1358\n\t],\n\t\"./es/default.js\": [\n\t\t10237,\n\t\t237\n\t],\n\t\"./fr-CA/default.js\": [\n\t\t70727,\n\t\t8096,\n\t\t727\n\t],\n\t\"./fr-CH/default.js\": [\n\t\t16437,\n\t\t8096,\n\t\t6437\n\t],\n\t\"./fr/default.js\": [\n\t\t55092,\n\t\t8096,\n\t\t5092\n\t],\n\t\"./it-CH/default.js\": [\n\t\t64739,\n\t\t5473,\n\t\t4739\n\t],\n\t\"./it/default.js\": [\n\t\t68144,\n\t\t5473,\n\t\t8144\n\t],\n\t\"./ro/default.js\": [\n\t\t91493,\n\t\t1493\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 50448;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./de-CH/config.json\": 13225,\n\t\"./de/config.json\": 27534,\n\t\"./en/config.json\": 78863,\n\t\"./es/config.json\": 25946,\n\t\"./fr-CA/config.json\": 44317,\n\t\"./fr-CH/config.json\": 78125,\n\t\"./fr/config.json\": 96727,\n\t\"./it-CH/config.json\": 6025,\n\t\"./it/config.json\": 62715,\n\t\"./ro/config.json\": 57031\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 82599;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"237\":\"088f29c9\",\"531\":\"e50613d4\",\"604\":\"734bbdd1\",\"624\":\"c61e2e5a\",\"727\":\"b0d7dd43\",\"796\":\"7f6c73c1\",\"833\":\"41ea4527\",\"1095\":\"a90e323c\",\"1198\":\"8d75deba\",\"1247\":\"a6db6509\",\"1358\":\"52fd3c69\",\"1364\":\"4e255109\",\"1374\":\"7d4415cb\",\"1493\":\"be46e4d0\",\"1514\":\"2a484198\",\"1929\":\"b7f67eab\",\"2005\":\"0062420b\",\"2184\":\"fdc4f0c6\",\"2380\":\"fbbc886b\",\"2407\":\"d1a62548\",\"2540\":\"2abe5443\",\"2588\":\"71e2ad8d\",\"2792\":\"96d8f5ad\",\"2815\":\"b406a8a8\",\"2968\":\"d335ab49\",\"3135\":\"70290c42\",\"3138\":\"c151eb76\",\"3154\":\"83e70a6b\",\"3628\":\"720978c7\",\"3669\":\"25ce579b\",\"3805\":\"342d7ff9\",\"4622\":\"1fe7c07f\",\"4739\":\"6bf73bc4\",\"4763\":\"77c0a023\",\"5092\":\"2e1ed9f7\",\"5260\":\"6132d987\",\"5473\":\"d0a5d181\",\"5607\":\"91d62c75\",\"5793\":\"731090db\",\"5972\":\"25977f56\",\"5998\":\"16142fd8\",\"6437\":\"4c8ef6f6\",\"6481\":\"2da48a38\",\"6553\":\"ea12aade\",\"6653\":\"b5a772ec\",\"6872\":\"38a2d766\",\"7053\":\"535b4c77\",\"7119\":\"79ae3c6c\",\"7191\":\"12aba673\",\"7245\":\"a71452db\",\"7257\":\"ed5bff34\",\"7710\":\"1bd3fb2f\",\"7848\":\"8e7a11a2\",\"8069\":\"170670d6\",\"8096\":\"b095b122\",\"8144\":\"fccff3a0\",\"8342\":\"1fa2741d\",\"8453\":\"11ac8f62\",\"8493\":\"90679e90\",\"8673\":\"bbd2c559\",\"8693\":\"7177a43e\",\"8770\":\"b4e42fc8\",\"9071\":\"88d00f41\",\"9090\":\"ef590db0\",\"9489\":\"ced0e5b3\",\"9539\":\"0c7b0d26\",\"9578\":\"7500538c\",\"9665\":\"e156817e\",\"9795\":\"077c2d89\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"604\":\"f849b3f1\",\"624\":\"6ad781a6\",\"1095\":\"0530e224\",\"1198\":\"5747ca0b\",\"1364\":\"a94c9ca6\",\"2588\":\"ac728857\",\"2815\":\"c9b64985\",\"3135\":\"32ec082e\",\"3154\":\"572c83fc\",\"3805\":\"4bc8c74b\",\"4622\":\"45781634\",\"5260\":\"72c8c98f\",\"5998\":\"4b50bc38\",\"7710\":\"f418fe25\",\"7848\":\"0780c10b\",\"8453\":\"6fac7cd8\",\"8493\":\"ea261962\",\"9795\":\"081b4583\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"@radiantearth/stac-browser:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/stac-browser/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"604\":1,\"624\":1,\"1095\":1,\"1198\":1,\"1364\":1,\"2588\":1,\"2815\":1,\"3135\":1,\"3154\":1,\"3805\":1,\"4622\":1,\"5260\":1,\"5998\":1,\"7710\":1,\"7848\":1,\"8453\":1,\"8493\":1,\"9795\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(1095 != chunkId) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk_radiantearth_stac_browser\"] = self[\"webpackChunk_radiantearth_stac_browser\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4998], function() { return __webpack_require__(95346); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["render","_vm","this","_c","_self","directives","name","rawName","value","load","expression","modifiers","class","classes","attrs","isList","hasImage","_b","staticClass","thumbnail","_e","data","catalog","fileFormats","length","description","deprecated","_v","_s","$t","_l","format","key","_f","temporalExtent","domProps","_t","staticRenderFns","components","StacLink","filters","summarize","text","Utils","summarizeMd","formatMediaType","shorten","mixins","ThumbnailCardMixin","StacFieldsMixin","formatTemporalExtent","props","type","Object","required","computed","mapGetters","push","getStac","_this$data","_this$data$extent","_this$data$extent$tem","isCollection","extent","temporal","interval","Array","isArray","getFileFormats","methods","visible","STAC","$store","commit","href","component","title","catalogCount","model","view","callback","$$v","isComplete","catalogs","sort","searchTerm","showPagination","ref","pagination","on","paginate","catalogView","loading","cardsComponent","tag","cardsComponentProps","scopedSlots","_u","fn","hasMore","loadMore","$event","toggle","id","BIconBricks","BIconListTask","String","default","selectedValue","$emit","ViewButtons","columns","get","state","cardViewMode","set","Catalog","Loading","Pagination","SearchBox","SortButtons","ViewMixin","collectionsOnly","Boolean","count","Number","mapState","$tc","values","some","link","map","stac","filter","haystack","keywords","concat","search","slice","a","b","getDisplayTitle","localeCompare","uiLanguage","reverse","created","cardViewSort","placement","$refs","topPagination","scrollTo","$el","copyColor","preventDefault","stopPropagation","copy","apply","arguments","buttonProps","copyIcon","BIconClipboard","BIconClipboardCheck","BIconClipboardX","copyText","variant","status","startsWith","focus","document","activeElement","Clipboard","error","console","setTimeout","compact","inline","markup","allowHTML","reader","commonmark","writer","safe","smart","parsed","parse","queued","isDeprecated","hasDescription","item","properties","datetime","Registry","require","formatTimestamp","start_datetime","end_datetime","hasText","items","itemCount","api","allowFilter","hasFilters","filtersOpen","filterCount","apiFilters","emitFilter","chunkedItems","showMore","BCollapse","BIconSearch","Item","SearchFilter","showFilters","chunkSize","shownItems","size","watch","mounted","reset","small","fill","stretch","top","first","prev","next","last","tooltip","attributes","icon","displayTitle","fallbackTitle","Function","button","icons","getIcons","find","o","isLink","isStacBrowserLink","isStacMediaType","allowExternalAccess","isExternalUrl","stacBrowserNavigatesTo","includes","rel","obj","to","isObject","assign","target","getBrowserPath","toBrowserPath","privateQueryParameters","uri","URI","addParameters","prefix","queryKey","hasQuery","addQuery","toString","getRequestUrl","fallback","module","exports","catalogUrl","catalogTitle","allowedDomains","detectLocaleFromBrowser","storeLocale","locale","fallbackLocale","supportedLocales","apiCatalogPriority","useTileLayerAsFallback","displayGeoTiffByDefault","buildTileUrlTemplate","asset","encodeURIComponent","stacProxyUrl","pathPrefix","historyMode","showThumbnailsAsAssets","stacLint","geoTiffResolution","redirectLegacyUrls","itemsPerPage","defaultThumbnailSize","maxPreviewsOnMap","crossOriginMedia","requestHeaders","requestQueryParameters","preprocessSTAC","authConfig","CQL_TEXT","CQL_JSON","CQL_ADV_COMPARISON","TYPES","Items","BasicFilters","CollectionIdFilter","ItemIdFilter","CqlFilters","Sort","FreeText","Global","Collections","conformances","canSort","supportsConformance","canFilterExtents","canFilterFreeText","cql","textMode","jsonMode","advancedComparison","functions","mixin","showThumbnail","isItem","thumbnails","getThumbnails","width","height","t","src","alt","crossorigin","right","blankColor","config","CONFIG_PATH","CONFIG_CLI","window","STAC_BROWSER_CONFIG","Vue","use","VueI18n","API_LANGUAGE_CONFORMANCE","LOCALE_CONFIG","loadLocaleConfig","CONFIG","messages","languages","i18n","loadDefaultMessages","Promise","all","loadMessages","async","mergeLocaleMessage","translateFields","vars","te","Fields","stringLocale","keywordPos","indexOf","keyword","substr","undefined","localeWithoutKeyword","parts","replace","split","language","shift","retVar","toLowerCase","pop","toUpperCase","country","script","substring","prepareSupported","supported","lgs","forEach","supportedLocale","Error","countries","firstCountry","main","lg","getBest","defaultLocale","getAnyCountry","doAuth","globalError","hideError","sidebar","displayCatalogTitle","browserVersion","proxy","isExternal","url","errorDescription","errorId","dismissible","message","tab","selectedAsset","dataChanged","hasAssets","assets","shownAssets","showAsset","additionalLinks","collectionLink","providers","ignoredMetadataFields","shownAssetsOnMap","shownBandsOnMap","selectedAssetKey","keys","thumbnailRefs","isThumbnail","tabs","bands","meta","toBrowserUrl","store","path","getters","location","origin","fragment","addSpatialCoverage","schema","bbox","spatialCoverage","geo","box","join","formatTemporalCoverage","dates","dt","makeAssets","contentUrl","toAbsolute","getAbsoluteUrl","encodingFormat","makeLinks","links","isBasedOn","fallbackDescription","makeProvider","role","p","roles","email","mail","stacType","container","collection","tc","inX","createBaseSchema","_data$getMetadata","thumbnailUrl","stacUrl","inLanguage","getMetadata","code","license","_data$getLinkWithRel","getLinkWithRel","copyrightHolder","producer","provider","creator","citation","identifier","dateCreated","dateModified","datePublished","expires","version","image","createCatalogSchema","parents","i","findIndex","_data$extent","_data$extent$temporal","_data$extent2","_data$extent2$spatial","temporalCoverage","spatial","associatedMedia","hasPart","dataset","isPartOf","createItemSchema","includedInDataCatalog","start","end","distribution","addSchemaToDocument","doc","element","getElementById","createElement","head","appendChild","innerText","JSON","stringify","AnonymizedNotice","Assets","BTabs","BTab","CollectionLink","Description","DeprecationNotice","Links","Map","Metadata","Providers","ReadMore","Thumbnails","ShowAssetMixin","immediate","handler","parentLink","cc","mixed","hasCatalogs","hasItems","empty","licenses","temporalExtents","linkPosition","hasThumbnails","mapData","hasItemAssets","item_assets","nextCollectionsLink","loadMoreCollections","isApi","itemPages","apiItemsLoading","paginateItems","filterItems","filtersShown","Catalogs","Keywords","formatLicense","formatTemporalExtents","stateQueryParameters","getApiItemsLoading","summaries","extents","pages","apiItemsPagination","apiItemsLink","addFiltersToLink","getApiItemsLink","features","rootLink","show","dispatch","$root","msg","ErrorAlert","isAxiosError","response","res","BrowserError","is","oldPath","redirectLegacyUrl","fromBrowserPath","loadApi","part","every","match","decode","newPath","$router","query","getRoutes","routes","Browse","route","params","pathMatch","loadParent","getStore","router","localDefaults","valid","localRequestQueryParameters","itemdef","apiItems","catalogDefaults","queue","authData","conformsTo","dataLanguage","dataLanguages","apiCollections","Vuex","strict","database","allowSelectCatalog","globalRequestQueryParameters","source","returnErrorObject","absoluteUrl","root","_state$data","isCatalog","_state$data2","isCatalogLike","_state$data3","_state$data4","_","_state$data5","getStacLinkWithRel","createLink","getLinksWithRels","segment","_state$data6","classRegexp","c","replaceAll","regexp","RegExp","supportsExtension","schemaUri","canSearch","canSearchCollections","canSearchItems","getStacLinksWithRel","hasCollections","getApiCollectionsLink","hasChilds","showCollections","showChilds","addMissingChildren","_state$data7","getLinksWithOtherRels","stacBrowserSpecialHandling","canBrowserDisplayImage","relative","absolute","unproxyUrl","relativeTo","protocol","authority","q","externalRE","endsWith","whitelist","domain","equals","relativeStr","baseUrl","addLocalQueryParams","proxyUrl","addQueryIfNotExists","acceptedLanguages","navigator","entries","l","mutations","setQueryParameter","delete","setRequestHeader","requestAuth","setAuthData","newState","updateState","openCollapsible","uid","idx","closeCollapsible","updateLoading","loaded","processSTAC","clear","resetCatalog","clearAll","resetPage","showPage","unshift","lang","errored","unqueue","splice","removeFromQueue","num","setConformanceClasses","setApiItemsLink","toggleApiItemsLoading","collectionId","setApiItems","feature","getPaginationLinks","setApiData","addApiCollections","collections","nextLink","resetApiItems","showGlobalError","actions","switchLocale","cx","userSelected","localStorage","setItem","dataLanguageCodes","dataLanguageFallback","setAuth","formatter","loadBackground","urls","promises","loadParents","parentStac","args","loadRoot","force","isPotentiallyIncomplete","stacRequest","localeLink","getLocaleLink","conformanceLink","isAuthenticationError","loadApiItems","selfLink","_cx$getters$root","apiCollectionsLink","markPotentiallyIncomplete","loadNextApiCollections","loadOgcApiConformance","loadGeoJson","retryAfterAuth","errorFn","catch","validate","_response$data","_response$data$body","addSearch","axios","body","valid_stac","isSearchPage","containerLink","parentLinkTitle","collectionLinkTitle","searchBrowserLink","auth","showRoot","rootTitle","currentLanguage","native","global","supportsLanguageExt","ui","stacId","stacVersion","canValidate","browserUrl","twitterUrl","mailTo","label","open","BFormGroup","BFormInput","BIconArrowUpRightSquare","BInputGroup","BInputGroupAppend","CopyButton","LANGUAGE_EXT","BDropdown","BDropdownItem","BIconBlank","BIconBox","BIconCheck","BIconEnvelope","BIconExclamationTriangle","BIconFlag","BIconLink","BIconShare","BIconTwitter","BPopover","RootStats","Url","_this$stac","stac_version","_this$stac2","host","hostname","newLang","alternate","uiSupported","dataSupported","mapActions","BIconArrow90degUp","BIconBook","BIconFolderSymlink","BIconLock","BIconUnlock","Source","dataLink","getSearchLink","equalUrl","currentRoute","AlertPlugin","ButtonGroupPlugin","ButtonPlugin","BadgePlugin","CardPlugin","LayoutPlugin","SpinnerPlugin","directive","VBToggle","VBVisible","VueRouter","mode","base","Props","Watchers","newValue","Authentication","Sidebar","StacHeader","onDataLoaded","catalogUrlFromVueX","detectLocaleFromBrowserFromVueX","fallbackLocaleFromVueX","supportedLocalesFromVueX","storeLocaleFromVueX","STAC_BROWSER_VERSION","setAttribute","I18N","$i18n","documentElement","deep","$route","duplicated","oldRoot","canChange","doReset","doSet","onReady","detectLocale","parseQuery","afterEach","from","resetOp","$on","showError","setInterval","getItem","best","_params$state","privateFromHash","hash","private","realKey","localRequest","init","then","h","StacBrowser","$mount","productionTip","stacObjCounter","constructor","migrate","_id","_url","_path","_apiChildrenListeners","_incomplete","_apiChildren","list","Migrate","isItemCollection","hasApiData","setApiDataListener","listener","v","getChildren","priority","children","isMediaType","geojsonMediaType","post","method","field","available","hreflang","allowEmpty","rels","getAssetsWithRoles","matches","sources","getTitle","titleForHref","_linkToAbsolute","img","browserOnly","prefer","other","stacHierarchy","stacPagination","ogcQueryables","ogcRelPrefix","opts","headers","Accept","freeze","_error$response","commonFileNames","schemaMediaType","stacMediaTypes","browserImageTypes","cogMediaTypes","geotiffMediaTypes","browserProtocols","imageMediaTypes","mapMediaTypes","super","types","string","shortenTitle","fullStr","strLen","separator","sepLen","charsToShow","frontChars","Math","ceil","backChars","floor","isGdalVfsUri","normalizeUri","noParams","absoluteTo","normalize","uri1","uri2","maxLength","removeMd","el","rect","getBoundingClientRect","isVisible","innerHeight","bottom","scrollIntoView","behavior","block","dateFromUTC","Date","offset","getTimezoneOffset","getTime","dateToUTC","formatDatetimeQuery","toISOString","pageLinks","pageLink","isEmpty","isFinite","limit","toJSON","removeQuery","toText","setQuery","preferFileName","file","filename","dir","directory","suffix","getValueFromObjectUsingPath","object","searchterm","and","splitChars","s","term","pattern","test","mergeDeep","webpackAsyncContext","req","__webpack_require__","resolve","e","ids","webpackContext","webpackContextResolve","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","call","m","deferred","O","result","chunkIds","notFulfilled","Infinity","fulfilled","j","r","n","getter","__esModule","d","leafPrototypes","getProto","getPrototypeOf","__proto__","ns","create","def","current","getOwnPropertyNames","definition","defineProperty","enumerable","f","chunkId","reduce","u","miniCssF","g","globalThis","hmd","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","done","needAttach","scripts","getElementsByTagName","getAttribute","charset","timeout","nc","onScriptComplete","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","bind","Symbol","toStringTag","nmd","paths","createStylesheet","fullhref","oldTag","reject","linkTag","onLinkComplete","errorType","realHref","err","request","insertBefore","nextSibling","findStylesheet","existingLinkTags","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file